Faces avant non affichées

Résolu
CyberP Messages postés 283 Date d'inscription mercredi 8 janvier 2003 Statut Membre Dernière intervention 4 juillet 2007 - 28 juil. 2005 à 21:59
BunoCS Messages postés 15330 Date d'inscription lundi 11 juillet 2005 Statut Modérateur Dernière intervention 25 novembre 2022 - 29 juil. 2005 à 10:53
Mon moteur 3D utilise DirectX et j'ai un petit bug... On voit les faces arrières des models et non leurs faces avants (un peu comme les vitres chez les flics qu'on voit dans les films, d'un côté c'est transparent, de l'autre opaque, et bien on se trouve du côté transparent et il faudrait que ce soit opaque)

Evidemment, si on se place de l'autre côté, ce sont les autres faces qui sont visibles (les anciennes faces avant qui sont maintenant les faces arrières puisqu'on est allé de l'autre côté du model) et inversement

Mon moteur peut également prendre un mode OpenGL et là tout fonctionne, c'est donc bien à cause de DirectX...

Je pense que c'est un problème du "material" parce que si je ne mets pas de texture, la même chose se produit

Merci d'avance, je suis encore débutant en DirectX

5 réponses

CyberP Messages postés 283 Date d'inscription mercredi 8 janvier 2003 Statut Membre Dernière intervention 4 juillet 2007 2
29 juil. 2005 à 10:47
Cétait bien le culling, j'avais une ligne :

pD3DDevice->SetRenderState(D3DRS_CULLMODE, D3DCULL_CCW);

et suffisait de changer D3DCULL_CCW en D3DCULL_CW (pas très explicites comme noms faut dire)

CyberP,
Celui qui dit que toute question a une réponse
3
Alcantornet Messages postés 89 Date d'inscription mardi 8 février 2005 Statut Membre Dernière intervention 14 novembre 2007
29 juil. 2005 à 07:59
euh j'ai jamais fais du DirectX mais le pense qu'il y a une fonction
dans ton moteur qui dit de ne pas dessiner qu'une face (normalement sa
doit être la face de derrière qui doit ne pas être dessiner), je crois
que le terme en englais est "culling".
0
CyberP Messages postés 283 Date d'inscription mercredi 8 janvier 2003 Statut Membre Dernière intervention 4 juillet 2007 2
29 juil. 2005 à 09:38
Oui je connais mais à part le désactiver je vois pas comment résoudre
le problème (peux pas essayer là j'ai fait une petite gaffe avec mes
sources mais rien de grave)

CyberP,
Celui qui dit que toute question a une réponse
0
BunoCS Messages postés 15330 Date d'inscription lundi 11 juillet 2005 Statut Modérateur Dernière intervention 25 novembre 2022 103
29 juil. 2005 à 10:00
En OpenGL, tu peux lui dire: "affiche soit les faces avant, soit les faces arrières" avec cette fonction:

glCullFace(GL_FRONT); // ou glCullFace(Gl_BACK);



J'imagine que cela doit être de même avec DirectX...

Buno
----------------------------------------
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
BunoCS Messages postés 15330 Date d'inscription lundi 11 juillet 2005 Statut Modérateur Dernière intervention 25 novembre 2022 103
29 juil. 2005 à 10:53
CW comme ClockWise (dans le sens des aiguilles d'ue montre)

CCW comme CounterClockWise (l'inverse)




Buno
----------------------------------------
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...
0