6 par page

8
Chapitre 7 : Animation Modélisation 3D et Synthèse Fabrice Aubert [email protected] Master Informatique 2015-2016 F. Aubert (MS2) M3DS/ Chapitre 7 : Animation 2015-2016 1 / 43 1 Introduction F. Aubert (MS2) M3DS/ Chapitre 7 : Animation 2015-2016 2 / 43 Animation Animation = succession d’images. Domaine : artistique (liberté de la caméra, des formes), simulation (outils pédagogiques ou aide au geste : chirurgie, assemblage, pilotage), ludique (jeux vidéos). Génération à temps différé : pré-calcul des images, puis diffusion de ces images ("film"). Pas de contrainte de temps (permet d’obtenir le réalisme nécessaire). Pas d’interaction avec l’animation. Génération dynamique (dite abusivement "à temps réel" ou à temps interactif) : chaque image calculée est immédiatement affichée. Contrainte de temps : 10 images/s pour la perception d’une continuité, 25/30 images pour un confort visuel. Interaction possible (simulation avec intervention humaine). Temps réel : l’image calculée avec un paramètre t correspondant au "vrai" temps t (pas nécessairement à une fréquence élevée...). F. Aubert (MS2) M3DS/ Chapitre 7 : Animation 2015-2016 3 / 43 Exemple d’objets animés Mouvement de caméra : interaction sur l’orientation, la position, interpolation selon plusieurs positions clefs, suivi d’une courbe Mouvement de personnage : défini à la "main" (interpolation), motion-capture, génération automatique de marche. Mouvement rigide d’objets : soumis à un poids, chocs réalisme physique. Déformation d’objets : déformation géométrique, simuler des objets "mous". Déformation topologique : briser les objets. Fluides : simulation des mouvement d’eau. F. Aubert (MS2) M3DS/ Chapitre 7 : Animation 2015-2016 4 / 43 2 Techniques d’animation F. Aubert (MS2) M3DS/ Chapitre 7 : Animation 2015-2016 5 / 43 Descriptive L’animation est décrite explicitement (scénario, scripts, ...) en utilisant des outils (principalement) géométriques. Exemples : courbe b-spline pour la trajectoire de caméra (avec contrôle de vitesse), la trajectoire des objets, fonctions mathématiques de déformation des objets, outils d’expressions des visages, d’aide à la conception de la marche, etc... Outre ces outils, la technique maîtresse du descriptif est l’interpolation : l’animateur donne des positions clés, et le logiciel d’animation doit générer les positions intermédiaires pour obtenir du 25 images/seconde. appelée "key-framing" (interpoler les paramètres entre 2 positions clefs). L’interpolation peut être linéaire (souvent insuffisante) ou ... plus complexe (interpolation spline). On peut mettre dans le descriptif des outils tels que : le morphing (technique d’interpolation), le motion capture (acquisition de données). Avantage : liberté "totale" dans la conception des animations. On oppose généralement animation descriptive à animation basée physique. F. Aubert (MS2) M3DS/ Chapitre 7 : Animation 2015-2016 6 / 43

Transcript of 6 par page

Page 1: 6 par page

Chapitre 7 : AnimationModélisation 3D et Synthèse

Fabrice [email protected]

Master Informatique

2015-2016

F. Aubert (MS2) M3DS/ Chapitre 7 : Animation 2015-2016 1 / 43

1 Introduction

F. Aubert (MS2) M3DS/ Chapitre 7 : Animation 2015-2016 2 / 43

Animation

I Animation = succession d’images.

I Domaine : artistique (liberté de la caméra, des formes), simulation (outils pédagogiques ouaide au geste : chirurgie, assemblage, pilotage), ludique (jeux vidéos).

I Génération à temps différé : pré-calcul des images, puis diffusion de ces images ("film").

• Pas de contrainte de temps (permet d’obtenir le réalisme nécessaire).• Pas d’interaction avec l’animation.

I Génération dynamique (dite abusivement "à temps réel" ou à temps interactif) : chaqueimage calculée est immédiatement affichée.

• Contrainte de temps : 10 images/s pour la perception d’une continuité, 25/30 imagespour un confort visuel.

• Interaction possible (simulation avec intervention humaine).

I Temps réel : l’image calculée avec un paramètre t correspondant au "vrai" temps t (pasnécessairement à une fréquence élevée...).

F. Aubert (MS2) M3DS/ Chapitre 7 : Animation 2015-2016 3 / 43

Exemple d’objets animés

I Mouvement de caméra : interaction sur l’orientation, la position, interpolation selonplusieurs positions clefs, suivi d’une courbe

I Mouvement de personnage : défini à la "main" (interpolation), motion-capture, générationautomatique de marche.

I Mouvement rigide d’objets : soumis à un poids, chocs⇒ réalisme physique.

I Déformation d’objets : déformation géométrique, simuler des objets "mous".

I Déformation topologique : briser les objets.

I Fluides : simulation des mouvement d’eau.

F. Aubert (MS2) M3DS/ Chapitre 7 : Animation 2015-2016 4 / 43

2 Techniques d’animation

F. Aubert (MS2) M3DS/ Chapitre 7 : Animation 2015-2016 5 / 43

Descriptive

I L’animation est décrite explicitement (scénario, scripts, ...) en utilisant des outils(principalement) géométriques.

I Exemples : courbe b-spline pour la trajectoire de caméra (avec contrôle de vitesse), latrajectoire des objets, fonctions mathématiques de déformation des objets, outilsd’expressions des visages, d’aide à la conception de la marche, etc...

I Outre ces outils, la technique maîtresse du descriptif est l’interpolation : l’animateur donnedes positions clés, et le logiciel d’animation doit générer les positions intermédiaires pourobtenir du 25 images/seconde.

I ⇒ appelée "key-framing" (interpoler les paramètres entre 2 positions clefs).

I L’interpolation peut être linéaire (souvent insuffisante) ou ... plus complexe (interpolationspline).

I On peut mettre dans le descriptif des outils tels que : le morphing (techniqued’interpolation), le motion capture (acquisition de données).

I Avantage : liberté "totale" dans la conception des animations.

I On oppose généralement animation descriptive à animation basée physique.

F. Aubert (MS2) M3DS/ Chapitre 7 : Animation 2015-2016 6 / 43

Page 2: 6 par page

Animation basée physique

I Faire suivre aux objets les lois mécaniques.

I Avantage : réalisme, le mouvement est généré sans intervention humaine (seules lespositions initiales des objets et les paramètres des lois sont fixés).

I Inconvénient : corps déformables avec rupture difficilement accessible au temps interactif...

F. Aubert (MS2) M3DS/ Chapitre 7 : Animation 2015-2016 7 / 43

Comportementale

I Chaque entité de l’animation répond à des stimulis qui vont définir son comportement lorsde l’animation.

I Exemple : simulation d’un banc de poisson (chaque poisson répond principalement selondes critères de proximité), vol d’oiseau.

F. Aubert (MS2) M3DS/ Chapitre 7 : Animation 2015-2016 8 / 43

Particule

I Uniquement basé sur l’animation de points qui peuvent subir des lois physiques (simples)et souvent accompagnés de lois stochastiques de mouvement.

I Exemples : animation de feu et chute d’eau.

F. Aubert (MS2) M3DS/ Chapitre 7 : Animation 2015-2016 9 / 43

Animation par contraintes

I On fixe un objectif à un objet soumis à des contraintes (géométrique, définition des degrésde liberté, obstacles).

I Exemples :

• cinématique inverse pour un bras articulé (objectif : main qui saisit une balle ;contraintes : position des articulations fixées par les liaisons).

• path-finding : robot muni de capteurs dans un labyrinthe qui doit trouver la sortie.

F. Aubert (MS2) M3DS/ Chapitre 7 : Animation 2015-2016 10 / 43

Habillage

I On se contente d’animer un "squelette" d’un objet (ensemble de points, ou de segmentsinclus dans l’objet). L’animation de l’habillage (souvent une surface géométrique) est déduitde l’animation du squelette.

I Exemple : "skinning" pour les personnages (par exemple : surface implicite pour la peau).

F. Aubert (MS2) M3DS/ Chapitre 7 : Animation 2015-2016 11 / 43

3 Animation basée Physique

F. Aubert (MS2) M3DS/ Chapitre 7 : Animation 2015-2016 12 / 43

Page 3: 6 par page

Mécanique du point

I La scène à animer est constituée d’un ensemble de points (ou particules).

I Données : forces qui s’appliquent en chaque particule (ce sont les forces qui génèrent lemouvement).

I Problème : trouver la position x des points à chaque instant t .

I Solution : les forces permettent de calculer une accélération pour chaque particule (cf plusloin), et si on connait l’accélération on pourra en déduire la position.

• Vitesse à l’instant t : v(t) = ∂x∂t (t) = x(t) (dérivée de la position par rapport au

temps).• Accélération à l’instant t : a(t) = v(t) (dérivée de la vitesse)• Autrement dit : x(t) = a(t) (dérivée seconde de la position).

F. Aubert (MS2) M3DS/ Chapitre 7 : Animation 2015-2016 13 / 43

Exemple avec accélération nulle

I a(t) = 0 à tout instant :

• On trouve v(t) avec la primitive de a(t) = 0⇒ v(t) = Constante.• Constante = v0 : cette vitesse v0 doit être connue = vitesse initiale à l’instant t = 0.• On trouve x(t) avec la primitive de v(t) = v0⇒ x(t) = v0t + x0 (x0 = constante =

position initiale à l’instant t = 0).

F. Aubert (MS2) M3DS/ Chapitre 7 : Animation 2015-2016 14 / 43

Exemple avec accélération constante

I a(t) = a à tout instant :

• On trouve v(t) avec la primitive de a(t) = a⇒ v(t) = at +Constante.• Constante = v0 : cette vitesse v0 doit être connue = vitesse initiale à l’instant t = 0.• On trouve x(t) avec la primitive de v(t) = at + v0⇒ x(t) = 1

2 at2 + v0t + x0 (x0 =constante = position initiale à l’instant t = 0).

F. Aubert (MS2) M3DS/ Chapitre 7 : Animation 2015-2016 15 / 43

Relation Fondamentale de la Dynamique (RFD)

I On trouve l’accélération à partir des forces : poids, attraction, frottement, liaison ressort,contact, ...

I on note FA(t) l’ensemble des forces appliquées au point A à l’instant t .

I on appelle quantité de mouvement du point A la grandeur pA(t) = mAvA(t) (mA : masse,vA(t) : la vitesse).

I on calcule alors l’accélération du point A grâce à la Relation Fondamentale de laDynamique (RFD) :

FA(t) = pA(t) où pA(t) =∂mAvA

∂t(t) = mAaA(t) = mAxA(t)

I On connait donc l’accélération :

xA(t) =FA(t)mA

I Dans la suite on note les formules sans préciser t (ne pas oublier que les valeursdépendent de t).

F. Aubert (MS2) M3DS/ Chapitre 7 : Animation 2015-2016 16 / 43

Intégration du mouvement

I Trouver x à partir de x = Fm s’appelle « intégrer le mouvement »(résolution d’une équation

différentielle).

I Cette équation admet difficilement une solution formelle (sauf dans des cas trèsparticuliers : chute d’un corps, pendule, masse suspendue à un ressort,...).

I ⇒ adoption de méthodes de résolutions approchées et itératives.

I Exemple d’une méthode d’intégration simple : Euler explicite.

F. Aubert (MS2) M3DS/ Chapitre 7 : Animation 2015-2016 17 / 43

Euler explicite

I A l’instant 0, on connait les positions x0 et les vitesses v0 initiales (elles sont données).

I Si xt et vt sont connus à l’instant t , on cherche alors la nouvelle position xt+δt (δt estappelé le pas de temps de la simulation).

I On effectue les approximations suivantes sur les dérivées : at = vt =vt+δt−vt

δt = ( Ftm

d’après RFD) et vt = xt =xt+δt−xt

δt

I Ce qui donne, avec at =F(t)

m :

vt+δt = vt +Ftm δt

xt+δt = xt + vt δtnoté et+δt = et +δt

( Ftmvt

)

I et =

(vtxt

)est appelé vecteur d’état.

I ne pas prendre un pas δt ni trop grand (approximation fausse) ni trop petit (erreursnumériques). Le choix d’un « bon »pas de temps est conditionné par le rapport F

m .

I ⇒ étude des problèmes de convergences et de stabilité des méthodes d’intégration

I Nombreuses autres méthodes d’intégration : Runge-Kutta (tenir compte de plusieursinstants pour faire une meilleure approximation), méthodes dites implicites (couteuses,mais stables)⇒ domaine de l’analyse numérique.

F. Aubert (MS2) M3DS/ Chapitre 7 : Animation 2015-2016 18 / 43

Page 4: 6 par page

Boucle de simulation

Principe :

t=0e_t=(x_t,v_t)=(x_0,v_0); // e_t = vecteur d’etatTant que simulation non finie faire

t=t+delta_tRésoudre collision // correction/génération de forcesCalculer F_t/me_t=e_t+delta_t*(F_t/m,v_t) // Euler expliciteAfficher

fin tant que

F. Aubert (MS2) M3DS/ Chapitre 7 : Animation 2015-2016 19 / 43

Exemple

I Une force unique : le poids mg avec g = 9.81 et m la masse du point.

F. Aubert (MS2) M3DS/ Chapitre 7 : Animation 2015-2016 20 / 43

Collision

I Détecter la collision ?

• Détection statique : déterminer si à l’instant t les objets sont en intersection. Principalproblème : risque de traverser sans détecter.

• Détection dynamique : intersection de trajectoire (intersection entre les positions à tet à t +dt) pour déterminer l’instant de collision. Principal problème : peut s’avérertrès délicat et/ou couteux.

I Répondre à la collision ?

• Corriger les vitesses/positions (impulsion)• Insérer des forces de répulsion (méthode dite à pénalité)• ⇒ peut être difficile de conserver un raisonnement "physiquement" correct lors de

collisions complexes.

F. Aubert (MS2) M3DS/ Chapitre 7 : Animation 2015-2016 21 / 43

Collision point/plan infini

Détection statique : le point traverse t’il le plan ?

I Plan donné par (A,n). Particule en mouvement donnée par sa position Pt .

• Instant t : calcul de−→APt ·n (position relative de la particule au plan).

• Instant t +dt : calcul de−−−−→APt+dt ·n

• Si changement de signe⇒ la particule a traversé le plan.

F. Aubert (MS2) M3DS/ Chapitre 7 : Animation 2015-2016 22 / 43

Collision point/plan infini

Réponse : impulsion.

I Changement de la vitesse spontanément (principe d’impulsion instantanée) :

• On décompose la vitesse v en vitesse tangentielle vT et normale vN (i.e.v = vT + vN et vN = (v ·n)n si n normé).

• La vitesse tangentielle au contact reste inchangée.• La vitesse normale est opposée, en lui appliquant un coefficient de restitution

ε ∈ [0,1] (traduit le rebond).

F. Aubert (MS2) M3DS/ Chapitre 7 : Animation 2015-2016 23 / 43

Impulsion

I Soient vold et vnew les vitesses avant et après la collision de la particule : connaissant vold ,n et ε quelle est la vitesse vnew ?

F. Aubert (MS2) M3DS/ Chapitre 7 : Animation 2015-2016 24 / 43

Page 5: 6 par page

Exemple

I Il faut également corriger la position.

I Par impulsion : xnew = xold +(1+ ε)(H− xold ) avec H projection de xold sur le plan.

F. Aubert (MS2) M3DS/ Chapitre 7 : Animation 2015-2016 25 / 43

Exemples de forces sur les particules

I Amortissement/frottement : F =−kv .

I Ressort entre 2 particules x1 et x2 : F1→2 =−k(x2− x1− lrepos)

I Force d’attraction gravitationnelle entre 2 particules : F1→2 =−G m1m2‖x2−x1‖ (x2− x1)

F. Aubert (MS2) M3DS/ Chapitre 7 : Animation 2015-2016 26 / 43

Autres collisions

I Collision point/sphère (localiser la particule par rapport à une sphère).

I Collision point/triangle (plan infini puis localisation de l’intersection à l’intérieur).

I Collision point/volume (intersection demi-droite avec bord).

I Collision point/bsp

F. Aubert (MS2) M3DS/ Chapitre 7 : Animation 2015-2016 27 / 43

Animation basée physique avec des sphères

I position/vitesse = position/vitesse du centre

I la sphère considérée comme un point (application de la physique à son centre).

I On applique les même calculs que pour les particules

I Mais on gère la collision entre les sphères (prise en compte d’un rayon donné).

I Ce qui change ?

• détection des collisions entre toutes les sphères deux à deux.• calcul de l’impulsion lors d’une collision entre 2 sphères.

I Remarque : on ne gère pas le roulement.

F. Aubert (MS2) M3DS/ Chapitre 7 : Animation 2015-2016 28 / 43

Collisions sphère/sphère

I Détection : (p2.position()−p1.position()).length()< p2.radius()+p1.radius()

I Réponse par impulsion : correction des vitesses :

• On calcule un vecteur impulsion j .• Soit N le vecteur normal au point de contact : on peut prendre (approximation) le

vecteur joignant les deux centres.• v1new = v1old − j

m1N et v2new = v2old +

jm2

N avec j le coefficient d’impulsion.

• On calcule que j = −(1+ε)(v2old−v1old )·N( 1

m1+ 1

m2)N·N

F. Aubert (MS2) M3DS/ Chapitre 7 : Animation 2015-2016 29 / 43

Collisions sphère/sphère : correction des positions

I Eloigner les sphères l’une de l’autre dans la direction N = p2.position()−p1.position()

I Distance de recouvrement des 2 sphères :D = (p2.position()−p1.position()).length()−p1.radius()−p2.radius() (négative si encollision).

I Tenir compte des masses m1 et m2 des sphères pour distribuer le déplacement D entre p1et p2.

p1new = p1old +(1+ ε) m1m1+m2

D NN·N

p2new = p2old − (1+ ε) m2m1+m2

D NN·N

F. Aubert (MS2) M3DS/ Chapitre 7 : Animation 2015-2016 30 / 43

Page 6: 6 par page

Remarques

I La résolution de la collision entre 2 sphères peut regénérer des collisions avec les autressphères (problème des multi collisions : très délicat à résoudre en statique).

I Les sphères peuvent être utilisées comme modèle de collision d’un objet plus complexe(souvent utilisées avec un principe de pénalité comme réponse).

I Si nombreuses sphères, nécessité d’optimiser pour éviter les tests entre toutes les pairesde sphères (volumes englobants/partition de l’espace).

F. Aubert (MS2) M3DS/ Chapitre 7 : Animation 2015-2016 31 / 43

Animation basée physique avec des boites (cas 2D)

F. Aubert (MS2) M3DS/ Chapitre 7 : Animation 2015-2016 32 / 43

Mécanique des solides rigides

I Pour une particule :

• trouver la position x(t) :• donner/calculer la somme des forces F qui s’appliquent à la particule.• puis résoudre la RFD avec intégration d’Euler par exemple :

• vnew = vold +Fm dt

• xnew = xold + vold dt

I Pour un solide :

• trouver la position x(t) ET trouver l’orientation θ(t) (rappel : le placement de toutobjet 3d se réduit à une composition TR).

• Pour la position x(t) : on peut appliquer la RFD au centre de masse G (i.e. considérerl’objet comme un point réduit à son iso-barycentre).

• Pour l’orientation θ(t) : il faut faire intervenir d’autres notions mécaniques pour lacalculer⇒ moment des forces, moment cinétique, moment d’inertie.

• ⇒ pour simplifier, on ne considère que le cas 2D dans la suite.

F. Aubert (MS2) M3DS/ Chapitre 7 : Animation 2015-2016 33 / 43

Vitesse angulaire

I La position d’un solide à l’instant t est définie par la position x de son centre de masse G,et de sa rotation θ autour de ce centre.

I On définit la vitesse angulaire par ω = θI On définit le vecteur vitesse angulaire par −→ω = ω−→u où u est l’axe de rotation (dépend de

l’instant t).

I Vitesse d’un point P quelconque du solide : vP = vG +−→PG×−→ω

I Comment trouver l’angle θ(t)?⇒ on applique le théorème du moment cinétique.

F. Aubert (MS2) M3DS/ Chapitre 7 : Animation 2015-2016 34 / 43

Moment d’une force

I Moment d’une force (analogie avec la force pour la position) :

• c’est l’aptitude d’une force appliquée en A à faire tourner un solide autour d’un pivot Pdonné.

• MF/P = F ×AP (produit vectoriel). En 2D (i.e. z = 0) : une seule composante (le zdu produit vectoriel est le déterminant).

F. Aubert (MS2) M3DS/ Chapitre 7 : Animation 2015-2016 35 / 43

Moment d’inertie et moment cinétique

I Moment d’inertie (analogie avec la masse) en 2D :

• Par rapport à un point P : IP =∫ ∫

A∈S(AP)2dm• On choisit généralement le centre de masse P = G.• Exemple : rectangle de masse totale M et de dimension (l,h) : IG = 1

12 M(l2 +h2).

I Moment cinétique d’un point A du solide (analogie avec quantité de mouvement) en 2D :

• Par rapport à un point P : LA/P = p×AP (où p : quantité de mouvement = mv ).• On montre que LA/G = IGω (i.e. indépendant de A).

F. Aubert (MS2) M3DS/ Chapitre 7 : Animation 2015-2016 36 / 43

Page 7: 6 par page

Théorème du moment cinétique

I MF/G =∂LA/G

∂t = IGω (analogie avec F = ma).

I On a donc une relation pour trouver l’angle à partir de l’accélération angulaire : ω =MF/G

IGI Application d’Euler :

−→ω new =−→ω old +MF/G

IGdt

θnew = θold +ωold dt

F. Aubert (MS2) M3DS/ Chapitre 7 : Animation 2015-2016 37 / 43

Collision Polygone/Plan infini

I Déterminer le sommet le plus loin.I Appliquer une impulsion au point de contact P et considérer la normale N au contact.I L’impulsion induit un changement de vitesse à P, qu’on doit répercuter sur vG et sur −→ω .

I Rappel : vP = vG +−→PG×−→ω

I Le calcul de la correction est :

vGnew = vGold +jm N

−→ω new =−→ω old +(−→PG× jN)

Avec

j =−(1+ ε)vP old ·N

1m + N·((PG×N)×PG)

IGI vG est la vitesse du centre de masse, vP est la vitesse du point au contact.

F. Aubert (MS2) M3DS/ Chapitre 7 : Animation 2015-2016 38 / 43

Détections de collision entre polygones

I Détection par axe séparateur pour des polygones P1 et P2 convexes :

• Un vecteur est dit axe séparateur si les projections des deux polygones sur cevecteur sont disjointes.

• S’il existe un axe séparateur alors les polygones sont disjoints.• Pour deux polygones (convexes), s’il existe un axe séparateur, alors un axe

orthogonal à une arête des polygones est nécessairement séparateur.• ⇒ recherche d’un axe séparateur pour la détection de collision.

F. Aubert (MS2) M3DS/ Chapitre 7 : Animation 2015-2016 39 / 43

Test d’axe séparateur

I Projeter sur l’axe u ?⇒ projeter tous les sommets S sur u : λ = P ·u.I Disjoints ? Comparez les λ : [λmin

1 ,λmax1 ] intersecte [λmin

2 ,λmax2 ]?

I On appelle distance de séparation sur l’axe la distance de superposition (sur l’exemple :λmax

1 −λmin2 ).

I Remarques :• raisonnement valide pour tout polygone convexe (nombre quelconque de sommets)• se généralise en 3D (les axes à tester sont les normales aux faces, et les normales

aux couples d’arêtes de P1 et P2).

F. Aubert (MS2) M3DS/ Chapitre 7 : Animation 2015-2016 40 / 43

Réponse à la collision

I Par impulsion au point de contact P, avec un contact de normal N (normalisé).

I Le polygone 1 subit : v1Gnew = v1

Gold +j

m1 N et−→ω1

new =−→ω1

old +(−−→PG1× jN) (similaire pour

2 mais avec −j).

j =−(1+ ε)(v1

P old − v2P old ) ·N

1m1 +

1m2 +

N·((P1G1×N)×P1G1)I1G

+ N·((P2G2×N)×P2G2)I2G

I Remarque : la vitesse de P n’est pas la même pour 1 et 2.

I Problème : P ? N ?

F. Aubert (MS2) M3DS/ Chapitre 7 : Animation 2015-2016 41 / 43

Réponse à la collision

I Plusieurs solutions, toutes plus ou moins... incorrectes.

I Rappel : il faudrait répondre au contact (collision dynamique), et non à une situationd’intersection (collision statique) ! (i.e. trouver l’instant t qui correspond à la collsion).

I Proposition :

• N : prendre l’axe qui génère la plus petite superposition D• P : considérer les sommets inclus dans les boites (en tp : moyenne de tous les

sommets inclus).

I Correction de la position des centres des boites :

• G1new = G1

old +m1

m1+m2 DN et G2new = G2

old − m2

m1+m2 DN (moyenne pondérée parles masses).

F. Aubert (MS2) M3DS/ Chapitre 7 : Animation 2015-2016 42 / 43

Page 8: 6 par page

Accélération de la détection de collisions

I Décomposer en 2 phases : narrow-phase (détection fine) et broad-phase (accélération).

I Narrow-Phase :

• détection "précise" entre 2 corps (sphère/sphère, polygone/polygone, objet/objet,sphère/polygone, AABB/..., etc).

• Principaux problèmes : algorithme géométrique d’intersection, mais surtout fournir lesinformations nécessaires à la réponse choisie (point de contact, normale au contact,distance de superposition, etc).

I Broad-Phase :

• déterminer des critères entre tous les corps de la scène pour éviter la narrow-phase.• Exemples :

• tests d’intersections sur boites englobantes (sphère, AABB, OBB, etc).• axe séparateur sur l’axe x de la scène (projection de tous les objets de la

scène).• partitionnement de l’espace (grille régulière, octree dynamique).

F. Aubert (MS2) M3DS/ Chapitre 7 : Animation 2015-2016 43 / 43