chapitre 7 animation basÉe sur la...

63
ANIMATION BASÉE SUR LA PHYSIQUE Chapitre 7 Olivier Vaillancourt, Olivier Godin Université de Sherbrooke

Upload: others

Post on 03-Apr-2020

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Chapitre 7 ANIMATION BASÉE SUR LA PHYSIQUEinfo.usherbrooke.ca/ogodin/enseignement/imn538/chapitres/... · 2014-03-21 · exercée lorsque l’objet soumis à la friction ne bouge

ANIMATION BASÉE SUR LA PHYSIQUE

Chapitre 7

Olivier Vaillancourt, Olivier Godin Université de Sherbrooke

Page 2: Chapitre 7 ANIMATION BASÉE SUR LA PHYSIQUEinfo.usherbrooke.ca/ogodin/enseignement/imn538/chapitres/... · 2014-03-21 · exercée lorsque l’objet soumis à la friction ne bouge

PLAN DU CHAPITRE

Ò  Mise en contexte

Ò  Bases de physique mécanique É  Lois de Newton É  Physique d’une particule É  Collision entre deux particules É  Corps rigides, accélération tangeantielle

Ò  Intégration numérique (Euler, Verlet) É  Simulation d’un système physique

Ò  Objets flexibles

É  Réseaux de masses-ressorts

Ò  Systèmes physiques numériques É  Collision vs temps É  Stabilité numérique

Ò  Applications logicielles 2

CAE , Simulateurs de vol

Valve Software, Half life 2

2D Boy, World of Goo

Page 3: Chapitre 7 ANIMATION BASÉE SUR LA PHYSIQUEinfo.usherbrooke.ca/ogodin/enseignement/imn538/chapitres/... · 2014-03-21 · exercée lorsque l’objet soumis à la friction ne bouge

MISE EN CONTEXTE

Ò  L’animation basée sur la physique utilise les lois de la physique mécanique classique afin de générer automatiquement des animations adaptées au contexte et à l’environnement dans lequel elles se produisent.

Ò  Le concept général est de reproduire en partie ou à part entière le comportement d’objets physiques soumis à des forces dans un environnement.

3

Page 4: Chapitre 7 ANIMATION BASÉE SUR LA PHYSIQUEinfo.usherbrooke.ca/ogodin/enseignement/imn538/chapitres/... · 2014-03-21 · exercée lorsque l’objet soumis à la friction ne bouge

MISE EN CONTEXTE

Ò  L’animation basée sur la physique sert principalement à:

É  Rehausser le réalisme dans les applications interactives.

É  Diversifier les animations, afin de les rendre le plus précisément adaptées à leur environnement et aussi variées que l’est l’environnement.

É  Animer rapidement et de façon réaliste des scènes qui seraient normalement trop complexes à animer manuellement. (Explosions, écroulements, etc.)

Ò  Pour produire une animation basée sur la physique, on doit d’abord simuler la physique, c’est à dire produire une simulation physique.

4

Page 5: Chapitre 7 ANIMATION BASÉE SUR LA PHYSIQUEinfo.usherbrooke.ca/ogodin/enseignement/imn538/chapitres/... · 2014-03-21 · exercée lorsque l’objet soumis à la friction ne bouge

MISE EN CONTEXTE

Ò  La simulation physique requiert de bonnes bases en physique mécanique.

Ò  Certains termes sont utilisés en physique mécanique. Voici la définition des termes que nous utiliserons

É  Newton (N) à Unité de mesure d’une force

É  Inertie à Résistance d’un objet à la modification de sa vitesse (vitesse linéaire ou vitesse de rotation).

É  Masse à Quantité d’inertie d’un corp. (À ne pas confondre avec son poids.)

5

Page 6: Chapitre 7 ANIMATION BASÉE SUR LA PHYSIQUEinfo.usherbrooke.ca/ogodin/enseignement/imn538/chapitres/... · 2014-03-21 · exercée lorsque l’objet soumis à la friction ne bouge

LOIS DE NEWTON

Ò  La physique mécanique classique repose sur trois principes fondamentaux, appellés les Lois du mouvement de Newton:

1.  En l’absence de toute force, un corps matériel, s’il est au repos, reste au repos; S’il est en mouvement, conserve un mouvement rectiligne et uniforme.

2.  L’application d’une force F au corps de masse m se traduit par la variation de sa vitesse (accélération).

3.  Entre deux corps, il ne peut y avoir d’action que mutuelle. Il y a toujours lieu ainsi d’apparier deux forces : même direction, égales en valeur absolues, et sens opposés.

Ò  De ces trois principes, on extrait plusieurs formules et concepts décrivant la physique mécanique.

6

Page 7: Chapitre 7 ANIMATION BASÉE SUR LA PHYSIQUEinfo.usherbrooke.ca/ogodin/enseignement/imn538/chapitres/... · 2014-03-21 · exercée lorsque l’objet soumis à la friction ne bouge

PHYSIQUE D’UNE PARTICULE

Ò  Une particule se définie dans l’espace comme étant à une position p, ayant une vitesse v (vecteur) et une masse m. Son accélération est quant à elle notée a (vecteur).

Ò  Une relation existe entre la variation de vitesse d’une particule et la force qui lui est appliquée:

Ò  Si plusieurs forces (n forces) sont appliquées à la particule, on a simplement:

7

(On dénote aussi parfois ces forces par des lettres minuscules et la somme des forces par un F majuscule.)

Page 8: Chapitre 7 ANIMATION BASÉE SUR LA PHYSIQUEinfo.usherbrooke.ca/ogodin/enseignement/imn538/chapitres/... · 2014-03-21 · exercée lorsque l’objet soumis à la friction ne bouge

PHYSIQUE D’UNE PARTICULE

Ò  À partir de l’équation précédente, on peut exprimer le comportement simple d’une particule dans son environnement. Par exemple:

8

Particule en chute libre, affectée par le vent (V) et la gravité (G) de façon constante

Le projectile est initialement affecté par une force (non représentée). Une fois l’explosion terminée, la seule force qui s’applique sur ce dernier est la gravité. Son mouvement de gauche à droite est causé par la vitesse accumulée (v) lors de l’explosion initiale.

Page 9: Chapitre 7 ANIMATION BASÉE SUR LA PHYSIQUEinfo.usherbrooke.ca/ogodin/enseignement/imn538/chapitres/... · 2014-03-21 · exercée lorsque l’objet soumis à la friction ne bouge

FORCES

Ò  Certaines forces ne sont pas explicitement définies dans un environnement physique mais restent néanmoins importantes pour son intégrité. Parmi ces dernières, on note surtout:

É  La gravité É  La force normale

É  Les forces de friction (ou de frottement)

9

Page 10: Chapitre 7 ANIMATION BASÉE SUR LA PHYSIQUEinfo.usherbrooke.ca/ogodin/enseignement/imn538/chapitres/... · 2014-03-21 · exercée lorsque l’objet soumis à la friction ne bouge

FORCES – GRAVITÉ ET FORCE NORMALE Ò  La gravité est une force sans contact qui s’applique de façon uniforme à un

environnement physique. Un environnement soumis à la gravité est donc toujours soumis à une force constante dans le temps et l’espace. (en physique classique)

Ò  La force normale est une force qui provient du contact entre deux objets. Elle est le résultat de la répulsion d’un corps lors du contact avec un autre corps. Par exemple, quand on est debout sur le plancher, ce dernier nous repousse vers le haut d’une force opposée à notre poids. La force normale se calcule comme étant la projection négative de la somme des forces sur le vecteur normal de la surface de contact.

10

Page 11: Chapitre 7 ANIMATION BASÉE SUR LA PHYSIQUEinfo.usherbrooke.ca/ogodin/enseignement/imn538/chapitres/... · 2014-03-21 · exercée lorsque l’objet soumis à la friction ne bouge

FORCES - FRICTION

Ò  La friction est une force résultant des multiples collisions entre la matière lorsqu’un corps est frotté sur un autre. La friction s’applique perpendiculairement à la force normale d’un corps, de direction opposée au mouvement de ce dernier. On défini l’amplitude de cette force telle que:

(on utilise l’inégalité puisque la force de frottement ne peut déplacer un objet, seulement l’empêcher de se déplacer)

11

Page 12: Chapitre 7 ANIMATION BASÉE SUR LA PHYSIQUEinfo.usherbrooke.ca/ogodin/enseignement/imn538/chapitres/... · 2014-03-21 · exercée lorsque l’objet soumis à la friction ne bouge

FORCES - FRICTION

Ò  L’équation précédente correspond à l’amplitude de la force de frottement statique.

où s est le coefficient de frottement (le coefficient de frottement est mesuré empiriquement), fs l’amplitude de la force de frottement statique et fN l’amplitude de la force normale.

Ò  La force de frottement statique est la force de frottement

exercée lorsque l’objet soumis à la friction ne bouge pas.

12

Page 13: Chapitre 7 ANIMATION BASÉE SUR LA PHYSIQUEinfo.usherbrooke.ca/ogodin/enseignement/imn538/chapitres/... · 2014-03-21 · exercée lorsque l’objet soumis à la friction ne bouge

FORCES - FRICTION

Ò  Dès que la force exercée pour faire glisser l’objet dépasse fs, l’objet entre en mouvement. La force et le coefficient de friction changent et on parle à ce moment de force de friction cinétique, et de coefficient de friction cinétique. Soit :

13

Page 14: Chapitre 7 ANIMATION BASÉE SUR LA PHYSIQUEinfo.usherbrooke.ca/ogodin/enseignement/imn538/chapitres/... · 2014-03-21 · exercée lorsque l’objet soumis à la friction ne bouge

COLLISION ENTRE DEUX PARTICULES

Ò  Lorsque deux particules se rencontrent. Il y a collision. Il existe deux types de collisions:

É  Collision élastique (le mouvement est parfaitement transmis entre les corps.)

É  Collision inélastique (le mouvement est partiellement ou totalement absorbé entre les corps.)

14

Page 15: Chapitre 7 ANIMATION BASÉE SUR LA PHYSIQUEinfo.usherbrooke.ca/ogodin/enseignement/imn538/chapitres/... · 2014-03-21 · exercée lorsque l’objet soumis à la friction ne bouge

COLLISION ENTRE DEUX PARTICULES

Ò  Lors d’une collision élastique en 1D entre deux particules de vitesse v1 et v2 et de masses respectives m1 et m2, on peut dresser le système d’équations suivant:

où “prime” (‘) indique la vitesse après la collision. Ò  On peut donc trouver les vitesses finales en résolvant le système tel que:

15

Page 16: Chapitre 7 ANIMATION BASÉE SUR LA PHYSIQUEinfo.usherbrooke.ca/ogodin/enseignement/imn538/chapitres/... · 2014-03-21 · exercée lorsque l’objet soumis à la friction ne bouge

COLLISION ENTRE DEUX PARTICULES

Ò  Dans le cas d’une collision à plusieurs dimensions, il faut diviser le problème en plusieurs problèmes de collision 1D. Par exemple, en 2 dimensions:

16

Page 17: Chapitre 7 ANIMATION BASÉE SUR LA PHYSIQUEinfo.usherbrooke.ca/ogodin/enseignement/imn538/chapitres/... · 2014-03-21 · exercée lorsque l’objet soumis à la friction ne bouge

COLLISION ENTRE DEUX PARTICULES

Ò  On trace un axe tangeant à la collision (axe a) puis un axe perpendiculaire à la collision (axe b)

Ò  On projette ensuite v1 sur a et b puis v2 sur a et b, afin d’obtenir 2 problèmes 1D sur 2 axes.

Ò  On résoud les problèmes 1D en utilisant uniquement l’amplitude des vecteurs obtenus, en utilisant les formules de collision.

Ò  Une fois les vitesse obtenues, on les remultiplies par les vecteur projetés normalisés.

Ò  On combine ensuite les vecteurs correspondants aux mêmes vitesses initiales (addition) puis on a nos vecteurs de vitesse post-collision.

17

Page 18: Chapitre 7 ANIMATION BASÉE SUR LA PHYSIQUEinfo.usherbrooke.ca/ogodin/enseignement/imn538/chapitres/... · 2014-03-21 · exercée lorsque l’objet soumis à la friction ne bouge

COLLISION ENTRE DEUX PARTICULES Ò  Dans le cas d’une collision inélastique, les systèmes d’équations restent

sensiblement les mêmes. On y introduit cependant un coefficient de restitution (e).

Ò  Le coefficient de restitution correspond au ratio de vitesse avant et après l’impact entre les deux masses.

Ò  Si le coefficient de restitution est de 1, la collision est parfaitement élastique. Si le coefficient de restitution est de 0, les 2 objets restent collés ensemble.

Ò  Les coefficients de restitution pour des matériaux connus sont mesurés empiriquement et peuvent être trouvés dans des recueils de physique mécanique.

18

Page 19: Chapitre 7 ANIMATION BASÉE SUR LA PHYSIQUEinfo.usherbrooke.ca/ogodin/enseignement/imn538/chapitres/... · 2014-03-21 · exercée lorsque l’objet soumis à la friction ne bouge

CORPS RIGIDES

Ò  Jusqu’à présent, nous avons considéré que la masse des corps étudiés était répartie en un seul point.

Ò  En réalité, un corps physique possède habituellement un certain volume, sa masse étant répartie de façon plus ou moins uniforme dans celui-ci.

Ò  Dans cette section, nous étudierons les corps physiques indéformables possédant un certain volume. On appelle ces derniers corps rigides.

19

Page 20: Chapitre 7 ANIMATION BASÉE SUR LA PHYSIQUEinfo.usherbrooke.ca/ogodin/enseignement/imn538/chapitres/... · 2014-03-21 · exercée lorsque l’objet soumis à la friction ne bouge

CORPS RIGIDE

Ò  Un corps rigide possède une masse répartie dans l’espace. Dans ce corps, il existe un point en particulier où la masse est répartie également dans n’importe quelle direction. Ce point est appellé le centre de masse ou barycentre.

Ò  Dans un système ou un corps composé de plusieurs particules discrètes, le centre de masse est calculé tel que:

Ò  Pour un corps ou un système continu, on calcule le centre de masse tel que:

20

R à centre de masse mi à masse de la ie particule (masse discrète) ri à vecteur de la position de la ie partie.

ρ(r) à masse au point r r à position dans le corps dV à Intégration sur le volume complet

Page 21: Chapitre 7 ANIMATION BASÉE SUR LA PHYSIQUEinfo.usherbrooke.ca/ogodin/enseignement/imn538/chapitres/... · 2014-03-21 · exercée lorsque l’objet soumis à la friction ne bouge

CORPS RIGIDE

Ò  Le fait de considérer la répartition de la masse dans un corps rigide ajoute de nouveaux paramètres dont il faut tenir compte, soit l’orientation et le mouvement rotatif de l’objet soumis à la physique.

Ò  En effet, l’application d’une force qui n’est pas axée directement sur le centre de masse génèrera toujours une accélération au niveau de la rotation d’un corps solide. On appelle cette accélération l’accélération angulaire.

21

Page 22: Chapitre 7 ANIMATION BASÉE SUR LA PHYSIQUEinfo.usherbrooke.ca/ogodin/enseignement/imn538/chapitres/... · 2014-03-21 · exercée lorsque l’objet soumis à la friction ne bouge

CORPS RIGIDE

Ò  Lors de l’application d’une force désaxée avec le centre de masse, cette force génère non seulement un déplacement mais aussi une rotation, elle se divise donc en deux effets.

Ò  La force générant le déplacement est appellée force linéaire.

Ò  La force générant la rotation est quant à elle appellée couple. (mieux connue sous le terme anglophone “Torque”).

22

Page 23: Chapitre 7 ANIMATION BASÉE SUR LA PHYSIQUEinfo.usherbrooke.ca/ogodin/enseignement/imn538/chapitres/... · 2014-03-21 · exercée lorsque l’objet soumis à la friction ne bouge

CORPS RIGIDE

Ò  Comme nous l’avons vu précédemment, la force totale appliquée à un corps est la somme des forces individuelles qu’on lui applique:

Ò  Le couple résultant d’une force se calcule quant à lui:

où q est la position du point d’application de la force et x la position du centre de masse

Ò  Le couple total étant:

23

Page 24: Chapitre 7 ANIMATION BASÉE SUR LA PHYSIQUEinfo.usherbrooke.ca/ogodin/enseignement/imn538/chapitres/... · 2014-03-21 · exercée lorsque l’objet soumis à la friction ne bouge

CORPS RIGIDE

Ò  Comme pour une force linéaire normale, le couple génère une accélération. Cette accélération est appellée l’accélération angulaire, en radians par seconde carrée. (Soit la variation de la vitesse de rotation)

Ò  Un objet en mouvement linéaire (il se déplace dans l’espace), possède une certaine vitesse (v).

Ò  Un objet qui tourne sur lui-même, résultat de son accélération angulaire, possède quant à lui une vitesse angulaire, notée ω (omega).

24

Page 25: Chapitre 7 ANIMATION BASÉE SUR LA PHYSIQUEinfo.usherbrooke.ca/ogodin/enseignement/imn538/chapitres/... · 2014-03-21 · exercée lorsque l’objet soumis à la friction ne bouge

CORPS RIGIDE

Ò  Les corps physiques ayant maintenant une masse répartie dans un volume, des forces linéaires et un couple, il devient plus précis d’exprimer leur mouvement en terme de quantité de mouvement. (Momentum en anglais)

Ò  La quantité de mouvement est en réalité une quantité physique représentant la vitesse en fonction de la masse. On a donc une quantité de mouvement linéaire, pour la vitesse linéaire, et une quantité de mouvement angulaire, pour la vitesse angulaire.

25

Page 26: Chapitre 7 ANIMATION BASÉE SUR LA PHYSIQUEinfo.usherbrooke.ca/ogodin/enseignement/imn538/chapitres/... · 2014-03-21 · exercée lorsque l’objet soumis à la friction ne bouge

CORPS RIGIDE

Ò  Pour calculer la quantité de mouvement linéaire, on utilise la formule:

Ò  Dans le cas de la quantité de mouvement angulaire, le calcul est un peu plus complexe, mais utilise néanmoins des valeurs que nous connaissons déjà, soit:

Où R est la matrice de rotation 3x3 représentant l’orientation du corps.

26

Page 27: Chapitre 7 ANIMATION BASÉE SUR LA PHYSIQUEinfo.usherbrooke.ca/ogodin/enseignement/imn538/chapitres/... · 2014-03-21 · exercée lorsque l’objet soumis à la friction ne bouge

CORPS RIGIDE

Ò  Conceptuellement, la quantité de mouvement angulaire est reliée à la vitesse angulaire de la même façon que la quantité de mouvement linéaire est reliée à la vitesse linéaire.

Ò  La différence dans le cas de la vitesse angulaire est que cette valeur dépend de la répartition du poids au sein du corps.

27

Page 28: Chapitre 7 ANIMATION BASÉE SUR LA PHYSIQUEinfo.usherbrooke.ca/ogodin/enseignement/imn538/chapitres/... · 2014-03-21 · exercée lorsque l’objet soumis à la friction ne bouge

CORPS RIGIDE

Ò  Pour quantifier et représenter cette répartition, on utilise un tenseur d’inertie ou tenseur inertiel.

Ò  L’utilisation de tenseurs est propre à l’algèbre multilinéaire ou la géométrie différentielle, ce qui sort de l’objectif du cours, nous ne verrons donc pas en détail les tenseurs.

Ò  Dans le cadre du cours, il est cependant important de retenir qu’un tenseur permet de décrire la répartition du poids. É  (Plus précisément, le tenseur d’inertie permet de déterminer la

résistance d’un corps à l’accélération angulaire en fonction de différents axes de rotation.)

28

Page 29: Chapitre 7 ANIMATION BASÉE SUR LA PHYSIQUEinfo.usherbrooke.ca/ogodin/enseignement/imn538/chapitres/... · 2014-03-21 · exercée lorsque l’objet soumis à la friction ne bouge

CORPS RIGIDE

Ò  Un tenseur inertiel est noté I et peut être stocké dans une matrice 3x3.

Ò  Un tenseur inertiel est bien sûr orienté de la même façon que le corps qu’il décrit. Si le corp a une orientation décrite par la matrice de rotation R, le tenseur inertiel doit être transformé par cette matrice:

29

Page 30: Chapitre 7 ANIMATION BASÉE SUR LA PHYSIQUEinfo.usherbrooke.ca/ogodin/enseignement/imn538/chapitres/... · 2014-03-21 · exercée lorsque l’objet soumis à la friction ne bouge

CORPS RIGIDE

Ò  Notons que le produit du tenseur inertiel et de la vitesse angulaire donne la quantité de mouvement angulaire.

Ò  Notons finalement que la définition du tenseur inertiel de solides et

de primitives connues (sphères, cylindres, etc.) peut être facilement trouvée dans des guides de physique mécanique ou sur internet.

Ò  À partir des équations et des concepts vus précédemment, nous avons presque tous les éléments requis pour procéder à une simulation physique de base.

Ò  Il ne reste qu’à considérer le facteur “temps” dans notre simulation.

30

Page 31: Chapitre 7 ANIMATION BASÉE SUR LA PHYSIQUEinfo.usherbrooke.ca/ogodin/enseignement/imn538/chapitres/... · 2014-03-21 · exercée lorsque l’objet soumis à la friction ne bouge

31

INTÉGRATION NUMÉRIQUE

Page 32: Chapitre 7 ANIMATION BASÉE SUR LA PHYSIQUEinfo.usherbrooke.ca/ogodin/enseignement/imn538/chapitres/... · 2014-03-21 · exercée lorsque l’objet soumis à la friction ne bouge

SIMULATION DANS LE TEMPS

Ò  Pour procéder à la simulation dans le temps, on itère dans notre système physique sur de courts intervalles de temps.

Ò  Par exemple, si notre position au temps t est (1,1,1), que notre vitesse est (0,100,0) et qu’entre chaque itération il s’écoule un délais de 0.01 sec, la position à l’itération suivante serait :

32

Page 33: Chapitre 7 ANIMATION BASÉE SUR LA PHYSIQUEinfo.usherbrooke.ca/ogodin/enseignement/imn538/chapitres/... · 2014-03-21 · exercée lorsque l’objet soumis à la friction ne bouge

SIMULATION DANS LE TEMPS

Ò  Avec la formule précédente, on utilise la vitesse afin de déterminer la position dans l’espace après une itération:

Ò  On réalise rapidement qu’on procède ici en réalité à une

intégration de la vitesse:

Ò  La dérivée de la position (vitesse) servant ici à faire une approximation de la nouvelle position de l’objet après un délais de temps.

33

Page 34: Chapitre 7 ANIMATION BASÉE SUR LA PHYSIQUEinfo.usherbrooke.ca/ogodin/enseignement/imn538/chapitres/... · 2014-03-21 · exercée lorsque l’objet soumis à la friction ne bouge

INTÉGRATION NUMÉRIQUE

Ò  Cette méthode d’intégration est appellée la méthode d’intégration d’Euler.

Ò  Formellement, on note l’intégration d’euler: (où n est l’itération courante et h la grandeur de l’intervalle d’intégration.)

Ò  Schématiquement :

34

Page 35: Chapitre 7 ANIMATION BASÉE SUR LA PHYSIQUEinfo.usherbrooke.ca/ogodin/enseignement/imn538/chapitres/... · 2014-03-21 · exercée lorsque l’objet soumis à la friction ne bouge

INTÉGRATION NUMÉRIQUE

Ò  La méthode d’intégration d’Euler est dite non-symmétrique, puisqu’elle utilise des informations de l’itération courante pour trouver l’information de l’itération suivante.

Ò  La méthode est intuitive mais relativement instable et imprécise (à cause de l’approximation linéaire de la courbe réelle.)

Ò  Elle permet néanmoins de calculer rapidement l’intégrale d’une quantité. (Comme lorsqu’on utilisait la vitesse pour mettre à jour la position.)

35

Page 36: Chapitre 7 ANIMATION BASÉE SUR LA PHYSIQUEinfo.usherbrooke.ca/ogodin/enseignement/imn538/chapitres/... · 2014-03-21 · exercée lorsque l’objet soumis à la friction ne bouge

INTÉGRATION NUMÉRIQUE

Ò  Il existe d’autres méthodes d’intégration similaires, beaucoup plus stables, qui sont malheureusement difficiles à mettre en oeuvre dans le cadre d’un système non-prédictible (comme un système physique):

É  Méthode de Runge-Kutta (manuel, p.558)

É  Méthode d’Euler implicite (manuel, p.558)

36

Page 37: Chapitre 7 ANIMATION BASÉE SUR LA PHYSIQUEinfo.usherbrooke.ca/ogodin/enseignement/imn538/chapitres/... · 2014-03-21 · exercée lorsque l’objet soumis à la friction ne bouge

INTÉGRATION NUMÉRIQUE

Ò  Dans le cadre d’un système physique, on doit souvent produire la vitesse à partir de l’accélération, puis la position à partir de la vitesse. (accélération à vitesse à position)

Ò  Pour éviter l’étape intermédiaire impliquant la vitesse, certaines méthodes d’intégration ont été développées expressément pour le cas de la mise à jour d’une position.

Ò  Méthode la plus populaire: Méthode de Verlet

37

Page 38: Chapitre 7 ANIMATION BASÉE SUR LA PHYSIQUEinfo.usherbrooke.ca/ogodin/enseignement/imn538/chapitres/... · 2014-03-21 · exercée lorsque l’objet soumis à la friction ne bouge

38

SIMULATION DANS LE TEMPS

Page 39: Chapitre 7 ANIMATION BASÉE SUR LA PHYSIQUEinfo.usherbrooke.ca/ogodin/enseignement/imn538/chapitres/... · 2014-03-21 · exercée lorsque l’objet soumis à la friction ne bouge

SIMULATION PHYSIQUE SIMPLE

Ò  Nous avons maintenant la totalité des notions requises pour faire une simulation physique de corps rigides dans le temps.

É  Forces et vitesse linéaires É  Couple et vitesse angulaire

É  Gestion des valeurs dans le temps

39

Page 40: Chapitre 7 ANIMATION BASÉE SUR LA PHYSIQUEinfo.usherbrooke.ca/ogodin/enseignement/imn538/chapitres/... · 2014-03-21 · exercée lorsque l’objet soumis à la friction ne bouge

SIMULATION PHYSIQUE SIMPLE

Ò  Dans le cadre de notre simulation, nous avons besoin de diverses informations pour simuler le mouvement physique de notre corps rigide:

É  Constantes: Masse totale du corps Tenseur inertiel

É  Variables: Position dans l’espace du centre de masse Vitesse linéaire du centre de masse Orientation Qté de mouvement angulaire

É  Quantités auxiliaires : Tenseur inertiel transformé Vitesse angulaire

40

Page 41: Chapitre 7 ANIMATION BASÉE SUR LA PHYSIQUEinfo.usherbrooke.ca/ogodin/enseignement/imn538/chapitres/... · 2014-03-21 · exercée lorsque l’objet soumis à la friction ne bouge

SIMULATION PHYSIQUE SIMPLE

Ò  Au début de l’exécution de notre système

//On détermine la valeur des constantes I = [ ]matrice3x3 M = masse du corps //On détermine les valeurs initiales des variables du système Pcm = []vecteur3d Vcm = []vecteur3d R = []matrice3x3 L = []vecteur3d //On calcule les valeurs auxiliaires initiales IR0 = R0IR0T

w0 = I-1R0Lcm0

41

Page 42: Chapitre 7 ANIMATION BASÉE SUR LA PHYSIQUEinfo.usherbrooke.ca/ogodin/enseignement/imn538/chapitres/... · 2014-03-21 · exercée lorsque l’objet soumis à la friction ne bouge

SIMULATION PHYSIQUE SIMPLE

Ò  On procède ensuite à la simulation : //Simulation Pour chaque itération Calculer les forces individuelles et les points d’application Calculer les forces totales (ri est le vecteur entre le point d’application de la force et le centre de masse.)

//Intégration numérique: Pcm(t+dt) = Pcm(t) + dt*vcm Vcm(t+dt) = Vcm(t) + dt*Ft/M) R(t+dt) = R(t) + dt*antisymétrique(w(t))*R(t) L(t+dt) = L(t) + dt* τ(t)

Orthogonalisation(R(t+dt)) //(voir chapitre 2) [...]

42

Page 43: Chapitre 7 ANIMATION BASÉE SUR LA PHYSIQUEinfo.usherbrooke.ca/ogodin/enseignement/imn538/chapitres/... · 2014-03-21 · exercée lorsque l’objet soumis à la friction ne bouge

SIMULATION PHYSIQUE SIMPLE

[...] //Calcul des quantités auxiliaires IR(t+td) = R(t)IR(t)T

w(t+td) = I-1R(t)Lcm(t)

//On recommence l’itération

43

Page 44: Chapitre 7 ANIMATION BASÉE SUR LA PHYSIQUEinfo.usherbrooke.ca/ogodin/enseignement/imn538/chapitres/... · 2014-03-21 · exercée lorsque l’objet soumis à la friction ne bouge

SIMULATION PHYSIQUE SIMPLE

Ò  On remarque à un certain moment dans la simulation l’utilisation d’une matrice antisymétrique générée à partir du vecteur ω.

Ò  La matrice antisymétrique est créée à partir d’un vecteur telle que:

Ò  Multiplier un vecteur par une matrice antisymétrique revient à faire un produit vectoriel:

44

Page 45: Chapitre 7 ANIMATION BASÉE SUR LA PHYSIQUEinfo.usherbrooke.ca/ogodin/enseignement/imn538/chapitres/... · 2014-03-21 · exercée lorsque l’objet soumis à la friction ne bouge

Objets flexibles

45

RÉSEAUX DE MASSES-RESSORTS (MANUEL 7.2)

Page 46: Chapitre 7 ANIMATION BASÉE SUR LA PHYSIQUEinfo.usherbrooke.ca/ogodin/enseignement/imn538/chapitres/... · 2014-03-21 · exercée lorsque l’objet soumis à la friction ne bouge

OBJETS FLEXIBLES

Ò  À la différence des corps rigides, les objets (ou corps) flexibles voient leur forme affectée par l’environnement.

Ò  Il existe différentes façons de modéliser un corps flexible. La plupart des méthodes consistent à séparer le corps flexibles en plusieurs parties rigides reliées par des liens flexibles.

Ò  Dans le cadre du cours, nous verrons une de ces méthodes, soit les réseaux de masses-ressorts.

46

Chronic Logic, Gish

RealMatter, Cornell University

Jello Physics

Page 47: Chapitre 7 ANIMATION BASÉE SUR LA PHYSIQUEinfo.usherbrooke.ca/ogodin/enseignement/imn538/chapitres/... · 2014-03-21 · exercée lorsque l’objet soumis à la friction ne bouge

RÉSEAUX DE MASSES-RESSORTS

Ò  Un réseau de masses-ressorts est en réalité constitué de plusieurs particules ayant une masse (ces particules seront simplement appellées “masses”).

Ò  Chaque masse est régie par les lois de la physique, tel que vu précédemment dans le chapitre. (F = ma)

Ò  On relie chacune des masses par des ressorts pour former un réseau.

Ò  Lorsqu’une masse est déplacée, elle affecte les masses qui lui sont directement ou indirectement connectées à travers la physique qui gère les ressorts.

47

Page 48: Chapitre 7 ANIMATION BASÉE SUR LA PHYSIQUEinfo.usherbrooke.ca/ogodin/enseignement/imn538/chapitres/... · 2014-03-21 · exercée lorsque l’objet soumis à la friction ne bouge

RÉSEAUX DE MASSE-RESSORTS

Ò  Le plus simple réseau de masses-ressorts qu’on peut construire est simplement un réseau contenant 2 masses (i et j) et un ressort les reliants.

Ò  Lorsqu’on applique une force à une des masses, le ressort est compressé et compensera en appliquant une force opposée à l’autre masse pour se décompresser.

48

Page 49: Chapitre 7 ANIMATION BASÉE SUR LA PHYSIQUEinfo.usherbrooke.ca/ogodin/enseignement/imn538/chapitres/... · 2014-03-21 · exercée lorsque l’objet soumis à la friction ne bouge

RÉSEAUX DE MASSES-RESSORT

Ò  La force appliquée à la masse i par le ressort reliant les masses i et j se définie par la formule:

Ò  où

É  ks est la constante de rigidité du ressort (la constante est négative normalement)

É  Lri,j est la longueur du ressort lorsqu’il est au repos. É  Lci,j(t) est la longueur du ressort au moment où on calcule la force. É  vi,j est le vecteur normalisé allant de i vers j.

Ò  Pour trouver la force appliquée à la masse j à partir du même ressort, simplement faire:

49

Page 50: Chapitre 7 ANIMATION BASÉE SUR LA PHYSIQUEinfo.usherbrooke.ca/ogodin/enseignement/imn538/chapitres/... · 2014-03-21 · exercée lorsque l’objet soumis à la friction ne bouge

RÉSEAUX DE MASSES-RESSORT

Ò  D’un fonctionnement analogue à celui d’un ressort, on intègre parfois des amortisseurs à un tel système. On schématise ce dernier ainsi:

Ò  Un amortisseur applique une force inverse à la vitesse appliquée pour le compresser. La force appliquée sur i par un amortisseur reliant des masses i et j est donnée tel que:

Ò  Où kd est la constante d’amortissement, Vmj et Vmi les vecteurs de vitesse au temps t des masses j et i respectivement.

50

Page 51: Chapitre 7 ANIMATION BASÉE SUR LA PHYSIQUEinfo.usherbrooke.ca/ogodin/enseignement/imn538/chapitres/... · 2014-03-21 · exercée lorsque l’objet soumis à la friction ne bouge

RÉSEAUX DE MASSE-RESSORT

Ò  Le processus pour simuler un réseau de masses-ressorts est semblable à celui utilisé pour la simulation physique de base.

Pour chaque masse, à chaque itération

Calculer le total des forces appliquées sur la masse. (ressorts, gravité, etc.)

Calculer la nouvelle position de la masse, en fonction de la vitesse.

Calculer la vitesse, en fonction de l’accélération (issue des forces avec F = ma)

51

Page 52: Chapitre 7 ANIMATION BASÉE SUR LA PHYSIQUEinfo.usherbrooke.ca/ogodin/enseignement/imn538/chapitres/... · 2014-03-21 · exercée lorsque l’objet soumis à la friction ne bouge

RÉSEAUX DE MASSE-RESSORT

Ò  Si on résume:

1.  Calcul des forces (gravité, ressorts, etc.) 2.  Calcul de la nouvelle position 3.  Calcul de la nouvelle vitesse

Ò  En faisant les calculs dans cet ordre, on effectue une intégration d’Euler. Ceci étant dit, la vitesse calculée à une itération est seulement utilisée l’itération d’après, ce qui crée une imprécision puisque du temps s’écoule entre 2 itérations et la vitesse a le temps de changer.

Ò  Pour remédier à ce problème, on inverse l’étape 2 et l’étape 3. On utilise donc la vitesse à la même itération qu’elle est calculée.

Ò  Dans un tel cas, l’intégration n’est plus une intégration d’euler, mais bien une intégration d’euler semi-implicite, plus stable et précise.

52

Page 53: Chapitre 7 ANIMATION BASÉE SUR LA PHYSIQUEinfo.usherbrooke.ca/ogodin/enseignement/imn538/chapitres/... · 2014-03-21 · exercée lorsque l’objet soumis à la friction ne bouge

RÉSEAUX DE MASSE-RESSORT

Ò  En action, un réseau de masse-ressort permet de simuler divers types de matériaux, en fonction des constantes données au ressort.

Ò  Des constantes élevées permettront de simuler des structures plus solides. (Pour simuler des structures comme des ponts par exemple.)

Ò  Des constantes très basses permettront de simuler des systèmes plus mous. (En utilisant une surface plane constituée de ressorts par exemple il est possible de simuler un tissu.)

53

Page 54: Chapitre 7 ANIMATION BASÉE SUR LA PHYSIQUEinfo.usherbrooke.ca/ogodin/enseignement/imn538/chapitres/... · 2014-03-21 · exercée lorsque l’objet soumis à la friction ne bouge

RÉSEAUX DE MASSE-RESSORT

Ò  Dans tous les cas, un réseau de masse-ressort aura une stabilité équivalente à sa structure. Il faut donc prévoir des structures sufisamment stable pour éviter un affaissement du réseau.

Ò  Pour garantir un système plus stable, il est préférable de favoriser les formes triangulaires. (Comme pour la construction de structures en génie civile.)

54

Page 55: Chapitre 7 ANIMATION BASÉE SUR LA PHYSIQUEinfo.usherbrooke.ca/ogodin/enseignement/imn538/chapitres/... · 2014-03-21 · exercée lorsque l’objet soumis à la friction ne bouge

Annexe 1

55

SYSTÈMES PHYSIQUES NUMÉRIQUES

Page 56: Chapitre 7 ANIMATION BASÉE SUR LA PHYSIQUEinfo.usherbrooke.ca/ogodin/enseignement/imn538/chapitres/... · 2014-03-21 · exercée lorsque l’objet soumis à la friction ne bouge

DÉTECTION DE COLLISIONS DANS LE TEMPS

Ò  La détection de collisions dans un système physique numérique, lorsque la scène est statique, est relativement simple car le mouvement n’est pas tenu en compte.

Ò  Par exemple, si on a deux sphères :

Ò  On détecte la collision en vérifiant si la distance entre le centre des deux sphères est inférieure à la somme de leur rayons:

56

Page 57: Chapitre 7 ANIMATION BASÉE SUR LA PHYSIQUEinfo.usherbrooke.ca/ogodin/enseignement/imn538/chapitres/... · 2014-03-21 · exercée lorsque l’objet soumis à la friction ne bouge

DÉTECTION DE COLLISIONS DANS LE TEMPS

Ò  Or, si la sphère est en mouvement, rien ne garanti qu’au moment d’évaluer la collision, la sphère n’aura pas déjà traversé l’autre sphère dans son déplacement.

Ò  Dans un système d’animation par la physique, il faut donc prévoir de tels cas et organiser la détection de collisions en conséquence.

Ò  À titre indicatif, on utiliserait ici une “swept-sphere”, soit une sphère définie sur une certaine distance.

Ò  Pour plus d’information sur la détection de collision, voir les références à la fin du chapitre.

57

Page 58: Chapitre 7 ANIMATION BASÉE SUR LA PHYSIQUEinfo.usherbrooke.ca/ogodin/enseignement/imn538/chapitres/... · 2014-03-21 · exercée lorsque l’objet soumis à la friction ne bouge

EXPLOSION NUMÉRIQUE

Ò  Une explosion numérique survient lorsqu’un système effectuant une simulation produit des valeurs extrêmement élevées dues à une imprécision au niveaux des nombres ou des méthodes utilisées pour le calcul numérique.

Ò  Par exemple, une balle rebondissant dans un volume fermé. La quantité de mouvement de la balle devrait toujours rester identique. Si, pour une raison quelconque, la balle accumule de la vitesse chaque fois qu’elle rebondie, elle finira par aller à une vitesse extrêmement élevée, ce qui peut rendre la détection de collision imprécise et faire sortir la balle du volume.

58

Page 59: Chapitre 7 ANIMATION BASÉE SUR LA PHYSIQUEinfo.usherbrooke.ca/ogodin/enseignement/imn538/chapitres/... · 2014-03-21 · exercée lorsque l’objet soumis à la friction ne bouge

EXPLOSION NUMÉRIQUE

Ò  Un autre exemple d’explosion numérique. Si la position de deux corps solides est évaluée selon un intervale de temps trop large, il y a possibilité d’inter-pénétration des deux corps.

Un tel cas est relativement courant dans un simulateur de physique et est habituellement réglé en applicant une répulsion porportionnelle à l’importance de l’inter-pénétration pour éviter qu’il y ait intersection entre ceux-ci.

Si, pour une raison quelconque, l’intersection entre les deux corps est trop importante, la répulsion appliquée peut être particulièrement importante et appliquer des forces majeures aux différentes parties du corps physique, créant des vitesses eccessives et donc une exploion numérique.

59

Page 60: Chapitre 7 ANIMATION BASÉE SUR LA PHYSIQUEinfo.usherbrooke.ca/ogodin/enseignement/imn538/chapitres/... · 2014-03-21 · exercée lorsque l’objet soumis à la friction ne bouge

EXPLOSION NUMÉRIQUE

Ò  Exemple (Le “Ragdoll fail” de Fallout 3)

60

Page 61: Chapitre 7 ANIMATION BASÉE SUR LA PHYSIQUEinfo.usherbrooke.ca/ogodin/enseignement/imn538/chapitres/... · 2014-03-21 · exercée lorsque l’objet soumis à la friction ne bouge

Annexe 2

61

APPLICATIONS LOGICIELLES

Page 62: Chapitre 7 ANIMATION BASÉE SUR LA PHYSIQUEinfo.usherbrooke.ca/ogodin/enseignement/imn538/chapitres/... · 2014-03-21 · exercée lorsque l’objet soumis à la friction ne bouge

APPLICATIONS LOGICIELLES

Ò  Il existe différentes applications logicielles qui permettent de simuler la physique. Ces dernières sont habituellement appellées “Moteurs de physique” ou “Middlewares de physique” et viennent complémenter un moteur de rendu.

Ò  Parmi les plus populaires: É  Moteur Havok (Corps rigide et certaines simulation de fluide.) É  PhysX (Moteur pouvant s’exécuter sur un processeur graphique.) É  Box2D (Simulation de physique 2D, source libre.) É  FastLSM (Simulation de corps flexibles.)

62

Page 63: Chapitre 7 ANIMATION BASÉE SUR LA PHYSIQUEinfo.usherbrooke.ca/ogodin/enseignement/imn538/chapitres/... · 2014-03-21 · exercée lorsque l’objet soumis à la friction ne bouge

RÉFÉRENCES

Ò  Parent,Rick : ”Computer Animation, Algorithms and techniques“, 2nd edition, Morgan Kaufmann, 2007 (pp. ,233-244, 246-261)

Ò  Goldstein, Pool & Safko : “Classical Mechanics”, 3rd edition, Addison Wesley, 2002 ( pp.1-230)

Ò  Millington, Ian : “Game physics engine development”, Morgan Kaufmann, 2007.

Ò  David H. Eberly : “3D Game Engine Architecture”, Morgan Kaufmann, 2005 (pp. 487-600)

Ò  Hecker, Chris : “Physics, Part 4: The third dimension”, Game Developper Magazine, Juin 1997, (pp. 15-26)

Ò  Benson, Harris : “Physique 1 : Physique mécanique”, ERPI, 2004,

63