next_inactive up previous


Introduction à OpenGL et Glut

DESS IM, UJF-Grenoble, 2003

PDF ps.gz

1 Prise en main et compréhension

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 $z=100(y-x^2)^2+(1-x)^2$ sur l'intervalle $[-1;1]\times[-1;1]$, 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.

2 Interaction

question 2   Pourquoi la touche f ne fonctionne-t-elle pas correctement ? Résolvez le problème.

3 Double buffer

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 ?

4 Test de profondeur

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é.

5 Test d'opacité

question 6   Que se passe-t-il quand on commente la ligne glEnable( GL_ALPHA_TEST ); ? Pourquoi ?

6 Pour finir

question 7   Quelles couches de frame buffer sont-elles utilisées dans ce programme ?


next_inactive up previous
Francois Faure 2003-01-24