gtlpcl
Messages postés
4
Date d'inscription
mardi 21 septembre 2004
Statut
Membre
Dernière intervention
29 janvier 2005
28 janv. 2005 à 11:30
Salut;
Avant de répondre, je suppose que tes lumières sont définies et activées.
Alors, pour répondre à tes questions :
<li>La primitive pour définir une normale en OpenGL est : glNormal3f( 0.0f, 0.0f, 1.0f);
</li>
<li>Les normales se définissent normalement par faces (heureusement;
sinon, tu n'en fini plus.) Mais je crois qu'on peu le faire par point,
mais là tu dégrades tes performances pour pas grand chose.</li>
<li>Et voici un petit exemple pour un cube :</li>
glBegin(GL_QUADS);
// Front Face
glNormal3f( 0.0f, 0.0f, 1.0f); // Normal Pointing Towards Viewer
glVertex3f(-1.0f, -1.0f, 1.0f); // Point 1 (Front)
glVertex3f( 1.0f, -1.0f, 1.0f); // Point 2 (Front)
glVertex3f( 1.0f, 1.0f, 1.0f); // Point 3 (Front)
glVertex3f(-1.0f, 1.0f, 1.0f); // Point 4 (Front)
// Back Face
glNormal3f( 0.0f, 0.0f,-1.0f); // Normal Pointing Away From Viewer
glVertex3f(-1.0f, -1.0f, -1.0f); // Point 1 (Back)
glVertex3f(-1.0f, 1.0f, -1.0f); // Point 2 (Back)
glVertex3f( 1.0f, 1.0f, -1.0f); // Point 3 (Back)
glVertex3f( 1.0f, -1.0f, -1.0f); // Point 4 (Back)
// Top Face
glNormal3f( 0.0f, 1.0f, 0.0f); // Normal Pointing Up
glVertex3f(-1.0f, 1.0f, -1.0f); // Point 1 (Top)
glVertex3f(-1.0f, 1.0f, 1.0f); // Point 2 (Top)
glVertex3f( 1.0f, 1.0f, 1.0f); // Point 3 (Top)
glVertex3f( 1.0f, 1.0f, -1.0f); // Point 4 (Top)
// Bottom Face
glNormal3f( 0.0f,-1.0f, 0.0f); // Normal Pointing Down
glVertex3f(-1.0f, -1.0f, -1.0f); // Point 1 (Bottom)
glVertex3f( 1.0f, -1.0f, -1.0f); // Point 2 (Bottom)
glVertex3f( 1.0f, -1.0f, 1.0f); // Point 3 (Bottom)
glVertex3f(-1.0f, -1.0f, 1.0f); // Point 4 (Bottom)
// Right face
glNormal3f( 1.0f, 0.0f, 0.0f); // Normal Pointing Right
glVertex3f( 1.0f, -1.0f, -1.0f); // Point 1 (Right)
glVertex3f( 1.0f, 1.0f, -1.0f); // Point 2 (Right)
glVertex3f( 1.0f, 1.0f, 1.0f); // Point 3 (Right)
glVertex3f( 1.0f, -1.0f, 1.0f); // Point 4 (Right)
// Left Face
glNormal3f(-1.0f, 0.0f, 0.0f); // Normal Pointing Left
glVertex3f(-1.0f, -1.0f, -1.0f); // Point 1 (Left)
glVertex3f(-1.0f, -1.0f, 1.0f); // Point 2 (Left)
glVertex3f(-1.0f, 1.0f, 1.0f); // Point 3 (Left)
glVertex3f(-1.0f, 1.0f, -1.0f); // Point 4 (Left)
glEnd(); // Done Drawing Quads
J'espère t'avoir aidé.
Bien à toi.
PCL
-- Il n'y a pas de problèmes, il n'y a que des solutions. C'est mathématique. --