bonjour tt le monde!
quelqun pourrait me dire pourqoui le Z-buffer marche pas?
pasque le dernier (4ème) triangle dessiné apparait tjs au dessus, meme s'il devrait etre derrière dans l'espace.
bon, voilà le code, il faut juste rajouter -lopenGL32 -lglut32 ds project options, mais je suppose que si qqun peut repondre a ma question, il saura aussi comment compiler un projet openGL
Au fait, j'ai Dev C++
Merci d'avance
PS:je sais, ya pas + con comme prog, mais bon faut bien commencer par quelque part

// affiche 4 faces d'un pavé de 2*2*3, et permet de tourner autour.
// ou du moins, ca devrait.
#include <GL/glut.h>
#include <stdlib.h>
float a=0.0,b=0.0;
void processSpecialKeys(int key,int x,int y){
switch(key){
case GLUT_KEY_RIGHT :
a=a-1; break;
case GLUT_KEY_LEFT :
a=a+1; break;
case GLUT_KEY_UP :
b=b-1; break;
case GLUT_KEY_DOWN :
b=b+1; break;
}
}
void display(void) {
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glLoadIdentity();
gluLookAt(0, 0, 6, 0, 0, 0, 0, 1, 0);
glRotatef(a,0,1,0);
glRotatef(b,1,0,0);
glBegin(GL_QUADS);
glColor3f(1.0, 1.0, 1.0);
glVertex3i(-1,0,1);
glVertex3i(1,0,1);
glVertex3i(1,3,1);
glVertex3i(-1,3,1);
glColor3f(0.0, 0.0, 1.0);
glVertex3i(1,0,-1);
glVertex3i(1,3,-1);
glVertex3i(-1,3,-1);
glVertex3i(-1,0,-1);
glColor3f(0.0, 1.0, 0.0);
glVertex3i(1,0,1);
glVertex3i(1,0,-1);
glVertex3i(1,3,-1);
glVertex3i(1,3,1);
glColor3f(0.0, 1.0, 1.0);
glVertex3i(-1,0,1);
glVertex3i(-1,0,-1);
glVertex3i(-1,3,-1);
glVertex3i(-1,3,1);
glEnd();
glutSwapBuffers();
glutPostRedisplay();
}
void init(void) {
glClearColor (0.0, 0.0, 0.0, 0.0);
glShadeModel (GL_SMOOTH);
}
void reshape(int w, int h) {
glViewport(0,0,w,h);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
gluPerspective(45.0f,(GLfloat)w/(GLfloat)h, 1 ,150.0f);
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
}
int main(int argc, char** argv) {
glutInit(&argc, argv);
glutInitDisplayMode (GLUT_DOUBLE | GLUT_RGB);
glutInitWindowSize (250, 250);
glutInitWindowPosition (100, 100);
glutCreateWindow (argv[0]);
init ();
glutDisplayFunc(display);
glutIdleFunc(display);
glutReshapeFunc(reshape);
glutSpecialFunc(processSpecialKeys);
glutMainLoop();
return 0;
}