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 ?