les moteurs physiques en temps réel

13
Veille technologique Les moteurs physiques temps r´ eel Steren Giannini 18 mars 2009 Table des mati` eres 1 Introduction 2 1.1 Les particularit´ es du calcul en temps r´ eel ............ 2 1.2 La composition d’un moteur physique .............. 2 2 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´ etection d’intersection ................ 5 2.2.3 La position de repos ................... 6 2.3 Les mod` eles utilis´ es : bas´ es sur le calcul de contraintes .... 6 2.3.1 La friction ......................... 6 2.3.2 Les liaisons ........................ 6 3 Les solides mous 7 4 Les fluides 8 4.1 La discr´ etisation du probl` eme .................. 9 4.2 Le mod` ele utilis´ e ......................... 9 5 Les biblioth` eques disponibles 10 5.1 Biblioth` eques libres ........................ 11 5.2 Biblioth` eques propri´ etaires .................... 11 5.3 Couche d’abstraction ....................... 12 6 Conclusion 12 1

Upload: steren-giannini

Post on 24-May-2015

1.978 views

Category:

Technology


1 download

DESCRIPTION

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

TRANSCRIPT

Page 1: Les moteurs physiques en temps réel

Veille technologiqueLes moteurs physiques temps reel

Steren Giannini

18 mars 2009

Table des matieres

1 Introduction 21.1 Les particularites du calcul en temps reel . . . . . . . . . . . . 21.2 La composition d’un moteur physique . . . . . . . . . . . . . . 2

2 Les solides rigides 32.1 Les enveloppes . . . . . . . . . . . . . . . . . . . . . . . . . . 32.2 La gestion des collisions . . . . . . . . . . . . . . . . . . . . . 4

2.2.1 Les arbres de volumes englobants (BVH) . . . . . . . . 42.2.2 La detection d’intersection . . . . . . . . . . . . . . . . 52.2.3 La position de repos . . . . . . . . . . . . . . . . . . . 6

2.3 Les modeles utilises : bases sur le calcul de contraintes . . . . 62.3.1 La friction . . . . . . . . . . . . . . . . . . . . . . . . . 62.3.2 Les liaisons . . . . . . . . . . . . . . . . . . . . . . . . 6

3 Les solides mous 7

4 Les fluides 84.1 La discretisation du probleme . . . . . . . . . . . . . . . . . . 94.2 Le modele utilise . . . . . . . . . . . . . . . . . . . . . . . . . 9

5 Les bibliotheques disponibles 105.1 Bibliotheques libres . . . . . . . . . . . . . . . . . . . . . . . . 115.2 Bibliotheques proprietaires . . . . . . . . . . . . . . . . . . . . 115.3 Couche d’abstraction . . . . . . . . . . . . . . . . . . . . . . . 12

6 Conclusion 12

1

Page 2: Les moteurs physiques en temps réel

1 Introduction

On appelle moteur physique la partie d’un simulateur responsable descalculs des comportements physiques de la scene.

Les Moteurs physiques sont tres utilises dans les simulations en tempsreel telles que les jeux videos mais aussi dans les simulations scientifiques.On distingue deux types de moteurs physiques : les moteurs temps reel et lesmoteurs de haute precision. Ces derniers sont destine a un calcul de precision,ils refletent un maximum les comportement reels, nous ne les etudieront pasdans 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 etaient vraiment simplistes. Parce quela puissance de calcul des machines sur lesquelles tournent ces simulationsa largement augmente au cours du temps, les developpeurs ont commencea extraire le code relatif aux calculs physiques. C’est ainsi que depuis l’an2000, des librairies de calcul physique en temps reel sont pris en compte dansla conception des jeux.

Meme si des moteurs physiques sont vendus extremement chers, il ex-iste de nombreuses librairies ouvertes et gratuites utilisees tant bien par lesprofesionnels que par les etudiants et autres amateurs.

1.1 Les particularites du calcul en temps reel

Dans la plupart des calculs en temps reel, la vitesse de calcul est plusimportante que la precision de la simulation. Ainsi, le resultat d’un calcul entemps reel est souvent visuellement acceptable mais pas forcement physique-ment correct.

Dans le monde reel, les phenomenes de la mecanique sont actifs en perma-nence, cependant, dans une simulation en temps reel, on peut les desactiverlorsqu’ils ne sont plus visibles dans un souci d’economie de performances.Ainsi par exemple, lorsque pendant un calcul physique d’une scene, la posi-tion d’un objet ne varie plus beaucoup, on peut stopper le calcul et definirl’objet comme fixe.

1.2 La composition d’un moteur physique

Un moteur physique en temps reel est constitue de deux composants :un systeme de detection de collisions et un systeme de simulation physiqueresponsable du mouvement des objets en fonction des forces appliquees.

2

Page 3: Les moteurs physiques en temps réel

2 Les solides rigides

Parce que les solides rigides peuvent modeliser un grand nombre d’objets,ils ont ete les premiers pour lesquels des librairies physiques furent developees.

Un solide pour lequel on desire effectuer des calculs physiques se car-acterise par les variables suivantes :

– position– vitesse– orientation– vitesse angulaire– masse– matrice d’inertie

Fig. 1 – Demonstration d’une simulation physique temps reel de solidesrigides

2.1 Les enveloppes

Les calculs de collision sont tres couteux en performance lorsque les objetsconsideres sont complexes. Bien souvent dans les simulations en temps reel,un modele simplifie du modele 3D vu a l’ecran est utilise pour les calculsphysiques.

De plus, la plupart des moteurs physiques sont capables d’effectuer demeilleurs calculs sur quelques primitives de base, telles que les boites, lesspheres ou les cylindres par exemple. Ainsi, dans un calcul temps reel un

3

Page 4: Les moteurs physiques en temps réel

objet complexe est souvent remplace par un assemblage de primitives debase pour lesquelles le moteur physique est tres performant. Les enveloppescouramment utilisees sont :

– la boite– la sphere– le cylindre– le cone– la capsule– l’enveloppe convexe : le plus petit voume convexe englobant le solide.– le tri-mesh : un maillage quelconque compose de triangles. Ce dernier

est bien entendu le plus couteux en calculs.

Fig. 2 – Quelques enveloppes de collision possibles pour une geometriedonnee

2.2 La gestion des collisions

2.2.1 Les arbres de volumes englobants (BVH)

Une scene 3D est souvent stockee sous forme de graphe. Il en est de memepour les volumes englobants : on utilise des arbres BVH (Bounding VolumeHierarchies). Ces volumes sont la plupart du temps des spheres ou des boitesenglobantes alignees sur les axes.

Les feuilles de cet arbre sont les enveloppes des objets, voir des partiesdes objet. Elles sont regroupees dans des volumes plus gros, qui constituentles nœuds de l’arbre.

Les arbres BVH sont tres efficaces pour determiner les collision entreobjets : 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’interet d’utiliser un arbre BVH pour la detection de collision n’est jus-tifie que si l’arbre est intelligemment cree. Il faut en effet que les objetsprochent se retrouvent sous le meme noeud.

4

Page 5: Les moteurs physiques en temps réel

(a) Scene (b) Arbre BVH

Fig. 3 – Exemple d’organisation d’une scene en volumes englobants

La figure 3 illustre un exemple de detection de collision : On veut savoiravec qui est en contact le solide 1. La chose a determiner est si 1 est encontact 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 possibilite que 1 soit en collision avec 3ou avec 4. On teste donc ces deux objets. Il s’avere que 1 est en collision avec3 et qu’il n’est pas en collision avec 4. Pour finir, il ne reste plus qu’a testersi 1 est en collision avec 2 a l’interieur du volume 1-2, ce qui n’est pas le cas.

2.2.2 La detection d’intersection

Un detecteur de collision peut fonctionner de deux manieres differentes :la collision est detectee a posteriori, c’est a dire apres que la collision aireellement eu lieu, ou a priori, c’est a dire avant que la collision ne se produise.

A posteriori La simulation physique est avancee d’un pas dans le temps,on detecte ensuite si des objets s’intersectent. La liste des objets qui s’inter-sectent ainsi est alors transmise au moteur de calcul physique. cette methode,bien que la plus utilisee, presente un probleme de collisions loupees : si lavitesse de l’objet et superieure a son plus grand rayon, a l’iteration suivantel’objet ne va pas etre en intersection avec la surface de l’autre objet, il l’auratraverse. Des astuces existent pour contourner ce probleme.

A priori La detection est predite a travers le temps a l’aide d’algorithmede prediction. Ces algorithmes prennent en entree la position et le mou-vement des solides de la scenes, ils sortent ensuite une liste de solide qui

5

Page 6: Les moteurs physiques en temps réel

s’intersecteront au prochain pas.La detection d’intersection en elle meme depend du type de primitive,

pour les plus simples comme les spheres il suffit de comparer la distanceentre les centres et la somme des rayons.

2.2.3 La position de repos

Bien souvent, les contacts statiques, appeles (( positions de repos )), sonttraites de maniere differente. Ainsi si deux objets sont en contact mais queleur vitesse relative est en dessous d’un faible seuil, on considere qu’ils sontsolidaires et on n’effectue plus de calcul de collision entre ces deux solides.

2.3 Les modeles utilises : bases sur le calcul de con-traintes

Les equations du mouvement utilisees sont celles des solides rigides dela physique de Newton. La technique est methodique : l’ensemble des con-traintes auxquelles sont soumis les objets sont recensees, puis les deplacementsont calcules. Ces contraintes regroupent les contraintes de non-penetration(les contacts), les contraintes de liaisons et les forces exterieures.

L’etape de resolution de ces equations s’appelle l’integration. Elle estrealisee explicitement, c’est a dire que l’acceleration a l’iteration n+1 estcalculee en fonction des forces a l’iteration n.

On tombe ainsi sur la resolution du probleme appele LCP (Linear Com-plementary Problem) [7]. Resoudre ce probleme revient a minimiser unefonction soumise a des contraintes donnees. Pour y parvenir, on utilise latechnique du Multiplicateur de Lagrange [8]. Le Multiplicateur de Lagrangepermet de trouver les extrema d’une fonction sous contraintes en etudiant lespoints stationnaires d’une autre. Il suffit pour cela de resoudre iterativementl’equation de Lagrange, c’est a dire, une inversion de matrice.

2.3.1 La friction

Le coefficient de Coulomb est utilise car il represente un modele simple :Ceci defini un cone de friction, qui pour des raison de simplicite des calculest approxime en pyramide de friction.

2.3.2 Les liaisons

Deux solides peuvent etre relies par une liaison. Cette liaison va creerune contrainte entre ces deux objets. Ainsi leurs positions et orientations

6

Page 7: Les moteurs physiques en temps réel

peuvent etre relatives les unes par rapport aux autres. Ces liaisons vont creerdes forces que l’integrateur va considerer lors de chaque iteration.

(a) Spherique (b) Pivot (c) Glissiere

Fig. 4 – Differentes liaisons entre deux solides

3 Les solides mous

Les principales applications sont entre autres les objets mous et elastiques,les vetements, les cheveux ou les cordes. On peut meme realiser avec ces outilsune surface de liquide grossier.

Fig. 5 – Demonstration d’une simulation physique temps reel de solides mous

La technique est beaucoup plus simple car on considere maintenant unensemble de points relies par des liaisons elastiques. Il s’agit d’une surfaceregie par un systeme masse-ressort : chaque point possede une position, unevitesse et une masse. Ces points sont relies entre eux par des raideurs. Commeon peut le voir sur la figure 6, il existe differentes facons de considerer lemaillage : on peut considerer que chaque arrete de la surface est un ressortou alors, parce que les modeles 3D sont souvent constitues de faces a quatre

7

Page 8: Les moteurs physiques en temps réel

cotes, on peut considerer de relier les points en carres. Ce chois a un effet surla dynamique de l’objet : dans le cas de faces triangulaires, les perturbationstransversales seront plus restitues que dans le cas de faces carrees.

(a) faces en triangles (b) faces en carre

Fig. 6 – Les solides mous : systemes masse-ressort

Concernant la gestion de la collision, on ne parle plus de volume en-globant. Chaque point du solide deformable est considere comme solide etest teste pour d’eventuelles collisions avec d’autres objets solides. On peutde plus considerer les collisions du maillage sur lui meme (dans le cas d’unesimulation de tissu par exemple), on teste ainsi les collisions entre les pointsde l’objet et les faces de ce meme objet.

4 Les fluides

La simulation en temps reel des fluides vise a simuler des comportementsliquides tels que les rivieres ou les oceans mais aussi les comportementsgazeux tels que les fumees ou les nuages.

8

Page 9: Les moteurs physiques en temps réel

Fig. 7 – Demonstration d’une simulation physique en temps reel d’un fluideen 2 dimensions [12]

La simulation en temps reel des fluides est encore actuellement au stadeexperimental. Actuellement lorsqu’elle est presente, chaque simulateur implementesa propre technique. Il n’existe quasiment aucune librairie proprietaire oulibre de simulation en temps reel de fluides. Nous allons donc etudier lesconcepts de base communs a ces differentes experimentations.

4.1 La discretisation du probleme

Il n’est plus possible de parler de geometrie ou de masse. L’espace danslequel la simulation est effectuee est discretise en une grille volumique aveccomme volumes elementaires des cubes. Chacun de ces cubes possede en soncentre les informations de densite et de vitesse. Ce sont ces informationsqui sont ensuite traduitent graphiquement par le processus d’affichage. Ceprocessus d’afficage peut s’effectuer de differente manieres : par exemple parl’affichage de particules suivant le mouvement du fluide, par le calcul de lasurface du fluide (pour les liquides par exemple) ou par un rendu volumiqueou l’intensite de la couleur rendue est proportionnelle a la densite du fluide.Nous ne detaillerons pas plus l’affichage dans ce rapport.

4.2 Le modele utilise

Les equations qui regissent le comportement du fluide sont completementdifferents de celles qui regissent les mouvements solides. En effet on se basesimplement sur les equations de Navier-Stokes. Celles-ci permettent de decrirele comportement de beaucoup de fluides reels. Bien entendu, l’accent est mis

9

Page 10: Les moteurs physiques en temps réel

sur la stabilite, la rapidite et le rendu visuel et moins sur la precision etle realisme de la simulation. On a donc deux equations : la premiere sur lavitesse u et la seconde sur la densite ρ

∂u

∂t= −(u · 5)u + µ52 u + f (1)

∂ρ

∂t= −(u · 5)ρ+ κ52 ρ+ S (2)

De plus, les interactions avec les solides sont traduites sous forme deconditions aux limites.

La variation de densite ρ est regie par les trois termes de la partie droitede l’equation (2). Le premier terme impose a la densite de suivre la vitesse duchamp, le second est un terme de diffusion et le dernier et un terme lie auxsources. Pour les implementations informatiques, cette equation est lineariseeet discretisee. Le calcul de l’evolution de la densite suit donc ces trois etapescomme l’illustre la figure 8.

Fig. 8 – Les etapes du calcul de variation de densite.

D’une maniere similaire, la variation de vitesse u de l’equation (1) estregie par les trois termes de droite : Le premier est appele l’advection, lesecond la diffusion visqueuse et le dernier les forces exterieures. Le solveur etles algorithmes utilises est similaire au precedent.

5 Les bibliotheques disponibles

Sont listees dans cette section les bibliotheques de simulation physique entemps reel disponibles actuellement sur le marche. On distingue deux typesde diffusion possible : les librairies libres, dont le code source est partage etles librairies proprietaires.

10

Page 11: Les moteurs physiques en temps réel

5.1 Bibliotheques libres

Il est important de noter que ces bibliotheques peuvent pour la plupartetre utilisees dans des produit commerciaux1

Bullet Physics Bullet Physics est une librairie physique tres aboutie,certainement la plus aboutie des librairies libres. C’est pourquoi elle estenormement utilisee dans le domaine educatif ou scientifique. Bullet Physicsest egalement la librairie physique utilisee par les logiciels d’images de syntheseprofessionnels Maya et Blender. C’est egalement la bibliotheque supporteepar SONY dans sa console de jeu PlayStation 3.

Cette bibliotheque est egalement une des rares a proposer une gestion dessolides mous. (voir ref. [1])

Open Dynamics Engine ODE est eu bibliotheque physique plus anciennequi propose la gestion des solides rigides. La librairie est assez vieille et n’estpas orientee objet, cependant elle a ete utilise dans de nombreuses productionprofessionnelles, elle peut donc etre consideree comme entierement fiable.(voir ref. [2])

Tokamak Physics Tokamak Physics est une librairie physique reconnuecependant peu visible sur internet. La documentation et les exemples d’util-isation sont rares ou de qualite moyenne. (voir ref. [3])

5.2 Bibliotheques proprietaires

Il est necessaire d’acquerir une licence pour utiliser les bibliotheques suiv-antes. Le cout d’acquisition est considerable mais les outils de developpementproposes sont d’une qualite professionnelle : integration avec les moteurs dejeux les plus connus, integration avec les outils de modelisation 3D, supporttechnique ...

PhysX PhysX est un moteur physique fabrique par le societe Ageia (ra-chete par NVIDIA), et integre dans plusieurs moteurs de jeu comme l’Un-realEngine 3. Les cartes graphiques NVIDIA sont maintenant equipees d’unacceleration materielle pour les calculs physiques de PhysX. (voir ref. [4])

1licence zlib ou BSD par exemple

11

Page 12: Les moteurs physiques en temps réel

Havok Havok est developpe par la societe du meme nom en Irlande. Depuisle lancement de Havok en 2000, le systeme a ete utilise dans pres de 150jeux differents. Il est aussi possible de l’utiliser dans des logiciels d’image desynthese tels que 3DStudio Max ou Maya. La societe Havok propose depuis2008 d’autre librairies capable de simuler les solides mous ou les environ-nements destructibles. (voir ref. [5])

5.3 Couche d’abstraction

Afin de ne pas lier un simulateur a un moteur physique specifique, uneidee est d’ajouter une couche d’abstraction permettant une independance dujeu par rapport au moteur physique choisi. Il est ainsi possible de changeraisement la librairie physique du simulateur. Une librairie libre existe : PhysicsAbstraction Layer[6], elle est compatible avec la plupart des librairies physiquesdu marche.

6 Conclusion

Les moteurs physiques en temps reel sont nes au moment ou les machinessur lesquelles tournaient les simulations etaient capables de gerer des calculsphysiques complexes. Parce que les calculs physiques sont identiques danstoutes les simulations, des librairies commerciales ou libres ont ete creees etsont utilisees dans la plupart des projets necessitant des calculs physiques.

A l’instar des GPU2, les cartes graphiques commencent a etre doteesd’accelerations materielles dediees au calcul physique. Ces processeurs sontappeles PPU (Physics Processing Unit).

Plus la puissance de calcul sera elevee, plus la complexite des simulationsphysiques pourra etre augmentee. Ainsi parmi les ameliorations futures etevidentes figurent l’augmentation du nombre d’objets en interaction, l’aug-mentation de la complexite de l’enveloppe des objets (avec des formes con-caves par exemple) et la complexification des liaisons entre les objets.

Les solides mous font leur apparition depuis peu dans le monde des jeuxvideos. La aussi de nombreuses ameliorations pourront etre realisees avecl’augmentation des performances des machines.

Finalement, en terme de simulation physique, la grande nouveaute dansles jeux videos sera l’arrivee des fluides en temps reel.

2Graphics Processing Unit

12

Page 13: Les moteurs physiques en temps réel

References

[1] http ://www.bulletphysics.com librairie physique Bullet Physics,guide d’utilisateur et Wiki

[2] http ://www.ode.org librairie physique Open Dynamics Engine, guided’utilisateur et diapositives techniques

[3] http ://www.tokamakphysics.com/ librairie physique TokamakPhysics

[4] http ://developer.nvidia.com/object/physx.html librairiephysique 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, implementation de Real-TimeFluid Dynamics for Games de Jos Stam

13