OpenGL et ordre d'affichage des polygones
Baarde
Membre
voici un morceau de code OpenGL devant afficher deux carrés : un gris et un jaune.
Le carré jaune est situé derrière le carré gris mais il s'affiche par-dessus. Comment faire pour que le carré jaune soit affiché derrière le carré gris et non pas au-dessus sans changer l'ordre dans lequel on déclare les carrés ?
[Fichier joint supprimé par l'administrateur]
glBegin(GL_POLYGON);<br />glColor4f(0.5, 0.5, 0.5, 0.0);<br />glVertex3f(-3.2, -1.2, -1.2);<br />glVertex3f(-1.2, -1.2, -1.2);<br />glVertex3f(-1.2, -3.2, -1.2);<br />glVertex3f(-3.2, -3.2, -1.2);<br />glEnd();<br /><br />glBegin(GL_POLYGON);<br />glColor4f(1.0, 1.0, 0.0, 0.0);<br />glVertex3f(-3.2, -1.2, -3.2);<br />glVertex3f(-1.2, -1.2, -3.2);<br />glVertex3f(-1.2, -3.2, -3.2);<br />glVertex3f(-3.2, -3.2, -3.2);<br />glEnd();<br />
Le carré jaune est situé derrière le carré gris mais il s'affiche par-dessus. Comment faire pour que le carré jaune soit affiché derrière le carré gris et non pas au-dessus sans changer l'ordre dans lequel on déclare les carrés ?
[Fichier joint supprimé par l'administrateur]
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
Sinon il vaut mieux spécifier GL_QUADS pour dessiner un quadrilatère. Il faut dessiner dans le sens horaire, la surface que tu vois est alors la face arrière de ton carré....donc en dessinant dans le sens anti-horaire c'est la face avant de ton carré que tu vois.
[tt]
glBegin(GL_QUADS);
glVertex3f(-1.0f, 1.0f, 0.0f); // Haut Gauche
glVertex3f( 1.0f, 1.0f, 0.0f); // Haut Droite
glVertex3f( 1.0f,-1.0f, 0.0f); // Bas Droite
glVertex3f(-1.0f,-1.0f, 0.0f); // Bas Gauche
glEnd();
[/tt]