Aucune des faces de la pyramide ne s'affiche correctement, quel est le problème?
Voilà le code:
#include <windows.h>
#include <gl/glut.h>
///////////////////////////////////////////////////////////////////
double rtri;
double rbase;
///////////////////////////////////////////////////////////////////
void init (GLvoid)
{
glShadeModel (GL_SMOOTH);
glClearColor (0.0, 0.0, 0.0, 0.0);
glClearDepth (1.0);
glEnable (GL_DEPTH_TEST);
glDepthFunc (GL_LEQUAL);
glEnable (GL_COLOR_MATERIAL);
glHint (GL_PERSPECTIVE_CORRECTION_HINT, GL_NICEST);
}
///////////////////////////////////////////////////////////////////
void display (void)
{
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glLoadIdentity();
glTranslatef( 0.0, 0.0,-5.0);
glRotatef(rtri, 0.0, 1.0, 0.0);
rtri-=0.5;
glBegin(GL_TRIANGLES);
glColor3f ( 1.0, 0.0, 0.0); // Rouge
glVertex3f( 0.0, 1.0, 0.0); // Top Of Triangle (Front)
glVertex3f(-1.0,-1.0, 1.0); // Left Of Triangle (Front)
glVertex3f( 1.0,-1.0, 1.0); // Right Of Triangle (Front)
glColor3f ( 0.0, 1.0, 0.0); // Vert
glVertex3f( 0.0, 1.0, 0.0); // Top Of Triangle (Right)
glVertex3f( 1.0,-1.0, 1.0); // Left Of Triangle (Right)
glVertex3f( 1.0,-1.0,-1.0); // Right Of Triangle (Right)
glColor3f ( 0.0, 0.0, 1.0); // Bleu
glVertex3f( 0.0, 1.0, 0.0); // Top Of Triangle (Back)
glVertex3f( 1.0,-1.0,-1.0); // Left Of Triangle (Back)
glVertex3f(-1.0,-1.0,-1.0); // Right Of Triangle (Back)
glColor3f ( 0.5, 0.5, 0.5); // Gris
glVertex3f( 0.0, 1.0, 0.0); // Top Of Triangle (Left)
glVertex3f(-1.0,-1.0,-1.0); // Left Of Triangle (Left)
glVertex3f(-1.0,-1.0, 1.0); // Right Of Triangle (Left)
glEnd();
glLoadIdentity();
glTranslatef( 0.0, 0.0,-5.0);
glRotatef(rbase, 0.0, 1.0, 0.0);
rbase-=0.5;
glBegin(GL_QUADS);
glColor3d ( 0.2, 0.3, 0.5);
glVertex3f(-1.0,-1.0, 1.0);
glVertex3f(-1.0,-1.0,-1.0);
glVertex3f( 1.0,-1.0,-1.0);
glVertex3f( 1.0,-1.0, 1.0);
glEnd();
glutSwapBuffers ();
}
///////////////////////////////////////////////////////////////////
void reshape (int w, int h)
{
glViewport (0, 0, w, h);
glMatrixMode (GL_PROJECTION);
glLoadIdentity ();
if (h==0)
gluPerspective (80,(float) w, 1.0, 5000.0);
else
gluPerspective (80,(float)w/(float) h, 1.0, 5000.0);
glMatrixMode (GL_MODELVIEW);
glLoadIdentity ();
}
///////////////////////////////////////////////////////////////////
void main (int argc, char** argv)
{
glutInit (&argc, argv);
init ();
glutInitDisplayMode (GLUT_RGB | GLUT_DOUBLE);
glutInitWindowSize (640, 480);
glutCreateWindow ("Newbie's Project" );
//glutFullScreen ();
glutDisplayFunc (display);
glutIdleFunc (display);
glutReshapeFunc (reshape);
glutMainLoop ();
}
///////////////////////////////////////////////////////////////////