SlideShare una empresa de Scribd logo
1 de 13
Descargar para leer sin conexión
Veille technologique
           Les moteurs physiques temps r´el
                                        e
                             Steren Giannini
                              18 mars 2009


Table des mati`res
              e
1 Introduction                                                                        2
  1.1 Les particularit´s du calcul en temps r´el . . . . . . . . . . . .
                      e                      e                                        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´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 . . . . . . . . . . . . . . . . . . . .    .   .   .   .    6

3 Les solides mous                                                                    7

4 Les fluides                                                                          8
  4.1 La discr´tisation du probl`me . . . . . . . . . . . . . . . . . .
              e                 e                                                     9
  4.2 Le mod`le utilis´ . . . . . . . . . . . . . . . . . . . . . . . . .
              e        e                                                              9

5 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 . . . . . . . . . . . . . . . . . . . . . . . 12

6 Conclusion                                                                         12


                                      1
1     Introduction
     On appelle moteur physique la partie d’un simulateur responsable des
calculs des comportements physiques de la sc`ne.e
     Les Moteurs physiques sont tr`s utilis´s dans les simulations en temps
                                     e       e
r´el telles que les jeux vid´os mais aussi dans les simulations scientifiques.
 e                           e
On distingue deux types de moteurs physiques : les moteurs temps r´el et les
                                                                      e
moteurs de haute pr´cision. Ces derniers sont destin´ a un calcul de pr´cision,
                      e                               e`                e
ils refl`tent un maximum les comportement r´els, nous ne les ´tudieront pas
        e                                       e                e
dans ce dossier.
     Auparavant, il n’y avait pas de distinction entre le moteur du simulateur
et la gestion de la physique a proprement parler. Ceci s’explique par le fait
que les calculs physiques mis en jeu ´taient vraiment simplistes. Parce que
                                       e
la puissance de calcul des machines sur lesquelles tournent ces simulations
a largement augment´ au cours du temps, les d´veloppeurs ont commenc´
                        e                           e                         e
a 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
                                                   e
la conception des jeux.
     Mˆme si des moteurs physiques sont vendus extr`mement chers, il ex-
       e                                                  e
iste de nombreuses librairies ouvertes et gratuites utilis´es tant bien par les
                                                            e
profesionnels que par les ´tudiants et autres amateurs.
                           e

1.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
                                            e
importante que la pr´cision de la simulation. Ainsi, le r´sultat d’un calcul en
                      e                                  e
temps r´el est souvent visuellement acceptable mais pas forc´ment physique-
        e                                                     e
ment correct.
    Dans le monde r´el, les ph´nom`nes de la m´canique sont actifs en perma-
                    e         e    e           e
nence, cependant, dans une simulation en temps r´el, on peut les d´sactiver
                                                   e                  e
lorsqu’ils ne sont plus visibles dans un souci d’´conomie de performances.
                                                 e
Ainsi par exemple, lorsque pendant un calcul physique d’une sc`ne, la posi-
                                                                   e
tion d’un objet ne varie plus beaucoup, on peut stopper le calcul et d´finir
                                                                          e
l’objet comme fixe.

1.2    La composition d’un moteur physique
   Un moteur physique en temps r´el est constitu´ de deux composants :
                                    e              e
un syst`me de d´tection de collisions et un syst`me de simulation physique
       e       e                                e
responsable du mouvement des objets en fonction des forces appliqu´es.
                                                                   e



                                      2
2     Les solides rigides
     Parce que les solides rigides peuvent mod´liser un grand nombre d’objets,
                                                 e
ils 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-
                                   e
act´rise par les variables suivantes :
    e
     – position
     – vitesse
     – orientation
     – vitesse angulaire
     – masse
     – matrice d’inertie




Fig. 1 – D´monstration d’une simulation physique temps r´el de solides
          e                                             e
rigides


2.1    Les enveloppes
   Les calculs de collision sont tr`s couteux en performance lorsque les objets
                                   e
consid´r´s sont complexes. Bien souvent dans les simulations en temps r´el,
      ee                                                                   e
un mod`le simplifi´ du mod`le 3D vu ` l’´cran est utilis´ pour les calculs
        e          e           e          a e               e
physiques.
   De plus, la plupart des moteurs physiques sont capables d’effectuer de
meilleurs calculs sur quelques primitives de base, telles que les boites, les
sph`res ou les cylindres par exemple. Ainsi, dans un calcul temps r´el un
   e                                                                     e


                                        3
objet complexe est souvent remplac´ par un assemblage de primitives de
                                     e
base pour lesquelles le moteur physique est tr`s performant. Les enveloppes
                                              e
couramment 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 e
donn´e
    e

2.2     La gestion des collisions
2.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                                     e
pour les volumes englobants : on utilise des arbres BVH (Bounding Volume
Hierarchies). Ces volumes sont la plupart du temps des sph`res ou des boites
                                                            e
englobantes align´es sur les axes.
                   e
    Les feuilles de cet arbre sont les enveloppes des objets, voir des parties
des objet. Elles sont regroup´es dans des volumes plus gros, qui constituent
                               e
les nœuds de l’arbre.
    Les arbres BVH sont tr`s efficaces pour d´terminer les collision entre
                               e                  e
objets : si le volume englobant d’un objet n’intersecte pas un volume plus
haut 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                                     e
tifi´ que si l’arbre est intelligemment cr´´. Il faut en effet que les objets
   e                                       ee
prochent se retrouvent sous le mˆme noeud.
                                   e

                                      4
(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
                                            e
avec qui est en contact le solide 1. La chose ` d´terminer est si 1 est en
                                                    a e
contact avec le volume 5-6. Ce n’est pas le cas donc on sait que 1 ne est ni
en contact avec 5, ni avec 6. On teste ensuite si 1 entre en contact avec le
volume 3-4. C’est le cas, il y a donc possibilit´ que 1 soit en collision avec 3
                                                  e
ou avec 4. On teste donc ces deux objets. Il s’av`re que 1 est en collision avec
                                                    e
3 et qu’il n’est pas en collision avec 4. Pour finir, il ne reste plus qu’` tester
                                                                         a
si 1 est en collision avec 2 a l’int´rieur du volume 1-2, ce qui n’est pas le cas.
                             `      e

2.2.2   La d´tection d’intersection
            e
    Un d´tecteur de collision peut fonctionner de deux mani`res diff´rentes :
          e                                                        e        e
la collision est d´tect´e a posteriori, c’est a dire apr`s que la collision ai
                  e     e                        `          e
r´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,
                                                    e
on d´tecte ensuite si des objets s’intersectent. La liste des objets qui s’inter-
     e
sectent ainsi est alors transmise au moteur de calcul physique. cette m´thode,
                                                                          e
bien que la plus utilis´e, pr´sente un probl`me de collisions loup´es : si la
                         e    e                e                      e
vitesse de l’objet et sup´rieure a son plus grand rayon, a l’it´ration suivante
                           e     `                         `    e
l’objet ne va pas ˆtre en intersection avec la surface de l’autre objet, il l’aura
                   e
travers´. Des astuces existent pour contourner ce probl`me.
        e                                                  e

A 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                                            e
vement des solides de la sc`nes, ils sortent ensuite une liste de solide qui
                           e


                                         5
s’intersecteront au prochain pas.
    La d´tection d’intersection en elle mˆme d´pend du type de primitive,
         e                                e   e
pour les plus simples comme les sph`res il suffit de comparer la distance
                                       e
entre 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
                                                e
trait´s de mani`re diff´rente. Ainsi si deux objets sont en contact mais que
     e           e      e
leur vitesse relative est en dessous d’un faible seuil, on consid`re qu’ils sont
                                                                 e
solidaires 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                                e
la physique de Newton. La technique est m´thodique : l’ensemble des con-
                                                e
traintes auxquelles sont soumis les objets sont recens´es, puis les d´placement
                                                        e              e
sont 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                          e
r´alis´e explicitement, c’est a dire que l’acc´l´ration ` l’it´ration n+1 est
 e e                           `                 ee        a      e
calcul´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          e
plementary 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
                    `                       e
technique du Multiplicateur de Lagrange [8]. Le Multiplicateur de Lagrange
permet de trouver les extrema d’une fonction sous contraintes en ´tudiant les
                                                                      e
points stationnaires d’une autre. Il suffit pour cela de r´soudre it´rativement
                                                           e         e
l’´quation de Lagrange, c’est ` dire, une inversion de matrice.
  e                             a

2.3.1   La friction
    Le coefficient de Coulomb est utilis´ car il repr´sente un mod`le simple :
                                      e            e            e
Ceci d´fini un cˆne de friction, qui pour des raison de simplicit´ des calcul
       e       o                                                e
est approxim´ en pyramide de friction.
            e

2.3.2   Les liaisons
   Deux solides peuvent ˆtre reli´s par une liaison. Cette liaison va cr´er
                         e       e                                      e
une contrainte entre ces deux objets. Ainsi leurs positions et orientations


                                       6
peuvent ˆtre relatives les unes par rapport aux autres. Ces liaisons vont cr´er
         e                                                                  e
des 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
                           e


3     Les solides mous
    Les principales applications sont entre autres les objets mous et ´lastiques,
                                                                      e
les vˆtements, les cheveux ou les cordes. On peut mˆme r´aliser avec ces outils
     e                                                e    e
une 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
                                                             e
ensemble de points reli´s par des liaisons ´lastiques. Il s’agit d’une surface
                        e                     e
r´gie par un syst`me masse-ressort : chaque point poss`de une position, une
 e               e                                        e
vitesse et une masse. Ces points sont reli´s entre eux par des raideurs. Comme
                                          e
on peut le voir sur la figure 6, il existe diff´rentes fa¸ons de consid´rer le
                                                e         c               e
maillage : on peut consid´rer que chaque arrˆte de la surface est un ressort
                          e                     e
ou alors, parce que les mod`les 3D sont souvent constitu´s de faces a quatre
                            e                               e           `

                                       7
cot´s, on peut consid´rer de relier les points en carr´s. Ce chois a un effet sur
   e                 e                                e
la dynamique de l’objet : dans le cas de faces triangulaires, les perturbations
transversales 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                     ee
est test´ pour d’´ventuelles collisions avec d’autres objets solides. On peut
        e          e
de plus consid´rer les collisions du maillage sur lui mˆme (dans le cas d’une
                e                                      e
simulation de tissu par exemple), on teste ainsi les collisions entre les points
de l’objet et les faces de ce mˆme objet.
                                e


4    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             e
gazeux tels que les fum´es ou les nuages.
                        e




                                           8
Fig. 7 – D´monstration d’une simulation physique en temps r´el d’un fluide
          e                                                e
en 2 dimensions [12]

    La simulation en temps r´el des fluides est encore actuellement au stade
                             e
exp´rimental. Actuellement lorsqu’elle est pr´sente, chaque simulateur impl´mente
    e                                        e                             e
sa propre technique. Il n’existe quasiment aucune librairie propri´taire ou
                                                                     e
libre de simulation en temps r´el de fluides. Nous allons donc ´tudier les
                                e                                  e
concepts de base communs a ces diff´rentes exp´rimentations.
                           `         e           e

4.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 e
lequel la simulation est effectu´e est discr´tis´ en une grille volumique avec
                                e          e e
comme volumes ´l´mentaires des cubes. Chacun de ces cubes poss`de en son
                  ee                                                e
centre les informations de densit´ et de vitesse. Ce sont ces informations
                                    e
qui sont ensuite traduitent graphiquement par le processus d’affichage. Ce
processus d’afficage peut s’effectuer de diff´rente mani`res : par exemple par
                                            e           e
l’affichage de particules suivant le mouvement du fluide, par le calcul de la
surface du fluide (pour les liquides par exemple) ou par un rendu volumique
o` l’intensit´ de la couleur rendue est proportionnelle a la densit´ du fluide.
  u           e                                         `          e
Nous ne d´taillerons pas plus l’affichage dans ce rapport.
            e

4.2    Le mod`le utilis´
             e         e
    Les ´quations qui r´gissent le comportement du fluide sont compl`tement
        e              e                                             e
diff´rents de celles qui r´gissent les mouvements solides. En effet on se base
    e                    e
simplement sur les ´quations de Navier-Stokes. Celles-ci permettent de d´crire
                   e                                                    e
le comportement de beaucoup de fluides r´els. Bien entendu, l’accent est mis
                                          e

                                      9
sur la stabilit´, la rapidit´ et le rendu visuel et moins sur la pr´cision et
               e            e                                      e
le r´alisme de la simulation. On a donc deux ´quations : la premi`re sur la
    e                                           e                  e
vitesse 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 de
conditions aux limites.
    La variation de densit´ ρ est r´gie par les trois termes de la partie droite
                           e        e
de l’´quation (2). Le premier terme impose ` la densit´ de suivre la vitesse du
     e                                        a          e
champ, le second est un terme de diffusion et le dernier et un terme li´ aux  e
sources. Pour les impl´mentations informatiques, cette ´quation est lin´aris´e
                       e                                   e               e   e
et discr´tis´e. Le calcul de l’´volution de la densit´ suit donc ces trois ´tapes
        e e                    e                     e                     e
comme 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                                              e
r´gie par les trois termes de droite : Le premier est appel´ l’advection, le
 e                                                             e
second la diffusion visqueuse et le dernier les forces ext´rieures. Le solveur et
                                                         e
les algorithmes utilis´s est similaire au pr´c´dent.
                      e                     e e


5     Les biblioth`ques disponibles
                  e
    Sont list´es dans cette section les biblioth`ques de simulation physique en
              e                                 e
temps r´el disponibles actuellement sur le march´. On distingue deux types
         e                                           e
de diffusion possible : les librairies libres, dont le code source est partag´ et
                                                                            e
les librairies propri´taires.
                     e




                                       10
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 commerciaux
e          e

Bullet Physics Bullet Physics est une librairie physique tr`s aboutie, e
certainement la plus aboutie des librairies libres. C’est pourquoi elle est
´norm´ment utilis´e dans le domaine ´ducatif ou scientifique. Bullet Physics
e      e            e                    e
est ´galement la librairie physique utilis´e par les logiciels d’images de synth`se
    e                                      e                                    e
professionnels Maya et Blender. C’est ´galement la biblioth`que support´e
                                            e                      e            e
par SONY dans sa console de jeu PlayStation 3.
    Cette biblioth`que est ´galement une des rares ` proposer une gestion des
                   e        e                          a
solides mous. (voir r´f. [1])
                      e

Open Dynamics Engine ODE est eu biblioth`que physique plus ancienne
                                                    e
qui propose la gestion des solides rigides. La librairie est assez vieille et n’est
pas orient´e objet, cependant elle a ´t´ utilis´ dans de nombreuses production
           e                         ee        e
professionnelles, elle peut donc ˆtre consid´r´e comme enti`rement fiable.
                                  e             ee               e
(voir r´f. [2])
       e

Tokamak Physics Tokamak Physics est une librairie physique reconnue
cependant peu visible sur internet. La documentation et les exemples d’util-
isation sont rares ou de qualit´ moyenne. (voir r´f. [3])
                               e                 e

5.2       Biblioth`ques propri´taires
                  e           e
   Il est n´cessaire d’acqu´rir une licence pour utiliser les biblioth`ques suiv-
           e               e                                          e
antes. Le cout d’acquisition est consid´rable mais les outils de d´veloppement
                                        e                          e
propos´s sont d’une qualit´ professionnelle : int´gration avec les moteurs de
       e                   e                      e
jeux les plus connus, int´gration avec les outils de mod´lisation 3D, support
                         e                                 e
technique ...

PhysX PhysX est un moteur physique fabriqu´ par le soci´t´ Ageia (ra-
                                                   e          ee
chet´ par NVIDIA), et int´gr´ dans plusieurs moteurs de jeu comme l’Un-
    e                      e e
realEngine 3. Les cartes graphiques NVIDIA sont maintenant ´quip´es d’un
                                                               e     e
acc´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
Havok Havok est d´velopp´ par la soci´t´ du mˆme nom en Irlande. Depuis
                       e      e            ee        e
le lancement de Havok en 2000, le syst`me a ´t´ utilis´ dans pr`s de 150
                                            e       ee       e          e
jeux diff´rents. Il est aussi possible de l’utiliser dans des logiciels d’image de
        e
synth`se tels que 3DStudio Max ou Maya. La soci´t´ Havok propose depuis
      e                                                ee
2008 d’autre librairies capable de simuler les solides mous ou les environ-
nements destructibles. (voir r´f. [5])
                               e

5.3         Couche d’abstraction
    Afin de ne pas lier un simulateur ` un moteur physique sp´cifique, une
                                        a                            e
id´e est d’ajouter une couche d’abstraction permettant une ind´pendance du
  e                                                                e
jeu par rapport au moteur physique choisi. Il est ainsi possible de changer
ais´ment la librairie physique du simulateur. Une librairie libre existe : Physics
   e
Abstraction Layer[6], elle est compatible avec la plupart des librairies physiques
du march´.e


6         Conclusion
    Les moteurs physiques en temps r´el sont n´s au moment o` les machines
                                       e         e               u
sur lesquelles tournaient les simulations ´taient capables de g´rer des calculs
                                          e                     e
physiques complexes. Parce que les calculs physiques sont identiques dans
toutes les simulations, des librairies commerciales ou libres ont ´t´ cr´´es et
                                                                   e e ee
sont 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       e
d’acc´l´rations mat´rielles d´di´es au calcul physique. Ces processeurs sont
      ee             e         e e
appel´s PPU (Physics Processing Unit).
      e
    Plus la puissance de calcul sera ´lev´e, plus la complexit´ des simulations
                                     e e                      e
physiques 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-
e
mentation de la complexit´ de l’enveloppe des objets (avec des formes con-
                             e
caves par exemple) et la complexification des liaisons entre les objets.
    Les solides mous font leur apparition depuis peu dans le monde des jeux
vid´os. L` aussi de nombreuses am´liorations pourront ˆtre r´alis´es avec
    e     a                            e                    e      e e
l’augmentation des performances des machines.
    Finalement, en terme de simulation physique, la grande nouveaut´ dans
                                                                        e
les jeux vid´os sera l’arriv´e des fluides en temps r´el.
             e              e                         e
    2
        Graphics Processing Unit




                                       12
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

Más contenido relacionado

La actualidad más candente

La actualidad más candente (20)

Virtual reality
Virtual realityVirtual reality
Virtual reality
 
Virtual / Artificial Reality-Augmented Reality
Virtual / Artificial Reality-Augmented RealityVirtual / Artificial Reality-Augmented Reality
Virtual / Artificial Reality-Augmented Reality
 
Virtual Reality
Virtual RealityVirtual Reality
Virtual Reality
 
Virtual Reality
Virtual RealityVirtual Reality
Virtual Reality
 
Comp 4010 2021 Lecture1-Introduction to XR
Comp 4010 2021 Lecture1-Introduction to XRComp 4010 2021 Lecture1-Introduction to XR
Comp 4010 2021 Lecture1-Introduction to XR
 
Lecture7 Example VR Applications
Lecture7 Example VR ApplicationsLecture7 Example VR Applications
Lecture7 Example VR Applications
 
Virtual Reality Presentation
Virtual Reality PresentationVirtual Reality Presentation
Virtual Reality Presentation
 
Virtual Reality - With Demo Video
Virtual Reality - With Demo VideoVirtual Reality - With Demo Video
Virtual Reality - With Demo Video
 
Virtual reality
Virtual realityVirtual reality
Virtual reality
 
Virtual reality
Virtual realityVirtual reality
Virtual reality
 
virtual reality
virtual realityvirtual reality
virtual reality
 
VIRTUAL REALITY PPT
VIRTUAL REALITY PPT VIRTUAL REALITY PPT
VIRTUAL REALITY PPT
 
Virtual Reality
Virtual RealityVirtual Reality
Virtual Reality
 
Virtual Reality
Virtual RealityVirtual Reality
Virtual Reality
 
Virtual reality (vr)
Virtual reality (vr)Virtual reality (vr)
Virtual reality (vr)
 
Augmented Reality
Augmented RealityAugmented Reality
Augmented Reality
 
AR-VR Workshop
AR-VR WorkshopAR-VR Workshop
AR-VR Workshop
 
Vitual Reality
Vitual RealityVitual Reality
Vitual Reality
 
Virtual Reality
Virtual RealityVirtual Reality
Virtual Reality
 
Virtual reality
Virtual realityVirtual reality
Virtual reality
 

Destacado

Propriétés et désignation de la Fonte2
Propriétés et désignation de la Fonte2Propriétés et désignation de la Fonte2
Propriétés et désignation de la Fonte2youri59490
 
Coursmtallurgie 111011084551-phpapp02
Coursmtallurgie 111011084551-phpapp02Coursmtallurgie 111011084551-phpapp02
Coursmtallurgie 111011084551-phpapp02Mahmoud Hakmouni
 
P5 classif acier 2013 a
P5 classif acier 2013 aP5 classif acier 2013 a
P5 classif acier 2013 aboujneh
 
P3 cours cc 2013 a
P3 cours cc 2013 aP3 cours cc 2013 a
P3 cours cc 2013 aboujneh
 
Le questionnaire a choix multiples
Le questionnaire a choix multiplesLe questionnaire a choix multiples
Le questionnaire a choix multiplesKelly Moraes
 
Correction Examen 2014-2015 RDM
Correction Examen 2014-2015 RDMCorrection Examen 2014-2015 RDM
Correction Examen 2014-2015 RDMMouna Souissi
 
exercices gestion de stock
exercices gestion de stock exercices gestion de stock
exercices gestion de stock Yassine Badri
 
Td sd m-apprentisbtp-2013-14
Td sd m-apprentisbtp-2013-14Td sd m-apprentisbtp-2013-14
Td sd m-apprentisbtp-2013-14Mouna Souissi
 
cours cristallographie
cours cristallographiecours cristallographie
cours cristallographieMouna Souissi
 
P2 cours fa 2013 a
P2 cours fa 2013 aP2 cours fa 2013 a
P2 cours fa 2013 aboujneh
 

Destacado (20)

Propriétés et désignation de la Fonte2
Propriétés et désignation de la Fonte2Propriétés et désignation de la Fonte2
Propriétés et désignation de la Fonte2
 
H2 9 b
H2 9 bH2 9 b
H2 9 b
 
H3 2
H3 2H3 2
H3 2
 
Coursmtallurgie 111011084551-phpapp02
Coursmtallurgie 111011084551-phpapp02Coursmtallurgie 111011084551-phpapp02
Coursmtallurgie 111011084551-phpapp02
 
P5 classif acier 2013 a
P5 classif acier 2013 aP5 classif acier 2013 a
P5 classif acier 2013 a
 
P3 cours cc 2013 a
P3 cours cc 2013 aP3 cours cc 2013 a
P3 cours cc 2013 a
 
Le questionnaire a choix multiples
Le questionnaire a choix multiplesLe questionnaire a choix multiples
Le questionnaire a choix multiples
 
Correction Examen 2014-2015 RDM
Correction Examen 2014-2015 RDMCorrection Examen 2014-2015 RDM
Correction Examen 2014-2015 RDM
 
exercices gestion de stock
exercices gestion de stock exercices gestion de stock
exercices gestion de stock
 
Td sd m-apprentisbtp-2013-14
Td sd m-apprentisbtp-2013-14Td sd m-apprentisbtp-2013-14
Td sd m-apprentisbtp-2013-14
 
cours cristallographie
cours cristallographiecours cristallographie
cours cristallographie
 
P2 cours fa 2013 a
P2 cours fa 2013 aP2 cours fa 2013 a
P2 cours fa 2013 a
 
H2 14
H2 14H2 14
H2 14
 
H2 13
H2 13H2 13
H2 13
 
H2 5
H2 5H2 5
H2 5
 
H2 1
H2 1H2 1
H2 1
 
H2 9 a
H2 9 aH2 9 a
H2 9 a
 
H2 4
H2 4H2 4
H2 4
 
C2 1 b (1)
C2 1 b (1)C2 1 b (1)
C2 1 b (1)
 
H2 9 a
H2 9 aH2 9 a
H2 9 a
 

Similar a Les moteurs physiques en temps réel

Similar a Les moteurs physiques en temps réel (20)

cours de Matlab
 cours de Matlab cours de Matlab
cours de Matlab
 
defour phd
defour phddefour phd
defour phd
 
Analyse2 00
Analyse2 00Analyse2 00
Analyse2 00
 
Badis these
Badis theseBadis these
Badis these
 
8.02 introduction to electrodynamics 3e-griffiths
8.02 introduction to electrodynamics 3e-griffiths8.02 introduction to electrodynamics 3e-griffiths
8.02 introduction to electrodynamics 3e-griffiths
 
Rapport
RapportRapport
Rapport
 
Report MyProof
Report MyProofReport MyProof
Report MyProof
 
Jmc habile
Jmc habileJmc habile
Jmc habile
 
Matlab for engineer
Matlab for engineer Matlab for engineer
Matlab for engineer
 
notes-de-cours-de-fouille-de-donnees.pdf
notes-de-cours-de-fouille-de-donnees.pdfnotes-de-cours-de-fouille-de-donnees.pdf
notes-de-cours-de-fouille-de-donnees.pdf
 
doc
docdoc
doc
 
Deep Learning : Application à la reconnaissance d’objets de classes multiples...
Deep Learning : Application à la reconnaissance d’objets de classes multiples...Deep Learning : Application à la reconnaissance d’objets de classes multiples...
Deep Learning : Application à la reconnaissance d’objets de classes multiples...
 
Algo
AlgoAlgo
Algo
 
Maths
MathsMaths
Maths
 
Rapport
RapportRapport
Rapport
 
Rapport
RapportRapport
Rapport
 
Programme_MEA
Programme_MEAProgramme_MEA
Programme_MEA
 
Cours10
Cours10Cours10
Cours10
 
Architectures logicielles et materielles
Architectures logicielles et materiellesArchitectures logicielles et materielles
Architectures logicielles et materielles
 
Analyses factorielles.pdf
Analyses factorielles.pdfAnalyses factorielles.pdf
Analyses factorielles.pdf
 

Más de Steren Giannini

Windows 8 app template feedback
Windows 8 app template feedbackWindows 8 app template feedback
Windows 8 app template feedbackSteren Giannini
 
Conquérir l'internet des objets avec les technologies web. (Kiwi Party 2012)
Conquérir l'internet des objets avec les technologies web. (Kiwi Party 2012)Conquérir l'internet des objets avec les technologies web. (Kiwi Party 2012)
Conquérir l'internet des objets avec les technologies web. (Kiwi Party 2012)Steren Giannini
 
Joshfire factory: Using NodeJS in production
Joshfire factory: Using NodeJS in productionJoshfire factory: Using NodeJS in production
Joshfire factory: Using NodeJS in productionSteren Giannini
 
TIPE Les milieux granulaires
TIPE Les milieux granulairesTIPE Les milieux granulaires
TIPE Les milieux granulairesSteren Giannini
 
Inkscape industrial project report
Inkscape industrial project reportInkscape industrial project report
Inkscape industrial project reportSteren Giannini
 
Creative commons internship report
Creative commons internship reportCreative commons internship report
Creative commons internship reportSteren Giannini
 
Creative Commons Internship - Last day
Creative Commons Internship - Last dayCreative Commons Internship - Last day
Creative Commons Internship - Last daySteren Giannini
 
Les moteurs physiques en temps réel
Les moteurs physiques en temps réelLes moteurs physiques en temps réel
Les moteurs physiques en temps réelSteren Giannini
 

Más de Steren Giannini (9)

Windows 8 app template feedback
Windows 8 app template feedbackWindows 8 app template feedback
Windows 8 app template feedback
 
Conquérir l'internet des objets avec les technologies web. (Kiwi Party 2012)
Conquérir l'internet des objets avec les technologies web. (Kiwi Party 2012)Conquérir l'internet des objets avec les technologies web. (Kiwi Party 2012)
Conquérir l'internet des objets avec les technologies web. (Kiwi Party 2012)
 
Joshfire factory: Using NodeJS in production
Joshfire factory: Using NodeJS in productionJoshfire factory: Using NodeJS in production
Joshfire factory: Using NodeJS in production
 
TIPE Les milieux granulaires
TIPE Les milieux granulairesTIPE Les milieux granulaires
TIPE Les milieux granulaires
 
Hack le camping
Hack le campingHack le camping
Hack le camping
 
Inkscape industrial project report
Inkscape industrial project reportInkscape industrial project report
Inkscape industrial project report
 
Creative commons internship report
Creative commons internship reportCreative commons internship report
Creative commons internship report
 
Creative Commons Internship - Last day
Creative Commons Internship - Last dayCreative Commons Internship - Last day
Creative Commons Internship - Last day
 
Les moteurs physiques en temps réel
Les moteurs physiques en temps réelLes moteurs physiques en temps réel
Les moteurs physiques en temps réel
 

Les moteurs physiques en temps réel

  • 1. Veille technologique Les moteurs physiques temps r´el e Steren Giannini 18 mars 2009 Table des mati`res e 1 Introduction 2 1.1 Les particularit´s du calcul en temps r´el . . . . . . . . . . . . e e 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´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 . . . . . . . . . . . . . . . . . . . . . . . . 6 3 Les solides mous 7 4 Les fluides 8 4.1 La discr´tisation du probl`me . . . . . . . . . . . . . . . . . . e e 9 4.2 Le mod`le utilis´ . . . . . . . . . . . . . . . . . . . . . . . . . e e 9 5 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 . . . . . . . . . . . . . . . . . . . . . . . 12 6 Conclusion 12 1
  • 2. 1 Introduction On appelle moteur physique la partie d’un simulateur responsable des calculs des comportements physiques de la sc`ne.e Les Moteurs physiques sont tr`s utilis´s dans les simulations en temps e e r´el telles que les jeux vid´os mais aussi dans les simulations scientifiques. e e On distingue deux types de moteurs physiques : les moteurs temps r´el et les e moteurs de haute pr´cision. Ces derniers sont destin´ a un calcul de pr´cision, e e` e ils refl`tent un maximum les comportement r´els, nous ne les ´tudieront pas e e e dans ce dossier. Auparavant, il n’y avait pas de distinction entre le moteur du simulateur et la gestion de la physique a proprement parler. Ceci s’explique par le fait que les calculs physiques mis en jeu ´taient vraiment simplistes. Parce que e la puissance de calcul des machines sur lesquelles tournent ces simulations a largement augment´ au cours du temps, les d´veloppeurs ont commenc´ e e e a 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 e la conception des jeux. Mˆme si des moteurs physiques sont vendus extr`mement chers, il ex- e e iste de nombreuses librairies ouvertes et gratuites utilis´es tant bien par les e profesionnels que par les ´tudiants et autres amateurs. e 1.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 e importante que la pr´cision de la simulation. Ainsi, le r´sultat d’un calcul en e e temps r´el est souvent visuellement acceptable mais pas forc´ment physique- e e ment correct. Dans le monde r´el, les ph´nom`nes de la m´canique sont actifs en perma- e e e e nence, cependant, dans une simulation en temps r´el, on peut les d´sactiver e e lorsqu’ils ne sont plus visibles dans un souci d’´conomie de performances. e Ainsi par exemple, lorsque pendant un calcul physique d’une sc`ne, la posi- e tion d’un objet ne varie plus beaucoup, on peut stopper le calcul et d´finir e l’objet comme fixe. 1.2 La composition d’un moteur physique Un moteur physique en temps r´el est constitu´ de deux composants : e e un syst`me de d´tection de collisions et un syst`me de simulation physique e e e responsable du mouvement des objets en fonction des forces appliqu´es. e 2
  • 3. 2 Les solides rigides Parce que les solides rigides peuvent mod´liser un grand nombre d’objets, e ils 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- e act´rise par les variables suivantes : e – position – vitesse – orientation – vitesse angulaire – masse – matrice d’inertie Fig. 1 – D´monstration d’une simulation physique temps r´el de solides e e rigides 2.1 Les enveloppes Les calculs de collision sont tr`s couteux en performance lorsque les objets e consid´r´s sont complexes. Bien souvent dans les simulations en temps r´el, ee e un mod`le simplifi´ du mod`le 3D vu ` l’´cran est utilis´ pour les calculs e e e a e e physiques. De plus, la plupart des moteurs physiques sont capables d’effectuer de meilleurs calculs sur quelques primitives de base, telles que les boites, les sph`res ou les cylindres par exemple. Ainsi, dans un calcul temps r´el un e e 3
  • 4. objet complexe est souvent remplac´ par un assemblage de primitives de e base pour lesquelles le moteur physique est tr`s performant. Les enveloppes e couramment 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 e donn´e e 2.2 La gestion des collisions 2.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 e pour les volumes englobants : on utilise des arbres BVH (Bounding Volume Hierarchies). Ces volumes sont la plupart du temps des sph`res ou des boites e englobantes align´es sur les axes. e Les feuilles de cet arbre sont les enveloppes des objets, voir des parties des objet. Elles sont regroup´es dans des volumes plus gros, qui constituent e les nœuds de l’arbre. Les arbres BVH sont tr`s efficaces pour d´terminer les collision entre e e objets : si le volume englobant d’un objet n’intersecte pas un volume plus haut 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 e tifi´ que si l’arbre est intelligemment cr´´. Il faut en effet que les objets e ee prochent se retrouvent sous le mˆme noeud. e 4
  • 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 e avec qui est en contact le solide 1. La chose ` d´terminer est si 1 est en a e contact avec le volume 5-6. Ce n’est pas le cas donc on sait que 1 ne est ni en contact avec 5, ni avec 6. On teste ensuite si 1 entre en contact avec le volume 3-4. C’est le cas, il y a donc possibilit´ que 1 soit en collision avec 3 e ou avec 4. On teste donc ces deux objets. Il s’av`re que 1 est en collision avec e 3 et qu’il n’est pas en collision avec 4. Pour finir, il ne reste plus qu’` tester a si 1 est en collision avec 2 a l’int´rieur du volume 1-2, ce qui n’est pas le cas. ` e 2.2.2 La d´tection d’intersection e Un d´tecteur de collision peut fonctionner de deux mani`res diff´rentes : e e e la collision est d´tect´e a posteriori, c’est a dire apr`s que la collision ai e e ` e r´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, e on d´tecte ensuite si des objets s’intersectent. La liste des objets qui s’inter- e sectent ainsi est alors transmise au moteur de calcul physique. cette m´thode, e bien que la plus utilis´e, pr´sente un probl`me de collisions loup´es : si la e e e e vitesse de l’objet et sup´rieure a son plus grand rayon, a l’it´ration suivante e ` ` e l’objet ne va pas ˆtre en intersection avec la surface de l’autre objet, il l’aura e travers´. Des astuces existent pour contourner ce probl`me. e e A 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 e vement des solides de la sc`nes, ils sortent ensuite une liste de solide qui e 5
  • 6. s’intersecteront au prochain pas. La d´tection d’intersection en elle mˆme d´pend du type de primitive, e e e pour les plus simples comme les sph`res il suffit de comparer la distance e entre 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 e trait´s de mani`re diff´rente. Ainsi si deux objets sont en contact mais que e e e leur vitesse relative est en dessous d’un faible seuil, on consid`re qu’ils sont e solidaires 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 e la physique de Newton. La technique est m´thodique : l’ensemble des con- e traintes auxquelles sont soumis les objets sont recens´es, puis les d´placement e e sont 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 e r´alis´e explicitement, c’est a dire que l’acc´l´ration ` l’it´ration n+1 est e e ` ee a e calcul´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 e plementary 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 ` e technique du Multiplicateur de Lagrange [8]. Le Multiplicateur de Lagrange permet de trouver les extrema d’une fonction sous contraintes en ´tudiant les e points stationnaires d’une autre. Il suffit pour cela de r´soudre it´rativement e e l’´quation de Lagrange, c’est ` dire, une inversion de matrice. e a 2.3.1 La friction Le coefficient de Coulomb est utilis´ car il repr´sente un mod`le simple : e e e Ceci d´fini un cˆne de friction, qui pour des raison de simplicit´ des calcul e o e est approxim´ en pyramide de friction. e 2.3.2 Les liaisons Deux solides peuvent ˆtre reli´s par une liaison. Cette liaison va cr´er e e e une contrainte entre ces deux objets. Ainsi leurs positions et orientations 6
  • 7. peuvent ˆtre relatives les unes par rapport aux autres. Ces liaisons vont cr´er e e des 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 e 3 Les solides mous Les principales applications sont entre autres les objets mous et ´lastiques, e les vˆtements, les cheveux ou les cordes. On peut mˆme r´aliser avec ces outils e e e une 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 e ensemble de points reli´s par des liaisons ´lastiques. Il s’agit d’une surface e e r´gie par un syst`me masse-ressort : chaque point poss`de une position, une e e e vitesse et une masse. Ces points sont reli´s entre eux par des raideurs. Comme e on peut le voir sur la figure 6, il existe diff´rentes fa¸ons de consid´rer le e c e maillage : on peut consid´rer que chaque arrˆte de la surface est un ressort e e ou alors, parce que les mod`les 3D sont souvent constitu´s de faces a quatre e e ` 7
  • 8. cot´s, on peut consid´rer de relier les points en carr´s. Ce chois a un effet sur e e e la dynamique de l’objet : dans le cas de faces triangulaires, les perturbations transversales 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 ee est test´ pour d’´ventuelles collisions avec d’autres objets solides. On peut e e de plus consid´rer les collisions du maillage sur lui mˆme (dans le cas d’une e e simulation de tissu par exemple), on teste ainsi les collisions entre les points de l’objet et les faces de ce mˆme objet. e 4 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 e gazeux tels que les fum´es ou les nuages. e 8
  • 9. Fig. 7 – D´monstration d’une simulation physique en temps r´el d’un fluide e e en 2 dimensions [12] La simulation en temps r´el des fluides est encore actuellement au stade e exp´rimental. Actuellement lorsqu’elle est pr´sente, chaque simulateur impl´mente e e e sa propre technique. Il n’existe quasiment aucune librairie propri´taire ou e libre de simulation en temps r´el de fluides. Nous allons donc ´tudier les e e concepts de base communs a ces diff´rentes exp´rimentations. ` e e 4.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 e lequel la simulation est effectu´e est discr´tis´ en une grille volumique avec e e e comme volumes ´l´mentaires des cubes. Chacun de ces cubes poss`de en son ee e centre les informations de densit´ et de vitesse. Ce sont ces informations e qui sont ensuite traduitent graphiquement par le processus d’affichage. Ce processus d’afficage peut s’effectuer de diff´rente mani`res : par exemple par e e l’affichage de particules suivant le mouvement du fluide, par le calcul de la surface du fluide (pour les liquides par exemple) ou par un rendu volumique o` l’intensit´ de la couleur rendue est proportionnelle a la densit´ du fluide. u e ` e Nous ne d´taillerons pas plus l’affichage dans ce rapport. e 4.2 Le mod`le utilis´ e e Les ´quations qui r´gissent le comportement du fluide sont compl`tement e e e diff´rents de celles qui r´gissent les mouvements solides. En effet on se base e e simplement sur les ´quations de Navier-Stokes. Celles-ci permettent de d´crire e e le comportement de beaucoup de fluides r´els. Bien entendu, l’accent est mis e 9
  • 10. sur la stabilit´, la rapidit´ et le rendu visuel et moins sur la pr´cision et e e e le r´alisme de la simulation. On a donc deux ´quations : la premi`re sur la e e e vitesse 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 de conditions aux limites. La variation de densit´ ρ est r´gie par les trois termes de la partie droite e e de l’´quation (2). Le premier terme impose ` la densit´ de suivre la vitesse du e a e champ, le second est un terme de diffusion et le dernier et un terme li´ aux e sources. Pour les impl´mentations informatiques, cette ´quation est lin´aris´e e e e e et discr´tis´e. Le calcul de l’´volution de la densit´ suit donc ces trois ´tapes e e e e e comme 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 e r´gie par les trois termes de droite : Le premier est appel´ l’advection, le e e second la diffusion visqueuse et le dernier les forces ext´rieures. Le solveur et e les algorithmes utilis´s est similaire au pr´c´dent. e e e 5 Les biblioth`ques disponibles e Sont list´es dans cette section les biblioth`ques de simulation physique en e e temps r´el disponibles actuellement sur le march´. On distingue deux types e e de diffusion possible : les librairies libres, dont le code source est partag´ et e les librairies propri´taires. e 10
  • 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 commerciaux e e Bullet Physics Bullet Physics est une librairie physique tr`s aboutie, e certainement la plus aboutie des librairies libres. C’est pourquoi elle est ´norm´ment utilis´e dans le domaine ´ducatif ou scientifique. Bullet Physics e e e e est ´galement la librairie physique utilis´e par les logiciels d’images de synth`se e e e professionnels Maya et Blender. C’est ´galement la biblioth`que support´e e e e par SONY dans sa console de jeu PlayStation 3. Cette biblioth`que est ´galement une des rares ` proposer une gestion des e e a solides mous. (voir r´f. [1]) e Open Dynamics Engine ODE est eu biblioth`que physique plus ancienne e qui propose la gestion des solides rigides. La librairie est assez vieille et n’est pas orient´e objet, cependant elle a ´t´ utilis´ dans de nombreuses production e ee e professionnelles, elle peut donc ˆtre consid´r´e comme enti`rement fiable. e ee e (voir r´f. [2]) e Tokamak Physics Tokamak Physics est une librairie physique reconnue cependant peu visible sur internet. La documentation et les exemples d’util- isation sont rares ou de qualit´ moyenne. (voir r´f. [3]) e e 5.2 Biblioth`ques propri´taires e e Il est n´cessaire d’acqu´rir une licence pour utiliser les biblioth`ques suiv- e e e antes. Le cout d’acquisition est consid´rable mais les outils de d´veloppement e e propos´s sont d’une qualit´ professionnelle : int´gration avec les moteurs de e e e jeux les plus connus, int´gration avec les outils de mod´lisation 3D, support e e technique ... PhysX PhysX est un moteur physique fabriqu´ par le soci´t´ Ageia (ra- e ee chet´ par NVIDIA), et int´gr´ dans plusieurs moteurs de jeu comme l’Un- e e e realEngine 3. Les cartes graphiques NVIDIA sont maintenant ´quip´es d’un e e acc´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. Havok Havok est d´velopp´ par la soci´t´ du mˆme nom en Irlande. Depuis e e ee e le lancement de Havok en 2000, le syst`me a ´t´ utilis´ dans pr`s de 150 e ee e e jeux diff´rents. Il est aussi possible de l’utiliser dans des logiciels d’image de e synth`se tels que 3DStudio Max ou Maya. La soci´t´ Havok propose depuis e ee 2008 d’autre librairies capable de simuler les solides mous ou les environ- nements destructibles. (voir r´f. [5]) e 5.3 Couche d’abstraction Afin de ne pas lier un simulateur ` un moteur physique sp´cifique, une a e id´e est d’ajouter une couche d’abstraction permettant une ind´pendance du e e jeu par rapport au moteur physique choisi. Il est ainsi possible de changer ais´ment la librairie physique du simulateur. Une librairie libre existe : Physics e Abstraction Layer[6], elle est compatible avec la plupart des librairies physiques du march´.e 6 Conclusion Les moteurs physiques en temps r´el sont n´s au moment o` les machines e e u sur lesquelles tournaient les simulations ´taient capables de g´rer des calculs e e physiques complexes. Parce que les calculs physiques sont identiques dans toutes les simulations, des librairies commerciales ou libres ont ´t´ cr´´es et e e ee sont 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 e d’acc´l´rations mat´rielles d´di´es au calcul physique. Ces processeurs sont ee e e e appel´s PPU (Physics Processing Unit). e Plus la puissance de calcul sera ´lev´e, plus la complexit´ des simulations e e e physiques 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- e mentation de la complexit´ de l’enveloppe des objets (avec des formes con- e caves par exemple) et la complexification des liaisons entre les objets. Les solides mous font leur apparition depuis peu dans le monde des jeux vid´os. L` aussi de nombreuses am´liorations pourront ˆtre r´alis´es avec e a e e e e l’augmentation des performances des machines. Finalement, en terme de simulation physique, la grande nouveaut´ dans e les jeux vid´os sera l’arriv´e des fluides en temps r´el. e e e 2 Graphics Processing Unit 12
  • 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