Alpha blending mit Alphakanal & Blendfactor in D3D9
-
Hallo Leute,
kann mir jemand sagen, wie ich ein Alpha Blending mit dem in der Texture vorhandenen Alphakanal und zusätzlich einem Blendfaktor realisiere?
Alpha Blending mit Alphakanal:
pd3dDevice->SetRenderState( D3DRS_SRCBLEND, D3DBLEND_SRCALPHA ); pd3dDevice->SetRenderState( D3DRS_DESTBLEND, D3DBLEND_INVSRCALPHA );
Alpha Blending mit Blendfaktor:
pd3dDevice->SetRenderState( D3DRS_SRCBLEND, D3DBLEND_BLENDFACTOR ); pd3dDevice->SetRenderState( D3DRS_DESTBLEND, D3DBLEND_INVBLENDFACTOR ); pd3dDevice->SetRenderState( D3DRS_BLENDFACTOR, 0x808080 );
Aber wie bekomme ich beides zusammen?
Danke im voraus!!
-
Ich habe mal den Alpha Wert der Textur mit der Diffuse-Farbe des Vertices kombiniert, und zwar so:
SetRenderState( D3DRS_SRCBLEND, D3DBLEND_SRCALPHA); SetRenderState( D3DRS_DESTBLEND, D3DBLEND_INVSRCALPHA); SetTextureStageState(0, D3DTSS_ALPHAARG2, D3DTA_DIFFUSE); SetTextureStageState(0, D3DTSS_ALPHAOP, D3DTOP_MODULATE);
Anstatt D3DTA_DIFFUSE könntest Du vielleicht D3DTA_TFACTOR benutzen, den man mit SetRenderState( D3DRS_TEXTUREFACTOR, x ) setzen kann.
Weiß aber nicht, ob das gehen wird.
-
Vielen Dank @0x00000001, so funktioniert es:
SetRenderState( D3DRS_SRCBLEND, D3DBLEND_SRCALPHA ); SetRenderState( D3DRS_DESTBLEND, D3DBLEND_INVSRCALPHA ); SetRenderState( D3DRS_TEXTUREFACTOR, 0x80FFFFFF ); SetTextureStageState( 0, D3DTSS_ALPHAARG2, D3DTA_TFACTOR ); SetTextureStageState( 0, D3DTSS_ALPHAOP, D3DTOP_MODULATE );