我非常渴望在DirectX中實現所需的alpha混合效果。 我嘗試繪製紋理,並在其上彩色三角形條。DirectX9中的Alpha混合問題
儘管我嘗試了所有嘗試,但看起來條紋的顏色受到以前繪製的紋理顏色的影響。即使我將D3DRS_ALPHABLENDENABLE設置爲FALSE,我仍然會看到受影響的顏色。
下面是圖像如何猜想的樣子(用OpenGL渲染)
這裏是我所得到的與DirectX渲染:
正如你所看到的,第二張圖像紫色條帶有黃色陰影,沒有任何特定原因:((黃色矩形是紋理,不是多邊形)。
這裏是我的引擎使用的初始化設置:
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);
這些設置是給了我正確的Alpha混合紋理的唯一設置,但我絕不能達到多邊形的正確混合。任何幫助?
非常好。謝謝 – parrowdice 2015-12-07 14:32:43