next_inactive up previous


Transformations géométriques avec OpenGL


Ce travail consiste à modifier un programme initial pour s'initier progressivement aux transformations géométriques. Créez un répertoire tp1 et recopiez-y les fichiers cube1.c et Makefile.

1 Prise en main du programme

Compilez et exécutez le programme cube1.c. Identifiez dans le code ses principaux composants:

2 Clipping

Compilez et exécutez le programme. En utilisant les touches du clavier, éloignez-vous du cube. Que finit-il par arriver ? Et en se rapprochant ? Sur le compte-rendu, faites un schéma en dimension 2 pour expliquer le phénomène.

3 Distorsion due à la perspective

La face arrière du cube apparaît beaucoup plus petite que sa face avant. Faites un schéma pour expliquer ce phénomène. Sur le même schéma, montrez comment réduire cette distorsion (sans l'annuler). Modifiez les paramètres de glFrustum pour vérifier. Copiez les schémas et les nouveaux paramètres sur le compte-rendu.

4 Distorsion due au fenêtrage

Redimensionnez la fenêtre horizontalement. Que se produit-il ? Expliquez sur un schéma. Copiez ce schéma sur le compte-rendu. Modifiez le programme pour que les proportions du cube se conservent lors des redimensionnements de fenêtre. Expérimentez en redimensionnant verticalement ou horizontalement.

5 Étirement du modèle

Afin de distinguer les directions principales de l'objet affiché, on désire lui donner une forme de boîte deux fois plus allongée en X qu'en Y, et deux fois plus allongée en Y qu'en en Z. Étirez le cube à l'aide d'une transformation d'échelle (glScale) pour obtenir ce résultat. Recopiez cette instruction sur le compte-rendu.

6 Placement de l'objet

Décalez l'objet d'une unité vers la droite et tournez-le de 45 degrés autour de l'axe vertical à l'aide de glTranslate et glRotate.

7 Placement de la caméra

Prenez de la hauteur en montant la caméra d'une unité vers le haut et en inclinant son axe de manière à ce que le cube reste approximativement au centre de l'image. On pourra essayer successivement les deux méthodes suivantes:
  1. à l'aide d'une translation et d'une rotation (recopiez les deux instructions sur le compte-rendu)
  2. à l'aide de la fonction gluLookAt décrite dans le manuel en ligne.

8 Changement interactif de point de vue

Compilez et essayez le programme traqueboule.c. Faites tourner l'objet au moyen de la souris. Comparez-le au programme traqueeuler.c. Quel est le problème avec traqueeuler.c ? D'où vient-il ?


next_inactive up previous
Francois Faure 2003-01-31