我在 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);
但这对我的游戏外观完全没有影响!任何人都知道可能是什么问题?