Danke für eure Tipps! Hab das Problem so gelöst:
Mit dem DirectX Texture Tool eine DDS im Format A8R8G8B8 erstellt
Farb-JPG auf die Surface und SW-JPG auf den Alpha Channel der Surface
D3DXCreateTextureFromFileEx mit D3DFMT_A8R8G8B8 ausgeführt (D3DX_FILTER_NONE, ColorKey 0x00000000)
Wie folgt gerendert:
|
C-/C++-Quelltext
|
1
2
3
4
5
6
7
8
9
|
SetRenderState(D3DRS_ALPHABLENDENABLE, TRUE);
SetRenderState(D3DRS_ALPHAFUNC, D3DCMP_GREATER);
SetRenderState(D3DRS_ALPHAREF, (DWORD)0x00000080);
SetRenderState(D3DRS_ALPHATESTENABLE, TRUE);
SetTextureStageState( 0, D3DTSS_COLOROP, D3DTOP_MODULATE);
SetTextureStageState(0, D3DTSS_ALPHAOP, D3DTOP_MODULATE);
SetRenderState(D3DRS_SRCBLEND, D3DBLEND_BLENDFACTOR);
SetRenderState(D3DRS_DESTBLEND,D3DBLEND_INVBLENDFACTOR);
SetRenderState(D3DRS_BLENDFACTOR, dwBlendValue);
|
Der ColorKey und die Vertexfarbe ist DirectX im vorliegenden Fall übrings sowas von egal. Ob schwarz ob weiss...
Irgendwie war ich schon nah dran an der Lösung. Aber ihr wisst ja, wie das ist. x hoch n Kombinationsmöglichkeiten, irgendwo ein falsches Flag gesetzt, ... :shock: