私はDirectXで望ましいアルファブレンディング結果を達成することを非常に切望しています。私はテクスチャを描画しようとしています、そしてその上にカラー三角ストリップ。
私のすべての試みにもかかわらず、ストリップの色は前に描いたテクスチャの色に影響されているようです。D3DRS_ALPHABLENDENABLEをFALSEに設定しても、影響を受ける色が表示されます。
画像は次のようになります(openGLでレンダリング)
そして、これがdirectXレンダリングで得られるものです:
ご覧のとおり、2番目の画像の紫色の帯は特別な理由なしに黄色の色合いになっています:((黄色の長方形はテクスチャであり、ポリゴンではありません)。
エンジンの初期化で使用する設定は次のとおりです。
m_pDirect3D_Device->SetRenderState(D3DRS_ALPHABLENDENABLE, TRUE);
m_pDirect3D_Device->SetRenderState(D3DRS_SRCBLEND, D3DBLEND_SRCALPHA);
m_pDirect3D_Device->SetRenderState(D3DRS_DESTBLEND, D3DBLEND_INVSRCALPHA);
m_pDirect3D_Device->SetTextureStageState(0, D3DTSS_ALPHAOP, D3DTOP_BLENDDIFFUSEALPHA);
m_pDirect3D_Device->SetTextureStageState(0, D3DTSS_ALPHAARG1, D3DTA_TEXTURE);
m_pDirect3D_Device->SetTextureStageState(0, D3DTSS_ALPHAARG2, D3DTA_DIFFUSE);
これらの設定は、テクスチャの正しいアルファブレンディングを可能にした唯一の設定ですが、ポリゴンの正しいブレンディングを実現することはできません。ヘルプはありますか?