Veille technologique           Les moteurs physiques temps r´el                                        e                  ...
1     Introduction     On appelle moteur physique la partie d’un simulateur responsable descalculs des comportements physi...
2     Les solides rigides     Parce que les solides rigides peuvent mod´liser un grand nombre d’objets,                   ...
objet complexe est souvent remplac´ par un assemblage de primitives de                                     ebase pour lesq...
(a) Sc`ne                           e                         (b) Arbre BVH    Fig. 3 – Exemple d’organisation d’une sc`ne...
s’intersecteront au prochain pas.    La d´tection d’intersection en elle mˆme d´pend du type de primitive,         e      ...
peuvent ˆtre relatives les unes par rapport aux autres. Ces liaisons vont cr´er         e                                 ...
cot´s, on peut consid´rer de relier les points en carr´s. Ce chois a un effet sur   e                 e                    ...
Fig. 7 – D´monstration d’une simulation physique en temps r´el d’un fluide          e                                      ...
sur la stabilit´, la rapidit´ et le rendu visuel et moins sur la pr´cision et               e            e                ...
5.1       Biblioth`ques libres                  e    Il est important de noter que ces biblioth`ques peuvent pour la plupa...
Havok Havok est d´velopp´ par la soci´t´ du mˆme nom en Irlande. Depuis                       e      e            ee      ...
R´f´rences ee [1] http ://www.bulletphysics.com librairie physique Bullet Physics,     guide d’utilisateur et Wiki [2] htt...
Prochain SlideShare
Chargement dans…5
×

Les moteurs physiques en temps réel

2 348 vues

Publié le

Dossier de vaille technologique sur les moteurs physiques en temps réel (2009)

Publié dans : Technologie
0 commentaire
0 j’aime
Statistiques
Remarques
  • Soyez le premier à commenter

  • Soyez le premier à aimer ceci

Aucun téléchargement
Vues
Nombre de vues
2 348
Sur SlideShare
0
Issues des intégrations
0
Intégrations
3
Actions
Partages
0
Téléchargements
14
Commentaires
0
J’aime
0
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive

Les moteurs physiques en temps réel

  1. 1. Veille technologique Les moteurs physiques temps r´el e Steren Giannini 18 mars 2009Table des mati`res e1 Introduction 2 1.1 Les particularit´s du calcul en temps r´el . . . . . . . . . . . . e e 2 1.2 La composition d’un moteur physique . . . . . . . . . . . . . . 22 Les solides rigides 3 2.1 Les enveloppes . . . . . . . . . . . . . . . . . . . . . . . . . . 3 2.2 La gestion des collisions . . . . . . . . . . . . . . . . . . . . . 4 2.2.1 Les arbres de volumes englobants (BVH) . . . . . . . . 4 2.2.2 La d´tection d’intersection . . . . . . . . . . . . e . . . . 5 2.2.3 La position de repos . . . . . . . . . . . . . . . . . . . 6 2.3 Les mod`les utilis´s : bas´s sur le calcul de contraintes e e e . . . . 6 2.3.1 La friction . . . . . . . . . . . . . . . . . . . . . . . . . 6 2.3.2 Les liaisons . . . . . . . . . . . . . . . . . . . . . . . . 63 Les solides mous 74 Les fluides 8 4.1 La discr´tisation du probl`me . . . . . . . . . . . . . . . . . . e e 9 4.2 Le mod`le utilis´ . . . . . . . . . . . . . . . . . . . . . . . . . e e 95 Les biblioth`ques disponibles e 10 5.1 Biblioth`ques libres . . . . . . . . . . . . . . . . . . . . . . . . 11 e 5.2 Biblioth`ques propri´taires . . . . . . . . . . . . . . . . . . . . 11 e e 5.3 Couche d’abstraction . . . . . . . . . . . . . . . . . . . . . . . 126 Conclusion 12 1
  2. 2. 1 Introduction On appelle moteur physique la partie d’un simulateur responsable descalculs des comportements physiques de la sc`ne.e Les Moteurs physiques sont tr`s utilis´s dans les simulations en temps e er´el telles que les jeux vid´os mais aussi dans les simulations scientifiques. e eOn distingue deux types de moteurs physiques : les moteurs temps r´el et les emoteurs de haute pr´cision. Ces derniers sont destin´ a un calcul de pr´cision, e e` eils refl`tent un maximum les comportement r´els, nous ne les ´tudieront pas e e edans ce dossier. Auparavant, il n’y avait pas de distinction entre le moteur du simulateuret la gestion de la physique a proprement parler. Ceci s’explique par le faitque les calculs physiques mis en jeu ´taient vraiment simplistes. Parce que ela puissance de calcul des machines sur lesquelles tournent ces simulationsa largement augment´ au cours du temps, les d´veloppeurs ont commenc´ e e ea extraire le code relatif aux calculs physiques. C’est ainsi que depuis l’an`2000, des librairies de calcul physique en temps r´el sont pris en compte dans ela conception des jeux. Mˆme si des moteurs physiques sont vendus extr`mement chers, il ex- e eiste de nombreuses librairies ouvertes et gratuites utilis´es tant bien par les eprofesionnels que par les ´tudiants et autres amateurs. e1.1 Les particularit´s du calcul en temps r´el e e Dans la plupart des calculs en temps r´el, la vitesse de calcul est plus eimportante que la pr´cision de la simulation. Ainsi, le r´sultat d’un calcul en e etemps r´el est souvent visuellement acceptable mais pas forc´ment physique- e ement correct. Dans le monde r´el, les ph´nom`nes de la m´canique sont actifs en perma- e e e enence, cependant, dans une simulation en temps r´el, on peut les d´sactiver e elorsqu’ils ne sont plus visibles dans un souci d’´conomie de performances. eAinsi par exemple, lorsque pendant un calcul physique d’une sc`ne, la posi- etion d’un objet ne varie plus beaucoup, on peut stopper le calcul et d´finir el’objet comme fixe.1.2 La composition d’un moteur physique Un moteur physique en temps r´el est constitu´ de deux composants : e eun syst`me de d´tection de collisions et un syst`me de simulation physique e e eresponsable du mouvement des objets en fonction des forces appliqu´es. e 2
  3. 3. 2 Les solides rigides Parce que les solides rigides peuvent mod´liser un grand nombre d’objets, eils ont ´t´ les premiers pour lesquels des librairies physiques furent d´velop´es. ee e e Un solide pour lequel on d´sire effectuer des calculs physiques se car- eact´rise par les variables suivantes : e – position – vitesse – orientation – vitesse angulaire – masse – matrice d’inertieFig. 1 – D´monstration d’une simulation physique temps r´el de solides e erigides2.1 Les enveloppes Les calculs de collision sont tr`s couteux en performance lorsque les objets econsid´r´s sont complexes. Bien souvent dans les simulations en temps r´el, ee eun mod`le simplifi´ du mod`le 3D vu ` l’´cran est utilis´ pour les calculs e e e a e ephysiques. De plus, la plupart des moteurs physiques sont capables d’effectuer demeilleurs calculs sur quelques primitives de base, telles que les boites, lessph`res ou les cylindres par exemple. Ainsi, dans un calcul temps r´el un e e 3
  4. 4. objet complexe est souvent remplac´ par un assemblage de primitives de ebase pour lesquelles le moteur physique est tr`s performant. Les enveloppes ecouramment utilis´es sont : e – la boite – la sph`re e – le cylindre – le cˆne o – la capsule – l’enveloppe convexe : le plus petit voume convexe englobant le solide. – le tri-mesh : un maillage quelconque compos´ de triangles. Ce dernier e est bien entendu le plus couteux en calculs.Fig. 2 – Quelques enveloppes de collision possibles pour une g´om´trie e edonn´e e2.2 La gestion des collisions2.2.1 Les arbres de volumes englobants (BVH) Une sc`ne 3D est souvent stock´e sous forme de graphe. Il en est de mˆme e e epour les volumes englobants : on utilise des arbres BVH (Bounding VolumeHierarchies). Ces volumes sont la plupart du temps des sph`res ou des boites eenglobantes align´es sur les axes. e Les feuilles de cet arbre sont les enveloppes des objets, voir des partiesdes objet. Elles sont regroup´es dans des volumes plus gros, qui constituent eles nœuds de l’arbre. Les arbres BVH sont tr`s efficaces pour d´terminer les collision entre e eobjets : si le volume englobant d’un objet n’intersecte pas un volume plushaut dans l’arbre, alors il ne touche pas les objets contenus dans ce volume. L’int´rˆt d’utiliser un arbre BVH pour la d´tection de collision n’est jus- ee etifi´ que si l’arbre est intelligemment cr´´. Il faut en effet que les objets e eeprochent se retrouvent sous le mˆme noeud. e 4
  5. 5. (a) Sc`ne e (b) Arbre BVH Fig. 3 – Exemple d’organisation d’une sc`ne en volumes englobants e La figure 3 illustre un exemple de d´tection de collision : On veut savoir eavec qui est en contact le solide 1. La chose ` d´terminer est si 1 est en a econtact avec le volume 5-6. Ce n’est pas le cas donc on sait que 1 ne est nien contact avec 5, ni avec 6. On teste ensuite si 1 entre en contact avec levolume 3-4. C’est le cas, il y a donc possibilit´ que 1 soit en collision avec 3 eou avec 4. On teste donc ces deux objets. Il s’av`re que 1 est en collision avec e3 et qu’il n’est pas en collision avec 4. Pour finir, il ne reste plus qu’` tester asi 1 est en collision avec 2 a l’int´rieur du volume 1-2, ce qui n’est pas le cas. ` e2.2.2 La d´tection d’intersection e Un d´tecteur de collision peut fonctionner de deux mani`res diff´rentes : e e ela collision est d´tect´e a posteriori, c’est a dire apr`s que la collision ai e e ` er´ellement eu lieu, ou a priori, c’est a dire avant que la collision ne se produise. e `A posteriori La simulation physique est avanc´e d’un pas dans le temps, eon d´tecte ensuite si des objets s’intersectent. La liste des objets qui s’inter- esectent ainsi est alors transmise au moteur de calcul physique. cette m´thode, ebien que la plus utilis´e, pr´sente un probl`me de collisions loup´es : si la e e e evitesse de l’objet et sup´rieure a son plus grand rayon, a l’it´ration suivante e ` ` el’objet ne va pas ˆtre en intersection avec la surface de l’autre objet, il l’aura etravers´. Des astuces existent pour contourner ce probl`me. e eA priori La d´tection est pr´dite ` travers le temps a l’aide d’algorithme e e a `de pr´diction. Ces algorithmes prennent en entr´e la position et le mou- e evement des solides de la sc`nes, ils sortent ensuite une liste de solide qui e 5
  6. 6. s’intersecteront au prochain pas. La d´tection d’intersection en elle mˆme d´pend du type de primitive, e e epour les plus simples comme les sph`res il suffit de comparer la distance eentre les centres et la somme des rayons.2.2.3 La position de repos Bien souvent, les contacts statiques, appel´s (( positions de repos )), sont etrait´s de mani`re diff´rente. Ainsi si deux objets sont en contact mais que e e eleur vitesse relative est en dessous d’un faible seuil, on consid`re qu’ils sont esolidaires et on n’effectue plus de calcul de collision entre ces deux solides.2.3 Les mod`les utilis´s : bas´s sur le calcul de con- e e e traintes Les ´quations du mouvement utilis´es sont celles des solides rigides de e ela physique de Newton. La technique est m´thodique : l’ensemble des con- etraintes auxquelles sont soumis les objets sont recens´es, puis les d´placement e esont calcul´s. Ces contraintes regroupent les contraintes de non-p´n´tration e e e(les contacts), les contraintes de liaisons et les forces ext´rieures. e L’´tape de r´solution de ces ´quations s’appelle l’int´gration. Elle est e e e er´alis´e explicitement, c’est a dire que l’acc´l´ration ` l’it´ration n+1 est e e ` ee a ecalcul´e en fonction des forces a l’it´ration n. e ` e On tombe ainsi sur la r´solution du probl`me appel´ LCP (Linear Com- e e eplementary Problem) [7]. R´soudre ce probl`me revient a minimiser une e e `fonction soumise a des contraintes donn´es. Pour y parvenir, on utilise la ` etechnique du Multiplicateur de Lagrange [8]. Le Multiplicateur de Lagrangepermet de trouver les extrema d’une fonction sous contraintes en ´tudiant les epoints stationnaires d’une autre. Il suffit pour cela de r´soudre it´rativement e el’´quation de Lagrange, c’est ` dire, une inversion de matrice. e a2.3.1 La friction Le coefficient de Coulomb est utilis´ car il repr´sente un mod`le simple : e e eCeci d´fini un cˆne de friction, qui pour des raison de simplicit´ des calcul e o eest approxim´ en pyramide de friction. e2.3.2 Les liaisons Deux solides peuvent ˆtre reli´s par une liaison. Cette liaison va cr´er e e eune contrainte entre ces deux objets. Ainsi leurs positions et orientations 6
  7. 7. peuvent ˆtre relatives les unes par rapport aux autres. Ces liaisons vont cr´er e edes forces que l’int´grateur va consid´rer lors de chaque it´ration. e e e (a) Sph´rique e (b) Pivot (c) Glissi`re e Fig. 4 – Diff´rentes liaisons entre deux solides e3 Les solides mous Les principales applications sont entre autres les objets mous et ´lastiques, eles vˆtements, les cheveux ou les cordes. On peut mˆme r´aliser avec ces outils e e eune surface de liquide grossier.Fig. 5 – D´monstration d’une simulation physique temps r´el de solides mous e e La technique est beaucoup plus simple car on consid`re maintenant un eensemble de points reli´s par des liaisons ´lastiques. Il s’agit d’une surface e er´gie par un syst`me masse-ressort : chaque point poss`de une position, une e e evitesse et une masse. Ces points sont reli´s entre eux par des raideurs. Comme eon peut le voir sur la figure 6, il existe diff´rentes fa¸ons de consid´rer le e c emaillage : on peut consid´rer que chaque arrˆte de la surface est un ressort e eou alors, parce que les mod`les 3D sont souvent constitu´s de faces a quatre e e ` 7
  8. 8. cot´s, on peut consid´rer de relier les points en carr´s. Ce chois a un effet sur e e ela dynamique de l’objet : dans le cas de faces triangulaires, les perturbationstransversales seront plus restitu´s que dans le cas de faces carr´es. e e (a) faces en triangles (b) faces en carr´ e Fig. 6 – Les solides mous : syst`mes masse-ressort e Concernant la gestion de la collision, on ne parle plus de volume en-globant. Chaque point du solide d´formable est consid´r´ comme solide et e eeest test´ pour d’´ventuelles collisions avec d’autres objets solides. On peut e ede plus consid´rer les collisions du maillage sur lui mˆme (dans le cas d’une e esimulation de tissu par exemple), on teste ainsi les collisions entre les pointsde l’objet et les faces de ce mˆme objet. e4 Les fluides La simulation en temps r´el des fluides vise a simuler des comportements e `liquides tels que les rivi`res ou les oc´ans mais aussi les comportements e egazeux tels que les fum´es ou les nuages. e 8
  9. 9. Fig. 7 – D´monstration d’une simulation physique en temps r´el d’un fluide e een 2 dimensions [12] La simulation en temps r´el des fluides est encore actuellement au stade eexp´rimental. Actuellement lorsqu’elle est pr´sente, chaque simulateur impl´mente e e esa propre technique. Il n’existe quasiment aucune librairie propri´taire ou elibre de simulation en temps r´el de fluides. Nous allons donc ´tudier les e econcepts de base communs a ces diff´rentes exp´rimentations. ` e e4.1 La discr´tisation du probl`me e e Il n’est plus possible de parler de g´om´trie ou de masse. L’espace dans e elequel la simulation est effectu´e est discr´tis´ en une grille volumique avec e e ecomme volumes ´l´mentaires des cubes. Chacun de ces cubes poss`de en son ee ecentre les informations de densit´ et de vitesse. Ce sont ces informations equi sont ensuite traduitent graphiquement par le processus d’affichage. Ceprocessus d’afficage peut s’effectuer de diff´rente mani`res : par exemple par e el’affichage de particules suivant le mouvement du fluide, par le calcul de lasurface du fluide (pour les liquides par exemple) ou par un rendu volumiqueo` l’intensit´ de la couleur rendue est proportionnelle a la densit´ du fluide. u e ` eNous ne d´taillerons pas plus l’affichage dans ce rapport. e4.2 Le mod`le utilis´ e e Les ´quations qui r´gissent le comportement du fluide sont compl`tement e e ediff´rents de celles qui r´gissent les mouvements solides. En effet on se base e esimplement sur les ´quations de Navier-Stokes. Celles-ci permettent de d´crire e ele comportement de beaucoup de fluides r´els. Bien entendu, l’accent est mis e 9
  10. 10. sur la stabilit´, la rapidit´ et le rendu visuel et moins sur la pr´cision et e e ele r´alisme de la simulation. On a donc deux ´quations : la premi`re sur la e e evitesse u et la seconde sur la densit´ ρ e ∂u 2 = −(u · )u + µ u+f (1) ∂t ∂ρ 2 = −(u · )ρ + κ ρ+S (2) ∂t De plus, les interactions avec les solides sont traduites sous forme deconditions aux limites. La variation de densit´ ρ est r´gie par les trois termes de la partie droite e ede l’´quation (2). Le premier terme impose ` la densit´ de suivre la vitesse du e a echamp, le second est un terme de diffusion et le dernier et un terme li´ aux esources. Pour les impl´mentations informatiques, cette ´quation est lin´aris´e e e e eet discr´tis´e. Le calcul de l’´volution de la densit´ suit donc ces trois ´tapes e e e e ecomme l’illustre la figure 8. Fig. 8 – Les ´tapes du calcul de variation de densit´. e e D’une mani`re similaire, la variation de vitesse u de l’´quation (1) est e er´gie par les trois termes de droite : Le premier est appel´ l’advection, le e esecond la diffusion visqueuse et le dernier les forces ext´rieures. Le solveur et eles algorithmes utilis´s est similaire au pr´c´dent. e e e5 Les biblioth`ques disponibles e Sont list´es dans cette section les biblioth`ques de simulation physique en e etemps r´el disponibles actuellement sur le march´. On distingue deux types e ede diffusion possible : les librairies libres, dont le code source est partag´ et eles librairies propri´taires. e 10
  11. 11. 5.1 Biblioth`ques libres e Il est important de noter que ces biblioth`ques peuvent pour la plupart e 1ˆtre utilis´es dans des produit commerciauxe eBullet Physics Bullet Physics est une librairie physique tr`s aboutie, ecertainement la plus aboutie des librairies libres. C’est pourquoi elle est´norm´ment utilis´e dans le domaine ´ducatif ou scientifique. Bullet Physicse e e eest ´galement la librairie physique utilis´e par les logiciels d’images de synth`se e e eprofessionnels Maya et Blender. C’est ´galement la biblioth`que support´e e e epar SONY dans sa console de jeu PlayStation 3. Cette biblioth`que est ´galement une des rares ` proposer une gestion des e e asolides mous. (voir r´f. [1]) eOpen Dynamics Engine ODE est eu biblioth`que physique plus ancienne equi propose la gestion des solides rigides. La librairie est assez vieille et n’estpas orient´e objet, cependant elle a ´t´ utilis´ dans de nombreuses production e ee eprofessionnelles, elle peut donc ˆtre consid´r´e comme enti`rement fiable. e ee e(voir r´f. [2]) eTokamak Physics Tokamak Physics est une librairie physique reconnuecependant peu visible sur internet. La documentation et les exemples d’util-isation sont rares ou de qualit´ moyenne. (voir r´f. [3]) e e5.2 Biblioth`ques propri´taires e e Il est n´cessaire d’acqu´rir une licence pour utiliser les biblioth`ques suiv- e e eantes. Le cout d’acquisition est consid´rable mais les outils de d´veloppement e epropos´s sont d’une qualit´ professionnelle : int´gration avec les moteurs de e e ejeux les plus connus, int´gration avec les outils de mod´lisation 3D, support e etechnique ...PhysX PhysX est un moteur physique fabriqu´ par le soci´t´ Ageia (ra- e eechet´ par NVIDIA), et int´gr´ dans plusieurs moteurs de jeu comme l’Un- e e erealEngine 3. Les cartes graphiques NVIDIA sont maintenant ´quip´es d’un e eacc´l´ration mat´rielle pour les calculs physiques de PhysX. (voir r´f. [4]) ee e e 1 licence zlib ou BSD par exemple 11
  12. 12. Havok Havok est d´velopp´ par la soci´t´ du mˆme nom en Irlande. Depuis e e ee ele lancement de Havok en 2000, le syst`me a ´t´ utilis´ dans pr`s de 150 e ee e ejeux diff´rents. Il est aussi possible de l’utiliser dans des logiciels d’image de esynth`se tels que 3DStudio Max ou Maya. La soci´t´ Havok propose depuis e ee2008 d’autre librairies capable de simuler les solides mous ou les environ-nements destructibles. (voir r´f. [5]) e5.3 Couche d’abstraction Afin de ne pas lier un simulateur ` un moteur physique sp´cifique, une a eid´e est d’ajouter une couche d’abstraction permettant une ind´pendance du e ejeu par rapport au moteur physique choisi. Il est ainsi possible de changerais´ment la librairie physique du simulateur. Une librairie libre existe : Physics eAbstraction Layer[6], elle est compatible avec la plupart des librairies physiquesdu march´.e6 Conclusion Les moteurs physiques en temps r´el sont n´s au moment o` les machines e e usur lesquelles tournaient les simulations ´taient capables de g´rer des calculs e ephysiques complexes. Parce que les calculs physiques sont identiques danstoutes les simulations, des librairies commerciales ou libres ont ´t´ cr´´es et e e eesont utilis´es dans la plupart des projets n´cessitant des calculs physiques. e e 2 A l’instar des GPU , les cartes graphiques commencent a ˆtre dot´es ` e ed’acc´l´rations mat´rielles d´di´es au calcul physique. Ces processeurs sont ee e e eappel´s PPU (Physics Processing Unit). e Plus la puissance de calcul sera ´lev´e, plus la complexit´ des simulations e e ephysiques pourra ˆtre augment´e. Ainsi parmi les am´liorations futures et e e e´videntes figurent l’augmentation du nombre d’objets en interaction, l’aug-ementation de la complexit´ de l’enveloppe des objets (avec des formes con- ecaves par exemple) et la complexification des liaisons entre les objets. Les solides mous font leur apparition depuis peu dans le monde des jeuxvid´os. L` aussi de nombreuses am´liorations pourront ˆtre r´alis´es avec e a e e e el’augmentation des performances des machines. Finalement, en terme de simulation physique, la grande nouveaut´ dans eles jeux vid´os sera l’arriv´e des fluides en temps r´el. e e e 2 Graphics Processing Unit 12
  13. 13. R´f´rences ee [1] http ://www.bulletphysics.com librairie physique Bullet Physics, guide d’utilisateur et Wiki [2] http ://www.ode.org librairie physique Open Dynamics Engine, guide d’utilisateur et diapositives techniques [3] http ://www.tokamakphysics.com/ librairie physique Tokamak Physics [4] http ://developer.nvidia.com/object/physx.html librairie physique PhysX [5] http ://www.havok.com/ librairie physique Havok [6] http ://www.adrianboeing.com/pal/ Physics Abstraction Layer [7] http ://en.wikipedia.org/wiki/Linear complementarity problem [8] http ://en.wikipedia.org/wiki/Lagrange multipliers [9] http ://en.wikipedia.org/wiki/Collision detection[10] http ://en.wikipedia.org/wiki/Bounding volume hierarchies[11] Jos Stam Real-Time Fluid Dynamics for Games[12] http ://srekel.net/pmwiki/pmwiki.php ?n=Projects.FluidSimulation Anders Elfgren et Victor Blomqvist, impl´mentation de Real-Time e Fluid Dynamics for Games de Jos Stam 13

×