Quads transparents avec directx 9 [Résolu]

Signaler
Messages postés
293
Date d'inscription
jeudi 21 août 2003
Statut
Membre
Dernière intervention
10 avril 2015
-
Messages postés
293
Date d'inscription
jeudi 21 août 2003
Statut
Membre
Dernière intervention
10 avril 2015
-
Salut! j'ai un probleme, je voudrai superposer deux quads ( avec le RHW activé ). le probleme c'est que la transparence ne marche pas pourtant :
-la texture est un .png qui gere la transparence
-quand je charge la texture avec D3DXCreateTextureFromFileEx je defini le parametre "ColorKey" a 0
-les 4 points de mon sprite ( ou quad ) ont une couleur definie a 0x00FFFFFF.

meme pour un sprite tout seul, si je demande a directx d'effacer l'ecran avec la couleur verte ( par exemple ) mon quad vas se dessiner mais sa surface devant etre transparente sera noire

ne me dite pas d'utiliser la classe sprite de directx j'aimerai m'entrainer a utiliser les quads pour pouvoir passer a la programmation en 3d plus facilement plus tard.

merci de votre aide !
Adeon

1 réponse

Messages postés
293
Date d'inscription
jeudi 21 août 2003
Statut
Membre
Dernière intervention
10 avril 2015
2
Probleme resolu ! ( je prefere mettre la reponse on sait jamais si ya quelqu'un qui a mon probleme )

il fo faire quelque petite initialisation du device avant de commencer :

//paramètres d’affichage pour l'utilisation de la clé de couleur et de la transparence
m_pd3dDevice->SetRenderState(D3DRS_ALPHATESTENABLE, true);
m_pd3dDevice->SetRenderState(D3DRS_ALPHAFUNC, D3DCMP_NOTEQUAL);
m_pd3dDevice->SetRenderState(D3DRS_ALPHAREF, 0x00);
m_pd3dDevice->SetRenderState(D3DRS_ALPHABLENDENABLE, TRUE);
m_pd3dDevice->SetRenderState(D3DRS_SRCBLEND,D3DBLEND_SRCALPHA);
m_pd3dDevice->SetRenderState(D3DRS_DESTBLEND,D3DBLEND_INVSRCALPHA);
m_pd3dDevice->SetTextureStageState(0,D3DTSS_ALPHAOP,D3DTOP_MODULATE);
m_pd3dDevice->SetTextureStageState(0,D3DTSS_ALPHAARG1,D3DTA_TEXTURE);
m_pd3dDevice->SetTextureStageState(0,D3DTSS_ALPHAARG2,D3DTA_DIFFUSE);

Adeon