DirectX equivalent of glBlendFunc(............)

DirectX equivalent of glBlendFunc(............)

本文关键字:glBlendFunc of equivalent DirectX      更新时间:2023-10-16

我在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);

但这对我的比赛外观完全没有影响!有人知道问题出在哪里吗?

尝试:

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

我最终只是切换到OpenGL。但感谢大家的帮助:D