TP Synthèse d images: Simulation physique -Animation detissus- CPE



Documents pareils
Oscillations libres des systèmes à deux degrés de liberté

Introduction à l analyse numérique : exemple du cloud computing

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

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

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

Exemples de dynamique sur base modale

La fonction exponentielle

Rendu temps réel de mer et de nuages

ÉTUDE DE L EFFICACITÉ DE GÉOGRILLES POUR PRÉVENIR L EFFONDREMENT LOCAL D UNE CHAUSSÉE

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

Aide - mémoire gnuplot 4.0

10 leçon 2. Leçon n 2 : Contact entre deux solides. Frottement de glissement. Exemples. (PC ou 1 er CU)

Exercices types Algorithmique et simulation numérique Oral Mathématiques et algorithmique Banque PT

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

modélisation solide et dessin technique

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

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

Les algorithmes de base du graphisme

1 Mise en application

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

Formation à la C F D Computational Fluid Dynamics. Formation à la CFD, Ph Parnaudeau

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

TP2 ACTIVITE ITEC. Centre d intérêt : AUBE D UN MIRAGE 2000 COMPORTEMENT D UNE PIECE. Documents : Sujet Projet Dossier technique - Document réponse.

TP 7 : oscillateur de torsion

Concours EPITA 2009 Epreuve de Sciences Industrielles pour l ingénieur La suspension anti-plongée de la motocyclette BMW K1200S

Transmission d informations sur le réseau électrique

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

Introduction au maillage pour le calcul scientifique

Baccalauréat L spécialité, Métropole et Réunion, 19 juin 2009 Corrigé.

SUIVI CINETIQUE PAR SPECTROPHOTOMETRIE (CORRECTION)

Modélisation et Simulation

TSTI 2D CH X : Exemples de lois à densité 1

Intelligence Artificielle et Systèmes Multi-Agents. Badr Benmammar

TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile

Mesure de la dépense énergétique

TP : Gestion d une image au format PGM

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

Programmation linéaire

GRILLE D ANALYSE D UNE SEQUENCE D APPRENTISSAGE

Cours 1 : Qu est-ce que la programmation?

Continuité et dérivabilité d une fonction

Hémomixer Etude des sollicitations du corps d épreuve

Simulation numérique d un stockage de déchets nucléaires en site géologique profond

F411 - Courbes Paramétrées, Polaires

Figure 3.1- Lancement du Gambit

ANALYSE STATIQUE D UNE POUTRE SOUMISE A UNE CHARGE VARIABLE

Analyse statique d une pièce

Caractéristiques des ondes

BACCALAURÉAT GÉNÉRAL SÉRIE SCIENTIFIQUE

Sillage Météo. Notion de sillage

Licence Bio Informatique Année Premiers pas. Exercice 1 Hello World parce qu il faut bien commencer par quelque chose...

Guide pour l analyse de l existant technique. Partie 3

Chapitre 2 : Caractéristiques du mouvement d un solide

SUJET ZÉRO Epreuve d'informatique et modélisation de systèmes physiques

Problèmes sur le chapitre 5

DURÉE DU JOUR EN FONCTION DE LA DATE ET DE LA LATITUDE

GMIN 330 Nancy Rodriguez

Initiation à la Mécanique des Fluides. Mr. Zoubir HAMIDI

TD de Physique n o 1 : Mécanique du point

Aspects théoriques et algorithmiques du calcul réparti L agglomération

Fiche pour les étudiants «Comment répondre à une question à développement?»

Examen d informatique première session 2004

point On obtient ainsi le ou les points d inter- entre deux objets».

MOTO ELECTRIQUE. CPGE / Sciences Industrielles pour l Ingénieur TD06_08 Moto électrique DIAGRAMME DES INTER-ACTEURS UTILISATEUR ENVIRONNEMENT HUMAIN

3 Approximation de solutions d équations

DM n o 8 TS Physique 10 (satellites) + Chimie 12 (catalyse) Exercice 1 Lancement d un satellite météorologique

Calcul des pertes de pression et dimensionnement des conduits de ventilation

DYNAMIQUE DE FORMATION DES ÉTOILES

Initiation à la simulation numérique. Eléments d analyse numérique.

CHAPITRE V SYSTEMES DIFFERENTIELS LINEAIRES A COEFFICIENTS CONSTANTS DU PREMIER ORDRE. EQUATIONS DIFFERENTIELLES.

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

SOCLE COMMUN - La Compétence 3 Les principaux éléments de mathématiques et la culture scientifique et technologique

1 Problème 1 : L avion solaire autonome (durée 1h)

Brique BDL Gestion de Projet Logiciel

Algorithmes pour la planification de mouvements en robotique non-holonome

BTS Groupement A. Mathématiques Session Spécialités CIRA, IRIS, Systèmes électroniques, TPIL

LA PUISSANCE DES MOTEURS. Avez-vous déjà feuilleté le catalogue d un grand constructeur automobile?

T. Gasc 1,2,3, F. De Vuyst 1, R. Motte 3, M. Peybernes 4, R. Poncet 5

TP : Suivi d'une réaction par spectrophotométrie

TP Blender n 3 : Luxrender : Rendu d une scène d extérieur

MODELISATION NUMERIQUE D'UN FLUIDE A MASSE VOLUMIQUE VARIABLE APPLICATION A LA SIMULATION DES AVALANCHES ROCHEUSES EN GRANDE MASSE

Contribution à la conception par la simulation en électronique de puissance : application à l onduleur basse tension

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

1 Complément sur la projection du nuage des individus

MIS 102 Initiation à l Informatique

EXERCICE 2 : SUIVI CINETIQUE D UNE TRANSFORMATION PAR SPECTROPHOTOMETRIE (6 points)

Master IAD Module PS. Reconnaissance de la parole (suite) Alignement temporel et Programmation dynamique. Gaël RICHARD Février 2008

Chapitre 7 : Intégration sur un intervalle quelconque

Rapport de Projet Béatrice Frey et Cyril Crassin Printemps Projet Fourmis. Université de Technologie de Belfort-Montbéliard

Chapitre 0 Introduction à la cinématique

Fonctions de deux variables. Mai 2011

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

Cours 7 : Utilisation de modules sous python

Objectifs du cours Modélisation de la Turbulence M2 - EE

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

Exo7. Calculs de déterminants. Fiche corrigée par Arnaud Bodin. Exercice 1 Calculer les déterminants des matrices suivantes : Exercice 2.

Soit la fonction affine qui, pour représentant le nombre de mois écoulés, renvoie la somme économisée.

FLUIDES EN ÉCOULEMENT Méthodes et modèles

SDLV120 - Absorption d'une onde de compression dans un barreau élastique

Projet Optiperf : les ressources du calcul parallèle à destination des architectes navals

Transcription:

TP Synthèse d images: Simulation physique -Animation detissus- CPE durée-4h 2011-2012 FIGURE 1 Resultats possibles de la simulation de tissus. 1 Butdu TP Le but de ce TP est d implémenter le calcul et l integration temporelle des forces de ressorts modélisant une simulation de tissus (voir fig. 1). L integration se réalisera par la méthode de explicite d Euler. 2 Prise en main de l environnement Le chargement de lascène et son affichage sont donnés dans laclasse scene. La simulation et l affichage d un ressort 3D est effectuée dans cette classe (voir fig. 2). La méthode load model est appelée une unique fois au lancement du programme. Elle sert donc à donner les valeurs initiales de la simulation. La méthode draw scene est appelée en permanence pour un affichage en tepsréel. On y effectue l affichage, ainsi que la simulation (suivant une fréquence controlée). Question 1 Observez et comprennez l articulation globale de ce programme. 1

FIGURE 2 Scene de simulation et d affichage du ressort. 3 Simulation d un ressort 3.1 Ressort unidimentionnel On rappel qu en 1D, un ressort est modélisé par une force de rappel F s appliquant en une position p de coordonnée x tel que : F(t) = K(L 0 (x(t) x 0 )). (1) K est appelé la constante de raideur du ressort. L 0 est la longueur au repos du ressort. x 0 étant l autre extremitée du ressort. FIGURE 3 Modelisation d un ressort unidimentionnel. Question 2 Rappelez l équation du mouvement d un tel ressort dans le cas d une simulation en temps continu. 3.2 Ressort 3D Soit le ressort 3D liant les positions p 0, p 1. On supposera p 0 fixe, et on s interesse à p 1. La position de coordonnées p 1 = (x 1,y 1,z 1 ) est cette fois soumise à la force de rappel du ressort s écrivant 2

vectoriellement : F(t) = K (L 0 p 1 p 0 ) p 1 p 0 p 1 p 0. (2) 3.3 Simulation complète Pour une simulation complète, il est possible d ajouter la force de gravité g. On peut également considérer une force de frottement fluide (damping) tel que F d = µv, (3) où v est lavitesse dupoint p, etµest le coefficient d amortissement. L équation du mouvement est donc donné par m v t (t) = F(t)+F d(t)+g où mreprésente la masse de la position. p (t) = v(t), t (4) 3.4 Simulation numérique La version discrétisée de l équation précédente suivant la méthode dite d Euler explicite consiste à considérer l approximation m v(t+ t) v(t) = F(t)+F d (t)+g t p(t+ t) p(t) t = v(t), On obtient ainsi la relation réccursive implémentée dans le programme de démonstration en considérant une masse m = 1: { v(t+ t) = (1 µ t)v(t)+ t(f(t)+g) (6) p(t+ t) = p(t)+ tv(t) Question 3 Identifiez la partie d intégration numérique dans la classe scene. Prenez soin de différencier la partie initialisation, la partie de calcul des forces, la partie d intégration numérique de la simulation, et enfin, l affichage. Question 4 Observez le comportement de la simulation en modifiant les paramètres de : pas de simulation t, coefficient d amortissement, constante de raideur K. Que ce passe-il lorsque K est trop grand? t grand? Est-ce attendue de part l étude du comportement d un ressort à temps continu? Expliquez ce phénomène. (5) 3

3.5 Ressorts couplés FIGURE 4 Exemple de ressorts couplés. Question 5 Ajoutez un ressort supplémentaire, pour obtenir une simulation de ressorts couplés (voir fig. 4). 4 Simulation de tissu Dans le reste du sujet, nous allons généraliser le couplage de ressorts afin de modéliser une surface maillée. Chaque sommet dumaillage est alors relié àces voisins par des ressorts (voir fig. 5). Simuler un tel système permet alors de modéliser le comportements d objets déformables. En particulier, on va considérer le cas d une simulation de tissu. FIGURE 5 Exemple de surface déformable formée par un ensemble de ressorts (seulement quelques ressorts sont affichés). 4

4.1 Classe Spring Mesh Une nouvelle classe apparait : spring mesh. Il s agit de la classe de gestion des ressorts liées. Son fonctionnement est le suivant : constructeur: Construit une structure rectangulaire de N N sommets compute force : Calcule les forces de gravité + des ressorts et les stocke dans le conteneur forces. Cette methode est à compléter. apply force : Realise l intégration temporelle des forces ainsi que de la vitesse sur les positions. L intégration peut se réaliser suivant Euler explicite, et le pas de temps est passé en paramètre. Cette classe permet egalement de gérer 3 raideurs de ressorts différentes. 4.2 Fonctionnement général Un premier et unique passage dans la fonction load model est réalisé en début de programme. Ensuite la fonction draw scene est appelé en permanence au cours du déroulement. C est dans celle-ci que l on réalise la MAJ des forces et l integration temporelle. 4.3 Intégration temporelle L intégration suivant la méthode d Euler explicite suit l algorithme suivant for every vertices k speed[k] = (1-dt*damping) speed[k] + dt forces[k] for every vertices k vertices[k] += dt speed[k] On notera que dans cette implémentation les vecteurs sont concaténés suivant x, y, z. Voici quelques exemples d accès aux éléments : forces[3*k+1]; // coordonnée y de la force du sommet k speed[3*2+0]; // coordonnée x de la vitesse du second sommet vertices[3*i+2]; // coordonnée z du sommet i vertices[3*((kx-1)+n*(ky+1))+1]; // coordonnée y du sommet // (kx-1,ky+1) dans la grille 2D Question 6 Complétez la méthode apply force afin de réaliser l integration temporelle suivant la méthode d Euler explicite. Onnoteraquel onpeutforcerlavaleurdelavitesseoudecoordonnéespourcertainssommetsdans cette méthode. Ainsi si l on souhaite fixer entièrement le sommet k, il suffit de ne jamais mettre à jour ses coordonnées. De même, en projettant la vitesse suivant un axe/plan donné, on pourra contraindre artificiellement le mouvement des sommets suivant ce degré de liberté. Question 7 Fixez deux sommets des coins du tissu. 4.4 Mise en place des forces LaMAJrégulièredesforcesseréalisedanslaméthodecomputeforce.Pourl instantseuluneforcede gravité est appliquée. Le tissu doit donc tomber avec une accélération constante. Il convient de calculer les forces de rappels des ressorts et de mettre à jour le vecteur de forces pour chaque sommet. On désigne par s(ku,kv) le sommet s paramétré par (ku, kv). On pourra séparer lesressorts suivant 3types (voirfig. 6) : Ressorts structurels liant le sommet courant s(ku,kv) à s(ku+1,kv) s(ku,ky+1) s(ku-1,kv) s(ku,kv-1) 5

Ressorts de cisaillement (shear) liant le sommet courant s(ku,kv) à s(ku+1,kv+1) s(ku-1,kv+1) s(ku-1,kv-1) s(ku+1,kv-1) Ressorts de courbure (bending) liant le sommet courant s(ku,kv) à s(ku+2,kv) s(ku,kv+2) s(ku-2,kv) s(ku,kv-2) FIGURE 6 Les trois types de ressorts appliqué au point courant (cercle rouge). Ces 3 types de ressorts peuvent avoir des raideurs différentes en fonction du type de tissu simulé. On notera que l on pourra récupérer le vecteur de coordonnées du sommet s(ku,kv) par la syntaxe suivante : unsigned int u=3*(ku+n*kv); v3 x_current=v3(vertices[u+0],vertices[u+1],vertices[u+2]); Question 8 Complétez la méthode compute force de manière à calculer les forces des ressorts. 4.5 Etude complémentaire Question 9 Modélisez l action d un plan d équation z = 1 : Les sommets sont contraints à rester sur ce plan siz < 1 etlessommetsencontactspourront subireun frottementde type fluide. Question 10 Observez l influence de la subdivision du maillage sur la raideur. Augmentez la raideur et commentez son influence sur la stabilité du système. Que faut-il faire pour rendre le système plus stable? Commentez. 5 Implémentation sur GPU Le dernier programme implémente une déformation calculée sur GPU. La position, vitesse et les normales des sommets sont passées en tant que texture. Trois shaders différents viennent remplir leurs valeurs. 6

Question 11 Observez la structure du programme et différenciez la génération des textures liées aux positions, aux vitesses, aux normales et aux vraies coordonnées de textures. Quel est le type de shader utilisé? Quelle est la géométrie 3D d entrée envoyée à la carte graphique par le CPU? Question 12 Complétez le shader de mise à jour de la vitesse en ajoutant les forces de rappels des ressorts. Comparez la vitesse d execution par rapport à la version CPU précédente. La force exercée par le vent sur un tissu peut être modélisée par une force agissant dans la direction normale à la surface, et proportionnelle à l angle entre la normale et la direction du vent. Pour cela, on peut considérer une force F w telle que F w = K w < n,u w > n, où K w est une constante correspondant à l intensité du vent, n est la normale à la surface, et u w la direction du vent. Question 13 Ajoutez la force du vent dans votre simulation. 7