Introduction à OpenGL et Glut
DESS IM, UJF-Grenoble, 2003
Copiez le programme
main.C
. Compilez-le à l'aide de ce
Makefile
. Exécutez-le. Pour sortir, tapez sur la touche Escape.
La scène représente une fonction de Rosenbrock
sur l'intervalle
, ainsi que les axes x et y, et une tache de couleur. Déplacez la tache au moyen des touches g,t,f,h (la touche f ne fonctionne pas correctement, c'est normal)
question 1
Pour chaque procédure du programme, expliquez brièvement quand elle est exécutée et à quoi elle sert.
question 2
Pourquoi la touche f ne fonctionne-t-elle pas correctement ? Résolvez le problème.
L'image saute quand on déplace la tache. Résolvez le problème en remplaçant GLUT_SINGLE par GLUT_DOUBLE et glFlush(); par glutSwapBuffers();.
question 3
Pourquoi le double buffer donne-t-il une meilleure animation ? Quelle est la contrepartie ?
question 4
Que se passe-t-il quand on commente la ligne glEnable( GL_DEPTH_TEST ); ? Pourquoi ?
question 5
Dans quel ordre doit-on alors tracer les éléments de la scène pour qu'ils apparaissent correctement ? Pourquoi ?
Pour terminer, décommentez la ligne afin d'obtenir un résultat indépendant de l'ordre de tracé.
question 6
Que se passe-t-il quand on commente la ligne glEnable( GL_ALPHA_TEST ); ? Pourquoi ?
question 7
Quelles couches de frame buffer sont-elles utilisées dans ce programme ?
Francois Faure
2003-01-24