Systèmes de particules, masse-ressorts, contraintes, solides Nicolas Holzschuch Cours dOption...

61
Systèmes de particules, masse-ressorts, contraintes, solides Nicolas Holzschuch Cours d’Option Majeure 2 [email protected]

Transcript of Systèmes de particules, masse-ressorts, contraintes, solides Nicolas Holzschuch Cours dOption...

Page 1: Systèmes de particules, masse-ressorts, contraintes, solides Nicolas Holzschuch Cours dOption Majeure 2 Nicolas.Holzschuch@imag.fr.

Systèmes de particules,masse-ressorts,

contraintes,solides

Nicolas Holzschuch

Cours d’Option Majeure [email protected]

Page 2: Systèmes de particules, masse-ressorts, contraintes, solides Nicolas Holzschuch Cours dOption Majeure 2 Nicolas.Holzschuch@imag.fr.

Plan du cours•Systèmes de particules

•Systèmes masse-ressort

•Contraintes

•Animations de solides

Page 3: Systèmes de particules, masse-ressorts, contraintes, solides Nicolas Holzschuch Cours dOption Majeure 2 Nicolas.Holzschuch@imag.fr.

Sources•Très inspiré par le cours:

– A. Witkin & D. Baraff, Physically Based Modelling, cours à Siggraph 2001

http://www.pixar.com/companyinfo/research/pbm2001/index.html

(pointeur sur la page web)

•Et surtout :– Particle Dynamics– Rigid Body Dynamics– Constrained Dynamics

Page 4: Systèmes de particules, masse-ressorts, contraintes, solides Nicolas Holzschuch Cours dOption Majeure 2 Nicolas.Holzschuch@imag.fr.

Systèmes de particules•Ensemble de particules

– Position, vitesse, masse

•Déplacement: équations de la dynamique– Somme des forces = masse * accélération

•Générateur : source de particules

•Durée de vie limitée

•Très utiles pour :– Poussière, fumée, étincelles, flammes, liquides…

Page 5: Systèmes de particules, masse-ressorts, contraintes, solides Nicolas Holzschuch Cours dOption Majeure 2 Nicolas.Holzschuch@imag.fr.

Déplacement d’une particule•Masse m, position x, vitesse v

•Équation différentielle :

d

dtx(t) = v(t)

d

dtv(t) =

1

mF(x,v, t)

X =x

v

⎝ ⎜

⎠ ⎟ f (X, t) =

v1

mF(x,v, t)

⎝ ⎜ ⎜

⎠ ⎟ ⎟

Page 6: Systèmes de particules, masse-ressorts, contraintes, solides Nicolas Holzschuch Cours dOption Majeure 2 Nicolas.Holzschuch@imag.fr.

Équation différentielle•Pour une particule :

X =

px

py

pz

vx

vy

vz

⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜

⎟ ⎟ ⎟ ⎟ ⎟ ⎟ ⎟

f (X, t) =

vx

vy

vz

1

mFx (X, t)

1

mFy (X, t)

1

mFz (X, t)

⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜

⎟ ⎟ ⎟ ⎟ ⎟ ⎟ ⎟ ⎟ ⎟ ⎟

Page 7: Systèmes de particules, masse-ressorts, contraintes, solides Nicolas Holzschuch Cours dOption Majeure 2 Nicolas.Holzschuch@imag.fr.

Pour toutes les particules

X =

px1

py1

pz1

vx1

vy1

vz1

px2

py2

pz2

vx2

vy2

vz2

M

⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜

⎟ ⎟ ⎟ ⎟ ⎟ ⎟ ⎟ ⎟ ⎟ ⎟ ⎟ ⎟ ⎟ ⎟ ⎟ ⎟ ⎟ ⎟

f (X, t) =

vx1

vy1

vz1

1m Fx

1(X, t)1m Fy

1(X, t)1m Fz

1(X, t)

vx2

vy2

vz2

1m Fx

2(X, t)1m Fy

2(X, t)1m Fz

2(X, t)

M

⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜

⎟ ⎟ ⎟ ⎟ ⎟ ⎟ ⎟ ⎟ ⎟ ⎟ ⎟ ⎟ ⎟ ⎟ ⎟ ⎟ ⎟ ⎟

Page 8: Systèmes de particules, masse-ressorts, contraintes, solides Nicolas Holzschuch Cours dOption Majeure 2 Nicolas.Holzschuch@imag.fr.

Implémentation•Structure particule:

– Masse m, position x, vitesse v,force f– Version simple :

typedef struct {

float m;

float x[3];

float v[3];

float f[3];

} *Particule;

– Vecteur global particules stocke toutes les particules

Page 9: Systèmes de particules, masse-ressorts, contraintes, solides Nicolas Holzschuch Cours dOption Majeure 2 Nicolas.Holzschuch@imag.fr.

Version moins simple• Tableau des positions• Particule = index i dans tableau des positions X

X[i+0] particule.position.xX[i+1] particule.position.yX[i+2] particule.position.zX[i+3] particule.vitesse.xX[i+4] particule.vitesse.yX[i+5] particule.vitesse.z

• Calcul de la fonction dérivée :F[i+0] particule.vitesse.xF[i+1] particule.vitesse.yF[i+2] particule.vitesse.zF[i+3] particule.force.x/m[i]F[i+4] particule.force.y/m[i]F[i+5] particule.force.z/m[i]

Page 10: Systèmes de particules, masse-ressorts, contraintes, solides Nicolas Holzschuch Cours dOption Majeure 2 Nicolas.Holzschuch@imag.fr.

Quel genre de force ?•Force est une structure

– Calcule la fonction dérivée pour chaque particule– Somme des forces dans particule.force

•Vecteur global Forces pour toutes les forces

•Forces :– Unaires, binaires, à distance…– Constantes, dépendant de position, vitesse…

Page 11: Systèmes de particules, masse-ressorts, contraintes, solides Nicolas Holzschuch Cours dOption Majeure 2 Nicolas.Holzschuch@imag.fr.

Force unaire : gravitation

•Lié seulement à la masse de la particule f(X,t) = constante

•Fumée, flammes : la gravité pointe vers le haut!

Gravité :r f i =

0

0

−miG

⎜ ⎜ ⎜

⎟ ⎟ ⎟

Page 12: Systèmes de particules, masse-ressorts, contraintes, solides Nicolas Holzschuch Cours dOption Majeure 2 Nicolas.Holzschuch@imag.fr.

Forces : amortissement

•La force ne dépend que de la vitesse

•Amortissement visqueux

•Force qui s’oppose au mouvement

•Fait baisser l’énergie : stabilise le système– En petites quantités, stabilise la solution EDO– Grandes quantités : freine tout, mélasse

Amortissement :r f i = −d

r v i

Page 13: Systèmes de particules, masse-ressorts, contraintes, solides Nicolas Holzschuch Cours dOption Majeure 2 Nicolas.Holzschuch@imag.fr.

Forces : champs vectoriels

• La force ne dépend que de la position• Fonctions quelconques :

– Vent– Courants – Attractions/répulsions– Tourbillons

• Éventuellement dépendant du temps• Note : augmente l’énergie du système, besoin amortir

Champ vect.:r f i = f (

r x i, t)

Page 14: Systèmes de particules, masse-ressorts, contraintes, solides Nicolas Holzschuch Cours dOption Majeure 2 Nicolas.Holzschuch@imag.fr.

Forces : attraction spatiale

•Par exemple Lennard-Jones

•O(N2) pour tester toutes les paires– Faible rayon d’action en général– Tests par buckets spatiaux

Attraction spatiale :r f i = f (

r x i,

r x j )

j

Page 15: Systèmes de particules, masse-ressorts, contraintes, solides Nicolas Holzschuch Cours dOption Majeure 2 Nicolas.Holzschuch@imag.fr.

Lennard-Jones

• Interaction entre molécules (Van der Waals)– Attraction en 1/r6, répulsion en 1/r12

•Fluides, écoulements…

•Rapport 1/2 : attraction, répulsion, équilibre

•Dérivée du potentiel : force de Lennard-Jones

Potentiel :V (r x i,

r x j ) =

σ 1r x i −

r x j

12 −σ 2

r x i −

r x j

6

Page 16: Systèmes de particules, masse-ressorts, contraintes, solides Nicolas Holzschuch Cours dOption Majeure 2 Nicolas.Holzschuch@imag.fr.

Lennard-Jones

Page 17: Systèmes de particules, masse-ressorts, contraintes, solides Nicolas Holzschuch Cours dOption Majeure 2 Nicolas.Holzschuch@imag.fr.

Forces : ressort•Force classique des ressorts :

f(xi)=-k(xi-x0)

•Particule attirée par le point x0

•Ressort de longueur nulle à l’équilibre

Page 18: Systèmes de particules, masse-ressorts, contraintes, solides Nicolas Holzschuch Cours dOption Majeure 2 Nicolas.Holzschuch@imag.fr.

Collisions•Pas de collisions entre particules

•Collisions avec l’environnement (sol, murs…)

• Itération dépasse la collision :– Pénétration– Recul ou interpolation

Page 19: Systèmes de particules, masse-ressorts, contraintes, solides Nicolas Holzschuch Cours dOption Majeure 2 Nicolas.Holzschuch@imag.fr.

Effet d’une collision•Vitesse tangentielle inchangée

•Vitesse normale retournée

– Coefficient de restitution

rv =

r v t +

r v n

r v ←

r v t −ε

r v n

Page 20: Systèmes de particules, masse-ressorts, contraintes, solides Nicolas Holzschuch Cours dOption Majeure 2 Nicolas.Holzschuch@imag.fr.

Origine des particules•Générateurs :

– Attachés au modèle

•Flux de création : particules/seconde– tlast, date dernière création de particule

– Création n particules, tlast=t si n > 0

•Distribution (aléatoire) vitesse/position– Si n > 1, étalement de valeurs€

n = t − tlast( ) /rate⎣ ⎦

Page 21: Systèmes de particules, masse-ressorts, contraintes, solides Nicolas Holzschuch Cours dOption Majeure 2 Nicolas.Holzschuch@imag.fr.

Durée de vie des particules•Date de création pour chaque particule

•Durée de vie donnée

•Age de la particule :– Suppression des particules après la durée de vie– Changement de couleur (refroidissement)– Changement d’opacité

•Parfois supprimer les particules qui sortent de l’écran

Page 22: Systèmes de particules, masse-ressorts, contraintes, solides Nicolas Holzschuch Cours dOption Majeure 2 Nicolas.Holzschuch@imag.fr.

À chaque étape•Ajuster l’état des particules

– Éliminer les particules trop âgées– Collisions– Créer les nouvelles particules– Recalculer les index des particules

Page 23: Systèmes de particules, masse-ressorts, contraintes, solides Nicolas Holzschuch Cours dOption Majeure 2 Nicolas.Holzschuch@imag.fr.

Systèmes de particules en pratique

•Grand nombre de particules : 104, 105…

•Code optimisé :– Travail direct dans les tableaux– Tableau de taille fixé (nb. max particules)

• Pas besoin de création/destruction, marquer si actif

– Forces principales « en dur » (gravité…)

•Méthode de résolution simple (Euler ?)

•À pas constant– Un pas par image ?

Page 24: Systèmes de particules, masse-ressorts, contraintes, solides Nicolas Holzschuch Cours dOption Majeure 2 Nicolas.Holzschuch@imag.fr.

Plan du cours•Systèmes de particules

•Systèmes masse-ressort

•Contraintes

•Animations de solides

Page 25: Systèmes de particules, masse-ressorts, contraintes, solides Nicolas Holzschuch Cours dOption Majeure 2 Nicolas.Holzschuch@imag.fr.

Systèmes masse-ressort• Idem systèmes de particules

– Particules appelées « masses »

•Structure donnée

•Les masses font partie du modèle :– Pas de création, pas de destruction, pas d’âge

•Ressorts qui relient les masses :– Les forces ne sont plus universelles– Chaque force connaît les masses sur lesquelles

elle agit

Page 26: Systèmes de particules, masse-ressorts, contraintes, solides Nicolas Holzschuch Cours dOption Majeure 2 Nicolas.Holzschuch@imag.fr.

Systèmes masse-ressort•Points en ligne :

– Cheveux, ressorts, chaines…

•Points sur une surface :– Habits, tissus, peau…

•Points dans un réseau 3D :– Structures semi-rigides– Modèles souples, muscles,…

Page 27: Systèmes de particules, masse-ressorts, contraintes, solides Nicolas Holzschuch Cours dOption Majeure 2 Nicolas.Holzschuch@imag.fr.

Quels ressorts ?•Ressort vers un point fixe :

– Attire la masse vers le point x0

– Oscillations autour de l’origine

f (x) = −k(x − x0)

Page 28: Systèmes de particules, masse-ressorts, contraintes, solides Nicolas Holzschuch Cours dOption Majeure 2 Nicolas.Holzschuch@imag.fr.

Ressort amorti

•Ressort plus freinage

•Suspension de voiture

•Ralentit les mouvements dans la direction du ressort

f (r x ,

r v ) = −ks

r r − kd (

r v ⋅ ˆ r )ˆ r

r r =

r x −

r x 0

ˆ r =r r /

r r

Page 29: Systèmes de particules, masse-ressorts, contraintes, solides Nicolas Holzschuch Cours dOption Majeure 2 Nicolas.Holzschuch@imag.fr.

Ressort amorti

•Rapport ks/kd détermine :

– Sur-amortissement, sous-amortissement, amortissement critique

– … si le système est isolé

•Toujours un certain amortissement

Page 30: Systèmes de particules, masse-ressorts, contraintes, solides Nicolas Holzschuch Cours dOption Majeure 2 Nicolas.Holzschuch@imag.fr.

Longueur au repos non-nulle•Ressort avec longueur au repos non-nulle

– Pousse/tire la masse à une distance d de x0

f (r x ,

r v ) = −ks(r − d)ˆ r − kd (

r v ⋅ ˆ r )ˆ r

r =r x −

r x 0

ˆ r =r x −

r x 0( )/r

Page 31: Systèmes de particules, masse-ressorts, contraintes, solides Nicolas Holzschuch Cours dOption Majeure 2 Nicolas.Holzschuch@imag.fr.

Ressort entre deux masses

• Symétrique• Forces radiales• Pousse/tire les masses à une distance d l’une de l’autre

f1(r x 1,

r v 1,

r x 2 ,

r v 2) = −ks(r − d)ˆ r − kd ((

r v 1 −

r v 2) ⋅ ˆ r )ˆ r

f2(r x 1,

r v 1,

r x 2 ,

r v 2) = − f1(

r x 1,

r v 1,

r x 2,

r v 2)

r =r x 1 −

r x 2

ˆ r =r x 1 −

r x 2( )/r

Page 32: Systèmes de particules, masse-ressorts, contraintes, solides Nicolas Holzschuch Cours dOption Majeure 2 Nicolas.Holzschuch@imag.fr.

Construction avec masse-ressorts

•Connexion des masses pour modéliser

•Les objets peuvent se plier, s’écraser, se tordre

•Liaisons supplémentaires pour rigidité

•Difficile d’avoir le bon comportement

Page 33: Systèmes de particules, masse-ressorts, contraintes, solides Nicolas Holzschuch Cours dOption Majeure 2 Nicolas.Holzschuch@imag.fr.

Masse-ressort•On peut tout modéliser :

– Tissus, solides, objets mous, semi-rigides…– Rigidité variable

•En théorie, c’est parfait :– Si distance entre masses=dist. intra-moléculaires

•En pratique, c’est pas idéal :– Parfait si on ne veut modéliser que de la gelée– Objets trop rigides :

• Divergence, petit pas, temps de calcul prohibitif

Page 34: Systèmes de particules, masse-ressorts, contraintes, solides Nicolas Holzschuch Cours dOption Majeure 2 Nicolas.Holzschuch@imag.fr.

Modélisation énergétique•Plus simple que modélisation masse-ressort

•Fonction énergétique générale :– S’applique à tout le modèle– Dépend de la position– Décrit l’état idéal

•Potentiel lié à cette énergie

•Force dérivant du potentiel

•Appliquée aux particules

Page 35: Systèmes de particules, masse-ressorts, contraintes, solides Nicolas Holzschuch Cours dOption Majeure 2 Nicolas.Holzschuch@imag.fr.

Modélisation énergétique•Fonction de comportement

– Dépendant seulement de la position des points• Pas de la vitesse

– C(x0, x1, …, xn)

– C = 0 à l’équilibre

•Énergie de déformation liée à la fonction– E = 1/2 ks C2

– E = 0, système à l’équilibre– E > 0, énergie de déformation

Page 36: Systèmes de particules, masse-ressorts, contraintes, solides Nicolas Holzschuch Cours dOption Majeure 2 Nicolas.Holzschuch@imag.fr.

Force liée au potentiel•Force = - gradient de l’énergie potentielle

f i(x0,x1,...,xn ) = −∂

∂x i

E(x0,x1,...,xn )

= −∂

∂x i

1

2ksC(x0,x1,...,xn )2 ⎛

⎝ ⎜

⎠ ⎟

= −ksC(x0,x1,...,xn )∂C(x0,x1,...,xn )

∂x i

Page 37: Systèmes de particules, masse-ressorts, contraintes, solides Nicolas Holzschuch Cours dOption Majeure 2 Nicolas.Holzschuch@imag.fr.

Force liée au potentiel•Avec amortissement :

•Description simple d’un système complex

•Reste à écrire le potentiel…€

f i(x0,x1,...,xn ) = −ksC(x0,x1,...,xn ) − kd

d

dtC(x0,x1,...,xn )

⎝ ⎜

⎠ ⎟∂C(x0,x1,...,xn )

∂x i

= −ksC(x0,x1,...,xn ) − kd

∂C(x0,x1,...,xn )

∂x j

v j

j

∑ ⎛

⎝ ⎜ ⎜

⎠ ⎟ ⎟∂C(x0,x1,...,xn )

∂x i

Page 38: Systèmes de particules, masse-ressorts, contraintes, solides Nicolas Holzschuch Cours dOption Majeure 2 Nicolas.Holzschuch@imag.fr.

Exemples : ressort standard

C(x0,x1) = x0 − x1 − d = r − d

∂C(x0,x1)

∂x0

=x0 − x1

x0 − x1

= ˆ r

∂C(x0,x1)

∂x0

=x1 − x0

x0 − x1

= −ˆ r

f i(x0,x1) = −ksC(x0,x1) − kd

∂C(x0,x1)

∂x j

v j

j

∑ ⎛

⎝ ⎜ ⎜

⎠ ⎟ ⎟∂C(x0,x1)

∂x i

= −ks(r − d) − kdˆ r ⋅v1 − ˆ r ⋅v2( )( )ˆ r

Page 39: Systèmes de particules, masse-ressorts, contraintes, solides Nicolas Holzschuch Cours dOption Majeure 2 Nicolas.Holzschuch@imag.fr.

Exemples : triangle d’aire constante

C(a,b,c) = (b − a) × (c − a) − A

∂C(a,b,c)

∂a= R90(c − b)

∂C(a,b,c)

∂b= R90(a − c)

∂C(a,b,c)

∂c= R90(b − a)

on pose α = −ksC(a,b,c) − kd va × (c − b) + vb × (a − c) + vc × (b − a)( )( )

fa (a,b,c,va ,vb,vc ) = αR90(c − b)

fb (a,b,c,va ,vb,vc ) = αR90(a − c)

fc (a,b,c,va ,vb,vc ) = αR90(b − a)

Page 40: Systèmes de particules, masse-ressorts, contraintes, solides Nicolas Holzschuch Cours dOption Majeure 2 Nicolas.Holzschuch@imag.fr.

Exemples, suite : tissus•Modèle 2D, à plat

•Coupé suivant le patron

•Assemblé (cousu) sur le modèle

•Contraintes : le tissu résiste :– Étirement– Pliage

•Directions privilégiées

•Fonction d’énergie

Page 41: Systèmes de particules, masse-ressorts, contraintes, solides Nicolas Holzschuch Cours dOption Majeure 2 Nicolas.Holzschuch@imag.fr.

Plan du cours•Systèmes de particules

•Systèmes masse-ressort

•Contraintes

•Animations de solides

Page 42: Systèmes de particules, masse-ressorts, contraintes, solides Nicolas Holzschuch Cours dOption Majeure 2 Nicolas.Holzschuch@imag.fr.

Contraintes multiples• Contraintes :

– Restriction sur la position d’un objet

– Relation entre objets

• Contraintes permanentes– Holonomes : équation C(…) = 0

– Articulations

• Contraintes temporaires– Non-holonomes : équation C(…) ≥ 0

– Contact, non-pénétration

– Limites aux articulations

Page 43: Systèmes de particules, masse-ressorts, contraintes, solides Nicolas Holzschuch Cours dOption Majeure 2 Nicolas.Holzschuch@imag.fr.

Masse-ressort ?•Contraintes par ressorts : pénalité

– Force de rappel vers position équilibre

•Pas idéal :– Si position correcte, force de rappel nulle– S’il y a une autre force (gravité) on s’écarte– Besoin ressort de rappel très rigide

• Très instable

• Pas garanti que ça marche

Page 44: Systèmes de particules, masse-ressorts, contraintes, solides Nicolas Holzschuch Cours dOption Majeure 2 Nicolas.Holzschuch@imag.fr.

Satisfaction des contraintes•Forces de contrainte•D’abord calculer forces « normales » :

– Gravité, ressorts, etc

•Puis calculer forces de contrainte– Prise en compte de l’effet des forces normales

•Plusieurs contraintes :– Chacune tient compte de l’effet des autres

•Ajouter forces de contraintes aux autres forces– Simulation normale

Page 45: Systèmes de particules, masse-ressorts, contraintes, solides Nicolas Holzschuch Cours dOption Majeure 2 Nicolas.Holzschuch@imag.fr.

Forces de contrainte•Contrainte : C(x) = 0

– Positions autorisées : C(x) = 0

•Vitesses autorisée :

•Accélérations autorisées :

•Force supplémentaire (force de contrainte) :– Calculée pour vérifier €

˙ C = 0

˙ ̇ C = 0

˙ ̇ x =1

m( f + ˆ f )

˙ ̇ C = 0

Page 46: Systèmes de particules, masse-ressorts, contraintes, solides Nicolas Holzschuch Cours dOption Majeure 2 Nicolas.Holzschuch@imag.fr.

Conservation de l’énergie•La force de contrainte ne doit modifier l’énergie du système :

•La force de contrainte ne doit pas travailler

Ec =1

2m˙ x 2

d

dtEc = m˙ ̇ x ⋅ ˙ x = f ⋅ ˙ x + ˆ f ⋅ ˙ x

Page 47: Systèmes de particules, masse-ressorts, contraintes, solides Nicolas Holzschuch Cours dOption Majeure 2 Nicolas.Holzschuch@imag.fr.

Cas à un corps : perle sur un fil

C(x) = 12 (x2 − d) = 0

˙ C (x) = x ⋅ ˙ x = 0˙ ̇ C (x) = ˙ ̇ x ⋅x + ˙ x ⋅ ˙ x = 0

˙ ̇ C (x) = 1m ( f + ˆ f ) ⋅x + ˙ x ⋅ ˙ x = 0

ˆ f ⋅x = − f ⋅x − m˙ x ⋅ ˙ x

W = ˆ f ⋅ ˙ x = 0, ∀x x ⋅ ˙ x = 0

ˆ f = λx

λ =− f ⋅x − m˙ x ⋅ ˙ x

x ⋅x

Page 48: Systèmes de particules, masse-ressorts, contraintes, solides Nicolas Holzschuch Cours dOption Majeure 2 Nicolas.Holzschuch@imag.fr.

Cas général•Vecteur des positions des particules q

•Matrice des masses M, inverse W

•Vecteur des forces Q

•Contrainte C(q)– C vecteur à m éléments– q vecteur à 3n éléments

˙ ̇ q = WQ

C = ˙ C = 0

˙ ̇ q = W(Q + ˆ Q )˙ ̇ C = 0

Page 49: Systèmes de particules, masse-ressorts, contraintes, solides Nicolas Holzschuch Cours dOption Majeure 2 Nicolas.Holzschuch@imag.fr.

Trouver la force de contrainte

˙ C =∂C

∂q˙ q = J ˙ q

˙ ̇ C = ˙ J ̇ q + J˙ ̇ q

˙ ̇ C = ˙ J ̇ q + JW(Q + ˆ Q ) = 0

JW ˆ Q = −˙ J ̇ q − JWQ

W = ˆ Q ⋅ ˙ x = 0, ∀ ˙ x J ˙ x = 0

ˆ Q = JT λ

JWJT λ = −˙ J ̇ q − JWQ

Page 50: Systèmes de particules, masse-ressorts, contraintes, solides Nicolas Holzschuch Cours dOption Majeure 2 Nicolas.Holzschuch@imag.fr.

Stabilité numérique

˙ ̇ C = −ksC − kd˙ C

JWJT λ = −˙ J ̇ q − JWQ − ksC − kd˙ C

Page 51: Systèmes de particules, masse-ressorts, contraintes, solides Nicolas Holzschuch Cours dOption Majeure 2 Nicolas.Holzschuch@imag.fr.

Plan du cours•Systèmes de particules

•Systèmes masse-ressort

•Contraintes

•Animations de solides

Page 52: Systèmes de particules, masse-ressorts, contraintes, solides Nicolas Holzschuch Cours dOption Majeure 2 Nicolas.Holzschuch@imag.fr.

Solides• Presque pareil que les particules

– m masse totale du solide– r position du centre de gravité– v vitesse du centre de gravité

• Plus termes de rotation :– J tenseur d’inertie (matrice en 3D, scalaire en 2D)– orientation du solide (angle en 2D, quat en 3D)– vitesse de rotation (scalaire en 2D, vecteur en 3D)

• Coordonnées du solide :– Origine en r, rotation par rapport au monde– Pour tout solide, m et J décrivent mouvement

Page 53: Systèmes de particules, masse-ressorts, contraintes, solides Nicolas Holzschuch Cours dOption Majeure 2 Nicolas.Holzschuch@imag.fr.

Tenseur d’inertie•Déjà vu ?

•Description de la répartition des masses :

•Densité (r), r coordonnées par rapport au centre

J = ρ (r)

ry2 + rz

2 −rxry −rxrz

−rxry rx2 + rz

2 −ryrz

−rxrz −ryrz rx2 + ry

2

⎜ ⎜ ⎜

⎟ ⎟ ⎟d3r∫∫∫

J = ρ(r)∫∫ r 2d2r

3D :

2D :

Page 54: Systèmes de particules, masse-ressorts, contraintes, solides Nicolas Holzschuch Cours dOption Majeure 2 Nicolas.Holzschuch@imag.fr.

Examples (densité uniforme)•Rectangle :

•Disque :

•Source de plein d’exercices marrants

I =1

3m l2 + w2

( )

I =1

2mr2

Page 55: Systèmes de particules, masse-ressorts, contraintes, solides Nicolas Holzschuch Cours dOption Majeure 2 Nicolas.Holzschuch@imag.fr.

Équation du mouvement des solides

•Équation du mouvement :

•T est le couple– Torque en anglais

d

dtx = v

d

dtθ = ω

d

dtv = m−1F

d

dtω = J−1T

Page 56: Systèmes de particules, masse-ressorts, contraintes, solides Nicolas Holzschuch Cours dOption Majeure 2 Nicolas.Holzschuch@imag.fr.

Couple (Torque)•Chaque force f agit en un point du solide

– r vecteur du centre de gravité au point d’action– solide.F += f– Solide.T += rf

•Le moment fait tourner le solide– Si la force agit au centre de gravité, moment nul

• Gravitation

– Si la force pointe vers le centre de gravité, moment nul

– f en r et -f en -r : force nulle, couple non-nul

Page 57: Systèmes de particules, masse-ressorts, contraintes, solides Nicolas Holzschuch Cours dOption Majeure 2 Nicolas.Holzschuch@imag.fr.

Amortissement visqueux•Dépend de la vitesse linéaire des points

vr = v + ω × r (3D)

= v + ωR90r (2D)

Page 58: Systèmes de particules, masse-ressorts, contraintes, solides Nicolas Holzschuch Cours dOption Majeure 2 Nicolas.Holzschuch@imag.fr.

Collisions•Collisions entre deux solides

•Point de collision et vecteur normal– Pb complexe, nbx algorithmes

•Collision solide-particule :– Se ramener en coordonnées locales au solide– Collision en coordonnées locales– Impulsion sur le solide– Rebond de la particule

Page 59: Systèmes de particules, masse-ressorts, contraintes, solides Nicolas Holzschuch Cours dOption Majeure 2 Nicolas.Holzschuch@imag.fr.

Impulsion• Impulsion I, normale à la collision :

•Effet de l’impulsion :

I =−(1+ ε)(v p − vs)

1m p

+ 1ms

+ 1J s

(rstg )2 (2D)

v p = v p + 1m p

I

vs = vs + 1ms

I

ωs = ωs + 1J s

rs × I( )

Page 60: Systèmes de particules, masse-ressorts, contraintes, solides Nicolas Holzschuch Cours dOption Majeure 2 Nicolas.Holzschuch@imag.fr.

Résumé• Systèmes de particules

– Fluides, poussière, flammes, fumée

– Oiseaux, poissons…

• Systèmes masse-ressort :– Solides, tissus…

– Énergie de déformation

• Solides :– Couple, moment, équation dynamique

– Contraintes sur les solides

– Impulsions

Page 61: Systèmes de particules, masse-ressorts, contraintes, solides Nicolas Holzschuch Cours dOption Majeure 2 Nicolas.Holzschuch@imag.fr.

Encore très peu…•Sujet à peine effleuré

•Contraintes de non-pénétration entre solides

•Quaternions pour les rotations

•Frottements solides