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 .