3

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

しかし、これは私のゲームの外観にはまったく影響しません! 何が問題なのか、誰にも手がかりがありますか?

4

2 に答える 2

0

結局、OpenGLに切り替えるだけでした。しかし、助けてくれてありがとう:D

于 2012-04-08T05:23:04.030 に答える
0

試す:

graphicsDevice->SetRenderState(D3DRS_ALPHABLENDENABLE, TRUE);
graphicsDevice->SetRenderState(D3DRS_SRCBLEND, D3DBLEND_SRCALPHA);
graphicsDevice->SetRenderState(D3DRS_DESTBLEND, D3DBLEND_INVSRCALPHA);
于 2012-03-14T21:28:06.707 に答える