L3IF Images
année 2004-2005
http://www710.univ-lyon1.fr/~jciehl/
TD3 - Navigation
L'objectif de ce TD est de créer une
interface de visualisation interactive d'un objet ou d'une scène
complète. En effet, lorsque l'on dispose d'une visualisation
interactive, il est souhaitable
de pouvoir positionner, ou orienter, le modèle selon ses
désirs.
Ce positionnement dispose de 6 degrés de liberté, et
proposer
une interface intuitive pour les spéficier n'est pas si
évident.
Partie 1 : Orienter un objet
Proposez une manière interactive d'orienter
un objet. Il est souvent nécessaire de choisir entre naviguer
dans l'espace (déplacer le point de vue) et orienter le
modèle
(en utilisant une rotation par axe). Les évènements
clavier
et souris gérés par glut permettent de simplifier ce type
d'interaction.
note : vous aurez très certainement besoin de définir
une action pour les évènements clavier (glutKeyboardFunc
et glutSpecialFunc) ou pour les évènements souris
(glutMouseFunc, glutMotionFunc, glutPassiveMotionFunc).
Vous pouvez également créer une fonction "zoom".
Partie 2 : Déplacement dans une scène
Proposez une manière de déplacer librement la caméra dans la scène.
Partie 3 : Déplacement contraint
Il serait de bon gout que la caméra ne
"passe" pas à travers les objets de la scène. Comment
détecter la collision de la caméra et de la
géométrie affichée ? Il est possible d'utiliser
quelques résultat de mécanique du point afin de
créer une réaction plausible à la collision.
Est-ce que la notion de gravité est importante ?