TP numéro 3 : mouvements de caméra et d'objets
Remarque
Ce TP contient la correction du TP 2.
Jouons un peu !
-
Récupérez le programme compilé mouvements1.exe
-
Testez-le !
-
Essayez les flèches de déplacement,
-
Essayez les flèches en maintenant la touche shift enfoncée,
-
Essayez la boule virtuelle en cliquant avec la souris et en la déplaçant,
-
Essayez les flèches une fois que la caméra a tourné
sur la boule virtuelle (si on re-clique, la boule se ré-initialise,
nous n'avons pas eu le temps de complètement terminer le mix entre
les déplacements caméra et la boule virtuelle, donc pas de
TP quake aujourd'hui encore!)
-
Essayez de déplacer le triangle et le cube. Pour déplacer
le cube, touches t,d,f,c et pour le triangle i,j,k et ','
Etudions un peu !
-
Etudiez le source !
-
Regardez en particulier comment sont gérés les déplacements
de la caméra avec les flèches (fonction specialKey)
-
Regardez comment sont gérés les déplacements locaux
de la scène avec flèches + shift (fonction specialKey)
-
Etudiez la gestion de la boule virtuelle (fonctions mouse, motion, DrawGLScene
et recalcModelView dans mouvements_squelette.c et trackball.c et trackball.h)
Travail à faire
-
Regardez comment on a préparé le travail pour qu'on puisse
déplacer dans leur propre repère le carré et le triangle.
Regardez InitGL pour leur positionnement initial et le stockage de leur
position dans leur propre matrice de positonnement (une structure aurait
été la bienvenue...).
Vous devrez écrire les fonctions translateModelview et rotateModelview
qui permettent d'appliquer à une matrice de positionnement quelconque
une rotation ou une translation locale. Ces fonctions sont appelées
lorsqu'on appuie sur certaines touches (fonction key). Télécharger
la correction.
-
Affectez une touche du clavier de manière à ce que la caméra
suive le triangle lorsqu'il se déplace (utiliser gluLookAt). Comment
récupèrer la position de l'objet ? Idem avec le cube.
-
Essayez de terminer le travail commencé par vos enseignants en faisant
en sorte que la boule virtuelle ne se remettre pas à zéro
à chaque fois, même si on a déplacé la caméra
avec les flèches (dur).
-
Et ce bonhomme articulé ???