DirectX相当于glBlendFunc(............)

时间:2012-03-14 20:53:15

标签: c++ opengl directx-9 direct3d9 particle-system

我在OpenGl中创建了一个运行良好的粒子系统。当我想获得火焰或光束或某物的燃烧效果时(系统类型“发光”并将所有颜色融合在一起)我使用此方法调用OpenGL。

glBlendFunc(GL_SRC_ALPHA,GL_SRC_ALPHA) 
glBlendFunc(GL_DST_ALPHA,GL_ONE)

我现在正尝试使用Direct3D做同样的事情

以下是我的尝试:

graphicsDevice->SetRenderState(D3DRS_ALPHABLENDENABLE, TRUE);
graphicsDevice->SetRenderState(D3DRS_SRCBLEND, D3DBLEND_SRCALPHA);
graphicsDevice->SetRenderState(D3DRS_DESTBLEND, D3DBLEND_ONE);

但这对我的游戏外观完全没有任何影响! 任何人都有一个线索可能是什么问题?

2 个答案:

答案 0 :(得分:0)

尝试:

graphicsDevice->SetRenderState(D3DRS_ALPHABLENDENABLE, TRUE);
graphicsDevice->SetRenderState(D3DRS_SRCBLEND, D3DBLEND_SRCALPHA);
graphicsDevice->SetRenderState(D3DRS_DESTBLEND, D3DBLEND_INVSRCALPHA);

答案 1 :(得分:0)

我最终只是切换到OpenGL。但感谢帮助人员:D