

exercice 1 :
chargez 2 keyframes d'une animation : robot
(quaternius)
on suppose que la première keyframe correspond au
temps t= 0 et la 2ième au temps t= 1.
comment interpoler (linéairement) la position de chaque sommet
en fonction du temps t, connaissant sa position à t= 0 et à t= 1
? (pour l'instant, on suppose que t est compris entre 0 et 1)
utilisez float
global_time() de window.h pour connaitre le temps écoulé
depuis le lancement de l'application, en millisecondes.
écrivez le vertex shader qui réalise cette
interpolation.
quelles informations sont nécessaires pour l'exécuter ?
comment les fournir au shader ? comment les récupérer dans
l'application ?
rappel : buffers, vertex array objects,
uniforms, Mesh::positions(), Mesh::indices(),
read_mesh(), read_indexed_mesh()...
astuces : il y a 2 manières de représenter
les maillages, soit avec des sommets partagés / indexés, soit
uniquement avec les sommets. quel serait l’intérêt d'utiliser un
maillage indexé avec des sommets partagés dans ce cas ?
bug : il y a un problème avec la
reconstruction de l'indexation des sommets entre les
différents mesh du robot. utilisez plutot read_mesh() et une
représentation sans sommets partagés.
le problème vient des fichiers .obj qui ne contiennent pas le
même nombre de normales uniques, et donc pas le même nombre de
sommets partagés...
rappel : il existe plusieurs manières de
configurer des vao... cf la doc
en ligne ?
rappel : il existe des buffers, cf uniform
buffers pour openGL 3.3 ou storage
buffers pour openGL 4.3
rappel : oui bien sur, il y a plusieurs solutions...
exercice 2 :
modifiez votre application pour afficher l'animation complète du
robot.
chargez toutes les keyframes de l'animation et affichez les, en
boucle.
comment décrire / organiser toutes ces
informations ? un vao par keyframe ? ou autre chose ?
exercice 3 / bonus :
et si on veut afficher un groupe de robots dont les animations
ne sont pas identiques ? (chaque robot ne pose pas le pied en
même temps que les autres)
pour les curieux : comment exporter les animations des personnages, ou des animaux de cube_world de quaternius ?
