游戏开发论坛

 找回密码
 立即注册
搜索
查看: 3114|回复: 8

D3D的Blend问题

[复制链接]

62

主题

296

帖子

302

积分

中级会员

Rank: 3Rank: 3

积分
302
QQ
发表于 2004-2-5 20:31:00 | 显示全部楼层 |阅读模式
如果说
SetRenderState(D3DRS_DESTBLEND, DBLEND_INVSRCALPHA);
SetRenderState(D3DRS_SRCBLEND, D3DBLEND_SRCALPHA);
是设置Alpha混合方式,那么如何设置Additive混合方式?

18

主题

573

帖子

573

积分

高级会员

Rank: 4

积分
573
发表于 2004-2-5 22:06:00 | 显示全部楼层

Re:D3D的Blend问题

因为我记得blend公式是:
c = r * srcblend + d * dstblend
所以我想如果是Additive因该是
c = r + d
也就是
SetRenderState(D3DRS_SRCBLEND, D3DBLEND_ONE);
SetRenderState(D3DRS_DESTBLEND, D3DBLEND_ONE);

62

主题

296

帖子

302

积分

中级会员

Rank: 3Rank: 3

积分
302
QQ
 楼主| 发表于 2004-2-6 12:54:00 | 显示全部楼层

Re:D3D的Blend问题

我试过啊,似乎不行!你如果成功的话,发个例程过来?

62

主题

296

帖子

302

积分

中级会员

Rank: 3Rank: 3

积分
302
QQ
 楼主| 发表于 2004-2-6 21:38:00 | 显示全部楼层

Re:D3D的Blend问题

这里的各大高手能不能重视一下这个帖子?我几乎试遍了所有的D3DRS_DESTBLEND、D3DRS_SRCBLEND,发现D3D似乎只能实现一种混合:Alpha。Additive根本不行。

6

主题

444

帖子

457

积分

中级会员

Rank: 3Rank: 3

积分
457
发表于 2004-2-6 22:42:00 | 显示全部楼层

Re:D3D的Blend问题

是纹理混合么?
多纹理混合的话,直接使用:
SetTextureStageState(D3DTSS_COLOROP,D3DTOP_ADD)
然后再指定D3DTSS_COLORARG1,D3DTSS_COLORARG2就可以了。
如果不是纹理混合。
那就直接用上面那人提的方法,将D3DRS_SRCBLEND和D3DRS_DESTBLEND都设为D3DBLEND_ONE注意的是:
1:要将D3DRS_ALPHABLENDENABLE设为TRUE
2:将D3DRS_ZENABLE设为D3DZB_FALSE

62

主题

296

帖子

302

积分

中级会员

Rank: 3Rank: 3

积分
302
QQ
 楼主| 发表于 2004-2-7 21:43:00 | 显示全部楼层

Re:D3D的Blend问题

我要的不是纹理混合,普通的混合。
似乎还是不行,你有没有可用的程序?

6

主题

444

帖子

457

积分

中级会员

Rank: 3Rank: 3

积分
457
发表于 2004-2-7 22:03:00 | 显示全部楼层

Re: Re:D3D的Blend问题

skice: Re3D的Blend问题

我要的不是纹理混合,普通的混合。
似乎还是不行,你有没有可用的程序?

这个是根据andypike的dx8的tutorial改的。
你看看吧.
改动之处:1:取消了back face culling
2:禁止Ztest
3:我上个贴子的3个setrenderstate

sf_20042722320.zip

3.18 KB, 下载次数:

62

主题

296

帖子

302

积分

中级会员

Rank: 3Rank: 3

积分
302
QQ
 楼主| 发表于 2004-2-8 09:25:00 | 显示全部楼层

Re:D3D的Blend问题

啊呀,说了半天,我忘记说了,我用的是D3DXSPRITE,我用它先模拟2D来着……它似乎不支持Additive的:(

58

主题

281

帖子

281

积分

中级会员

Rank: 3Rank: 3

积分
281
QQ
发表于 2004-2-17 23:02:00 | 显示全部楼层

Re:D3D的Blend问题

感谢william9527!!

我还以为是这么设置
pD3dDevice->SetRenderState( D3DRS_DESTBLEND, D3DBLEND_DESTCOLOR );
原来是D3DBLEND_ONE,现在会了~~谢谢!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2025-2-25 05:53

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表