Faces avant non affichées

[Résolu]
Signaler
Messages postés
283
Date d'inscription
mercredi 8 janvier 2003
Statut
Membre
Dernière intervention
4 juillet 2007
-
Messages postés
15154
Date d'inscription
lundi 11 juillet 2005
Statut
Modérateur
Dernière intervention
19 octobre 2021
-
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

Messages postés
283
Date d'inscription
mercredi 8 janvier 2003
Statut
Membre
Dernière intervention
4 juillet 2007
2
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
Messages postés
89
Date d'inscription
mardi 8 février 2005
Statut
Membre
Dernière intervention
14 novembre 2007

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".
Messages postés
283
Date d'inscription
mercredi 8 janvier 2003
Statut
Membre
Dernière intervention
4 juillet 2007
2
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
Messages postés
15154
Date d'inscription
lundi 11 juillet 2005
Statut
Modérateur
Dernière intervention
19 octobre 2021
99
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...
Messages postés
15154
Date d'inscription
lundi 11 juillet 2005
Statut
Modérateur
Dernière intervention
19 octobre 2021
99
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...