L3IF Images
année 2004-2005
http://www710.univ-lyon1.fr/~jciehl/

TD4 - Animation


nvidia bigguy
(image et modèle disponible dans le SDK nvidia)

Partie 1 : animation de personnages

    Il existe de nombreuses techniques d'animations de personnages, le thème du TD est d'utiliser une technique simple permettant de reconstruire, pour chaque instant, la description complète du personnage afin de recréer une animation fluide.

    L'animation que vous allez manipuler est décrite comme un ensemble de maillages correspondant chacun à la description complète du personnage à un instant t. Pour reconstruire l'animation, il suffit d'interpoler la position de chaque sommet du maillage entre sa position précédente et sa position suivante.

Partie 2 : description du maillage

    Le personnage est décrit à chaque instant par un maillage composé de sommets et de faces (quadrangles). La fonction model_maya_obj() permet de charger un modèle au format MAYA (.obj) et de le représenter en mémoire comme un ensemble de faces :

struct
{
int mat; // indice de la matiere
int norm; // indice de la normale geometrique de la face

int (*v)[3]; // parametres des sommets (indice du sommet, indice des coordonnées de texture, indice de la normale)
int size; // nombre de sommets alloués
int n; // nombre de sommets de la face
} FACE;

    Le modèle complet comporte également un ensemble de matières, un ensemble de normales, un ensemble de coordonnées de texture et évidement, un ensemble de sommets. Tous les ensembles sont représentés par des tableaux dynamiques.

    La fonction model_display() permet d'afficher un modèle.

    Ces deux fonctions sont disponibles dans maya_obj.c et maya_view.c (cf. lien ci-dessous).


Partie 3 : réalisation

    Réalisez un programme qui charge toutes les positions intermédiaires et qui les affiches successivement.

    Modifiez votre programme afin d'interpoler la position de chaque sommet en fonction de l'instant t.


    Les fonctions de chargement et d'affichage du maillage sont ici, le modèle bigguy de nvidia est ici.