L3IF Images
année 2005-2006
http://www710.univ-lyon1.fr/~jciehl/
TD1 - Visualisation
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 sur un axe quelconque). Les évènements
clavier
et souris gérés par glut permettent de simplifier ce type
d'interaction.
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 goût 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 ?
Annexe : squelette pour GLUT
Récupérez l'archive td1.tar.gz.
Vous n'avez plus qu'à complèter les fonctions initgl(), display() et keyboard() dans view.c
Si vous préférez une manipulation
à la souris, il suffit d'enregistrer votre fonction avec glutMouseFunc() et glutMotionFunc().
Quelques modèles simples sont disponibles ici et là.