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
|
GLUquadricObj* quadric = NULL;
int matSpec[4] = {1, 1, 1, 1};
bool initOpenGL() {
// Définir la couleur d'arrière plan.
glClearColor(0.f, 0.f, 0.f, 0.f);
// Parametrer la matrice de projection.
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
gluPerspective(40.0, (double)640/480, 1, 500);
// Activer le teste de profondeur.
glEnable(GL_DEPTH_TEST);
// Activer état OpenGL.
glEnable(GL_COLOR_MATERIAL);
// Activier la lumière n°0.
glEnable(GL_LIGHTING);
glEnable(GL_LIGHT0);
// Générer et parametrer le quadric.
quadric = gluNewQuadric();
gluQuadricDrawStyle(quadric, GLU_FILL);
gluQuadricNormals(quadric, GL_FLAT);
return true;
}
void render() {
// Vider les tampons.
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
// Placer la caméra.
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
gluLookAt(4.0, 4.0, 4.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0);
glMaterialiv(GL_FRONT_AND_BACK, GL_SPECULAR, matSpec);
glMateriali(GL_FRONT_AND_BACK, GL_SHININESS, 128);
// Dessiner une sphère.
gluSphere(quadric, 1,50, 50);
// Mettre à jour l'écran.
glFlush();
SDL_GL_SwapBuffers();
} |
Partager