Alternative zu D3DRS_BLENDFACTOR ?



  • Hallo Leute,

    Ich hab im Moment ein kleines Problem:
    Ich habe in meinem Programm einen Hintergrund, vor dem ein Viereck mit Textur gerendert wird. Ich hab das jetzt so eingestellt, dass das Viereck zu etwa 75% transparent ist. Die Textur selbst hat keinen Alphakanal. Bis jetzt hab ich das so gelöst:

    pD3DDevice->SetRenderState(D3DRS_ALPHABLENDENABLE,TRUE);
    pD3DDevice->SetRenderState(D3DRS_BLENDFACTOR,0x40404040);
    pD3DDevice->SetRenderState(D3DRS_SRCBLEND,D3DBLEND_BLENDFACTOR);
    pD3DDevice->SetRenderState(D3DRS_DESTBLEND,D3DBLEND_INVBLENDFACTOR);
    pD3DDevice->SetFVF(D3DFVF_XYZRHW|D3DFVF_TEX1);
    pD3DDevice->SetTexture(0,pTexture);
    pD3DDevice->DrawPrimitiveUP(D3DPT_TRIANGLESTRIP,2,&Vertizes,sizeof(SVertex));
    pD3DDevice->SetTexture(0,NULL);
    pD3DDevice->SetRenderState(D3DRS_ALPHABLENDENABLE,FALSE);
    

    Das funktioniert auch wie gewünscht, allerdings hab ich gelesen, dass die Methode mit dem Blendfactor längst nicht auf allen Grafikkarten unterstützt wird. Deshalb meine Frage: Wie kann man (falls möglich) den gleichen Effekt auf andere Weise erzeugen?

    Vielen Dank schon mal im Voraus für eure Antworten.

    MfG, Jochen


Anmelden zum Antworten