~ / teaching / OpenGL / tps / 2-viewer

TP 2 - Visualisateur 3D

© 2007–2011 - Renaud Blanch

Le but de ce Tp est de vous familiariser avec le pipeline graphique d'OpenGL. Vous allez réaliser pendant ce Tp un visualisateur d'objet en 3D.

Pour commencer

Récupérez le squelette du viewer. Exécutez ./viewer.py, lisez les différents fichiers pour vous familiariser avec le code.

Modifiez le programme pour que le cube d'arête 1 soit toujours affiché à l'intérieur de la fenêtre et qu'il conserve toujours les proportions (que le cube soit toujours un cube donc) (glViewport, glOrtho).

Affichage de l'objet

Remplacez le tracé du carré par celui de l'objet chargé depuis le fichier en réalisant la méthode display de la classe mesh.Mesh.

Faites en sorte que l'objet soit centré dans la vue et qu'il soit inscrit dans le cube unitaire.

Activer le test de profondeur pour obtenir un rendu correct des parties cachées (glDepthFunc).

Ajoutez une lumière (glLight) et faites en sorte que la couleur de base de l'objet soit la même lorsque la lumière est active qu'en l'absence de lumière (glMaterial, glColorMaterial).

Interaction

Ajoutez la possibilité de changer l'échelle de l'objet et son orientation interactivement à l'aide de la souris.

Réalisez les différentes interactions au clavier :

Plus loin

Améliorez la rotation en implémentant la technique ArcBall qui utilise les quaternions pour représenter les rotations en 3 dimensions.

Ajoutez la projection de l'ombre de l'objet sur le plan du sol.

Modifiez le programme pour qu'il utilise le pipeline programmable (bonus si vous n'utilisez que le sous-ensemble d'OpenGL|ES 2.0).

mise à jour : 5 décembre 2011