1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57
| #include <GL/glut.h>
void Reshape(int width, int height)
{
glViewport(0, 0, width, height);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
gluPerspective(45, (float)width/(float)height, 0.1, 100);
glMatrixMode(GL_MODELVIEW);
}
double r = 0;
int LightPos[4] = {3,-3,3,1};
int MatSpec [4] = {1,1,1,1};
void Draw()
{
glMaterialiv(GL_FRONT_AND_BACK, GL_SPECULAR, MatSpec);
glMateriali(GL_FRONT_AND_BACK, GL_SHININESS, 100);
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
glLightiv(GL_LIGHT0, GL_POSITION, LightPos);
gluLookAt(0,6,6,0,0,0,0,1,0);
glRotated(r, 0, 1, 0);
glBegin(GL_POLYGON);
glVertex3f(-2, 2, 0);
glVertex3f(-2, -2, 0);
glVertex3f(2, -2, 0);
glVertex3f(2, 2, 0);
glEnd();
//~ glutSolidCube(2.0);
r += 0.1;
glutSwapBuffers();
glutPostRedisplay();
}
int main(int argc, char *argv[], char *envp[])
{
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_RGBA | GLUT_DOUBLE | GLUT_DEPTH);
glutInitWindowSize(640,480);
glutCreateWindow("lumiere");
glutFullScreen();
glutReshapeFunc(Reshape);
glutDisplayFunc(Draw);
glEnable(GL_DEPTH_TEST); // Active le test de profondeur
glEnable(GL_LIGHTING); // Active l'éclairage
glEnable(GL_LIGHT0); // Allume la lumière n°1
glutMainLoop();
return 0;
} |
Partager