我在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);
但这对我的游戏外观完全没有任何影响! 任何人都有一个线索可能是什么问题?
答案 0 :(得分:0)
尝试:
graphicsDevice->SetRenderState(D3DRS_ALPHABLENDENABLE, TRUE);
graphicsDevice->SetRenderState(D3DRS_SRCBLEND, D3DBLEND_SRCALPHA);
graphicsDevice->SetRenderState(D3DRS_DESTBLEND, D3DBLEND_INVSRCALPHA);
答案 1 :(得分:0)
我最终只是切换到OpenGL。但感谢帮助人员:D