TP Déformation et animation de maillages CPE



Documents pareils
Comment sélectionner des sommets, des arêtes et des faces avec Blender?

Chapitre 3 : Repères et positionnement 3D

Exemple d application en CFD : Coefficient de traînée d un cylindre

Analyse de la vidéo. Chapitre La modélisation pour le suivi d objet. 10 mars Chapitre La modélisation d objet 1 / 57

L analyse d images regroupe plusieurs disciplines que l on classe en deux catégories :

Développement mobile MIDP 2.0 Mobile 3D Graphics API (M3G) JSR 184. Frédéric BERTIN

Programmation linéaire

3 Approximation de solutions d équations

Master IMA - UMPC Paris 6 RDMM - Année Fiche de TP

TPs Architecture des ordinateurs DUT Informatique - M4104c SUJETS. R. Raffin Aix-Marseille Université romain.raffin-at-univ-amu.fr

Imagerie Numérique Synthèse d images. DUT Informatique Sébastien THON

Simulation du transport de matière par diffusion surfacique à l aide d une approche Level-Set

Synthèse d'images I. Venceslas BIRI IGM Université de Marne La

Les algorithmes de base du graphisme

Quantification Scalaire et Prédictive

Optimisation non linéaire Irène Charon, Olivier Hudry École nationale supérieure des télécommunications

Reconstruction de bâtiments en 3D à partir de nuages de points LIDAR

Corrigé du baccalauréat S Pondichéry 12 avril 2007

Cours d Analyse. Fonctions de plusieurs variables

Franck VAUTIER, Jean-Pierre TOUMAZET, Erwan ROUSSEL, Marlène FAURE, Mohamed ABADI, Marta FLOREZ, Bertrand DOUSTEYSSIER

Sujet proposé par Yves M. LEROY. Cet examen se compose d un exercice et de deux problèmes. Ces trois parties sont indépendantes.

COURS EULER: PROGRAMME DE LA PREMIÈRE ANNÉE

Intégrales doubles et triples - M

Introduction à MATLAB R

Programmation linéaire

Objectifs. Clustering. Principe. Applications. Applications. Cartes de crédits. Remarques. Biologie, Génomique

Adaptation de maillages non structurés pour des problèmes instationnaires

M2-Images. Rendu Temps Réel - OpenGL 4 et compute shaders. J.C. Iehl. December 18, 2013

Rendu temps réel de mer et de nuages

FONCTIONS DE PLUSIEURS VARIABLES (Outils Mathématiques 4)

La programmation linéaire : une introduction. Qu est-ce qu un programme linéaire? Terminologie. Écriture mathématique

TD 9 Problème à deux corps

GMIN 330 Nancy Rodriguez


Modélisation et Simulation

Figure 3.1- Lancement du Gambit

Résolution d équations non linéaires

REALISATION D UN MAILLAGE

Création intuitive des éléments d un paysage

La Licence Mathématiques et Economie-MASS Université de Sciences Sociales de Toulouse 1

Algorithmique I. Algorithmique I p.1/??

MCMC et approximations en champ moyen pour les modèles de Markov

Analyse statique d une pièce

Correction du baccalauréat ES/L Métropole 20 juin 2014

03/04/2007. Tâche 1 Tâche 2 Tâche 3. Système Unix. Time sharing

Sujet 1 : Diagnostique du Syndrome de l apnée du sommeil par des techniques d analyse discriminante.

Aide - mémoire gnuplot 4.0

Tutoriel première utilisation ICEM-CFD. Couche limite et modification du maillage en 2D

Détection des points d intérêt et Segmentation des images RGB-D. Présentée par : Bilal Tawbe. Semaine de la recherche de l UQO

Python - introduction à la programmation et calcul scientifique

Projet SINF2275 «Data mining and decision making» Projet classification et credit scoring

Examen optimisation Centrale Marseille (2008) et SupGalilee (2008)

Chapitre 2 : Caractéristiques du mouvement d un solide

Quels polygones sont formés par les milieux des côtés d un autre polygone?

ANALYSE NUMERIQUE ET OPTIMISATION. Une introduction à la modélisation mathématique et à la simulation numérique

Construction de la bissectrice d un angle

Deux disques dans un carré

Correction du Baccalauréat S Amérique du Nord mai 2007

Les correcteurs accorderont une importance particulière à la rigueur des raisonnements et aux représentations graphiques demandées.

LA PHYSIQUE DES MATERIAUX. Chapitre 1 LES RESEAUX DIRECT ET RECIPROQUE

Fonctions de plusieurs variables

DÉVERSEMENT ÉLASTIQUE D UNE POUTRE À SECTION BI-SYMÉTRIQUE SOUMISE À DES MOMENTS D EXTRÉMITÉ ET UNE CHARGE RÉPARTIE OU CONCENTRÉE

Catalogue des connaissances de base en mathématiques dispensées dans les gymnases, lycées et collèges romands.

Cours 1 : Qu est-ce que la programmation?

Calcul des pertes de pression et dimensionnement des conduits de ventilation

Géométrie discrète Chapitre V

Plan du cours : électricité 1

Formation Excel, Niveau initiation, module 1 DUREE DE LA FORMATION OBJECTIFS DE LA FORMATION

Cours IV Mise en orbite

Prénom : Matricule : Sigle et titre du cours Groupe Trimestre INF1101 Algorithmes et structures de données Tous H2004. Loc Jeudi 29/4/2004

Approximations variationelles des EDP Notes du Cours de M2

Paris et New-York sont-ils les sommets d'un carré?

Théorème du point fixe - Théorème de l inversion locale

Plan. Synthèse d'images et animation. Plan 08/04/ Introduction- La synthèse d'images au service du cinéma

Calcul intégral élémentaire en plusieurs variables

Détection et suivi d'objets dans une séquence d'images par contours actifs

BACCALAUREAT GENERAL MATHÉMATIQUES

PEUT-ON «VOIR» DANS L ESPACE À N DIMENSIONS?

Corrigé du baccalauréat S Asie 21 juin 2010

Les fonctions de hachage, un domaine à la mode

Souad EL Bernoussi. Groupe d Analyse Numérique et Optimisation Rabat http ://

05/09/2015. M Ponctualité : CM TD TP & Projet Æ En cas d absence : récupérer!!! 3 05/09/2015

Exercices - Fonctions de plusieurs variables : corrigé. Pour commencer

DE L ALGORITHME AU PROGRAMME INTRO AU LANGAGE C 51

Chapitre 7. Récurrences

Extraction et reconstruction de bâtiments en 3D à partir de relevés lidar aéroportés

Exercices Alternatifs. Quelqu un aurait-il vu passer un polynôme?

Exercices Alternatifs. Quelqu un aurait-il vu passer un polynôme?

Cours de Mécanique du point matériel

Algorithmes récursifs

T.P. FLUENT. Cours Mécanique des Fluides. 24 février 2006 NAZIH MARZOUQY

INTRODUCTION À L ANALYSE FACTORIELLE DES CORRESPONDANCES

Muret Laurentien MC. Classique et Versatile

Soutenance de stage Laboratoire des Signaux et Systèmes

Les nouveautés de Femap 11.1

On ne peut pas entendre la forme d un tambour

Vision industrielle et télédétection - Détection d ellipses. Guillaume Martinez 17 décembre 2007

TABLE DES MATIÈRES CHAPITRE I. Les quanta s invitent

Programme détaillé. LES TABLEAUX DE BORD Formation en présentiel (21 h) accompagnée d un parcours e-learning Excel (5 h)

Gestion de scène pour les moteurs 3D

Transcription:

TP Déformation et animation de maillages CPE durée-6h Décembre 2009 Ce travail se scinde en deux parties. Partie 1: Introduction à la déformation de maillage(ie. expression analytique d une déformation exprimée pour chaque sommet). Objectifs: Se familiariser avec la structure de donnée classique d un maillage (nécessaire à son affichage efficace par OpenGL/DirectX). Manipuler les structures algorithmiques associées. Appliquer des déformations animées. Aborder les problématiques de collisions, lissages. Requis:1.1et1.2.(1.3estenextra) Partie 2: Introduction à l animation par squelette(skinning lisse). Objectifs: Comprendre l application des déformations rigides(notamment rotations). Mettre en place une déformation locale. Débutter la mise en place d une déformation lisse. Requis:2.1,2.2etdébutter2.3,voir2.4. 1 Manipulation de maillages, déformation de surfaces. 1.1 Préliminaires Executez le programme et vérifiez que vous comprenez les différentes commandes. Prêtez attention aux fonctions load model, evolve, draw extra du fichier main. 1. load model charge un fichier off en mémoire et prépare les structures de données globales avant la boucle d affichage. La fonction n est exécutée qu une unique fois au début. 2. evolve permet de modifier les structures au cours du temps. Elle contient un timer t evoluant entre 0 et 1 automatiquement. La fonction est automatiquement appelée à intervals fixes. 3. draw extra permet d afficher des éléments supplémentaires dans la scène. On utilisera par la suite la fonction draw sphere(centre,rayon) dans celle-ci. code[1]: Quel maillage chargez vous? Le nombre de sommet à traiter est-il correct vis à vis de votre matériel. Chargez d autres maillages et observez l influence sur les performances. 1

code[2]: Observez la classe mesh et completez la methode get vertex, set vertex, get connectivity et set connectivity pour aider à la manipulation des données. code[3]: En utilisant la fonction evolve, déplacez l un des sommets de votre maillage en fonction du temps. Déplacez plusieurs sommets à l aide de fonctions périodique classiques. 1.2 Déformation normale Dans cette partie, on s intéresse à la déformation de sommets le long de la normale à la surface. À partir d une surface X de coordonnées x(u, v), le but est de construire la surface Y, de coordonnées y(u, v) = x(u, v) + λ(t)n(u, v), où nestlanormaleunitaire à X,et λ un paramètre évoluantau cours dutemps. Exprimez y analytiquement en fonction de x,u et v. Peut-on qualifier cette déformation de linéaire? Rappellez la méthode d approximation de calcul des normales dans le cas discret. Afin de calculer ces normales en chaque sommet, il faut construire une structure de données permettant de stocker l indice des faces adjacentes à un sommet donné (1-star). Dans les cas de requêtes suivantes, quelle structure de données vous parrait la plus appropriée. Estimez les complexitées associées: 1. Connaitre le nombre de faces adjacentes à un sommet i. 2. Savoirsi lesommet iestadjacentàlaface j. 3. Savoirsi lesommet iet j sont adjacentsàune même face. 4. Acceder au 1-star d un maillage obtenu comme le polygone convexe d une distribution de 2 millions de sommets repartis suivant une loie Gaussienne. 5. Mettreàjourvotrestructure enajoutant au sommet iune adjacence aveclaface j. 6. Supprimer trois sommets consecutifs du maillage et mettre à jour la structure. code[4]: Implémentez cette structure de voisinage sous la forme d un vector<set<int> > code[5]: Utilisez cette structure pour calculer les normales en chaque sommet et appliquez la déformation demandée FIG. 1 Maillage avant-après déformation 2

1.2.1 Analyse Commentez quantitativement l évolution de la courbure(gauss) de la surface en fonction de λ. Quel est l image des surfaces suivante par cette transformation de paramètre λ : 1. Sphere de rayon r. 2. Tore derayons r et R. 3. Cube de coté a(attention plusieurs cas possibles). D après ces résultats, pensez vous pouvoir utiliser ce type de déformation pour effectuer un lissage de surface. 1.3 Lissage Laplacien Uniquementsivous êtestrèsenavance etquevous vous ennuyez. 1.3.1 Cas continu Le lissage Laplacien consiste a approximer l equation de diffusion sur les coordonnées d une surface f t = λ f. 1.3.2 Cas discret Soit V i le 1-voisinagedusommet i. 1 L opérateur est approximée en discret par card(v i ) discrète s écrit donc i, y i = x i + λ (x i x j ). card(v i ) j V i j V i (x i x j ).L equationdediffusion Peut-on qualifier cette deformation de linéaire? Réecrivez l équation en terme de combinaison convexe entre la position courante et le barycentre du 1-voisinage. 1.3.3 Application code: Implémentez cette déformation, faites dépendre λ du temps. Quels est son domaine de variation? Appliquez la déformation iterativement N fois. Que ce passe-il si λ dépasse sont domaine d application? est-ce prévisible? 3

2 Animation- Introduction à l animation par squelette. 2.1 Prise en main La classe MC matrix permet de créer une matrice de rotation (voir cours) définie par un axe u avecun angle θ par l appel //exemple rotation de pi/2 suivant l axe (x,y,z)=(1,0,0) MC_v3d u(1,0,0); double theta=m_pi/2.0; //matrice MC_matrix R=MC_matrix::rotation(u,theta); //application de la rotation sur x0 MC_v3d x0(5,3,2); MC_v3d x=r*x0; Cetterotationseracentréeàl origine.silecentrederotationestdonnéparunautrepoint c,lasyntaxe estlasuivante : MC_v3d c(5,4,-5.5); //centre de rotation MC_v3d x=mc_v3d(r*(x0-c))+c; code[6]: Appliquer une rotation globale sur tout vos sommets. Faites varier l angle, puis l axe, puis le centre de rotation en fonction du temps. 2.2 Animation locale code[7]: Faites désormais varier l angle de la rotation en fonction des coordonnees du maillage. code[8]: Imiter l animation de deformation de la partie avant du cochon vue en cours (vous devrez rendre votre deformation locale). code[9]: Selectionner les sommets situées a l interieur d une sphere que vous definirez pour ne considerer que les sommet de la tête d un animal de votre choix. Animez cette partie uniquement. rem. On pourra s aider de l appel draw sphere ex. void draw_extra() { draw_sphere(mc_v3d(1,1,0),0.5); } 2.3 Déformation lisse La deformation est rigide par morceaux. Les jonctions sont donc soumises aux autocollisions et élongations importantes. 4

F IG. 2 Cas rigide : Sphere d influence avec pose-original, pose extreme1, pose extreme 2 Afin de lisser la deformation, de finissez un champ scalaire f (x) continu a l interieur de votre sphere d influence (centre c et rayon r) tel que : f = 1 au centre de la sphere (x = c) f = 0 sur la sphe re (kx ck = r). On pourra penser a utiliser f (x) = 1 kx ck r β. code [10] : Imple mentez un champ de matrices variant continument entre votre rotation principale R et l identite e Id en utilisant une interpolation line aire de matrices a l aide de f. Votre deformation sera alors du type y = f (x)r + [1 f (x)]id (x x0 ) + x0, ou x0 est le centre de rotation associe a R. Les matrices de de formation sont-elle toujours des matrices de rotations? Commentez. F IG. 3 De formation lisse : Sphere d influence avec pose-original, pose extreme1, pose extreme 2 F IG. 4 Comparaison entre cas rigide et cas lisse sur la de formation du maillage. 5

2.4 Hierarchie Sivousavezfini: Lebutestded animer unmouvementdetête d unanimal enmême temps que soncorps. code[11]: Toutengardantl animationdelatêtedel animal,animezunesouspartiedesa têteàl aidedelamême méthode (ex.son museau). Onremarqueraque dans cecas, ladeformationse metsous laforme ( ) y = R 1 R 2 (x c 2 ) + c 2 c 1 + c 1. rem.on pourraitl exprimerplus simplementsion utilisedesmatrices 4 4. FIG. 5 Spheres d influences du mouvement complet. Le skinning de personnage est la généralisation de cette méthode pour un squelette d animation(donnant les centres des matrices de rotations) défini comme une suite hérarchique de positions. Deux idées de poursuite: 1. Construire un véritable squelette d animation hierarchique. 2. Automatiser le calcul des facteurs d influences (poids de skinning) par calcul de distances normalisées au squelette. 6