~ / teaching / OpenGL / tps / 2-viewer
© 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.
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
).
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
).
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 :
p
pour changer le mode de projection de orthographique à perspective ;f
pour changer le mode de rendu des faces (plein vs. fil de fer) ;l
pour activer ou non l'éclairage ;a
pour activer ou non l'antialiasing du fil de fer ;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