Dossier Les effets speciaux en 3D : La Physique au service de l'animation réaliste

Dynamique et Systèmes de particules

Feux d'artifice, traînées de missiles, chutes de météorites ou de balles en caoutchouc, un certain nombre d'effets d'animations tirent leur réalisme de l'exploitation des lois de la dynamique.

Les différentes lois physiques - gravitation, frottements dans l'air, dans l'eau ou sur le sol, détection de collisions, rebonds, tourbillons, influence du vent, déformation de fluides ou de corps élastiques, etc - sont mises en œuvre dans deux grandes classes de logiciels, les systèmes de particules d'une part, où sont animés statistiquement des points élémentaires et les moteurs dynamiques qui savent gérer les objets avec des volumes non négligeables.

Les systèmes de particules

La commercialisation de systèmes de particules est très ancienne et il en existe de nombreux de qualité. Ils savent gérer un très grand nombre de particules élementaires, parfois jusqu'à plusieurs millions, et peuvent servir pour des applications variées. Les particules peuvent non seulement être animées par des lois dynamiques, pour des explosions, ou des cascades, elles peuvent aussi être animées par des lois comportementales, avec un leader, des zones à éviter ou des zones d'attraction. Elles servent alors à animer des groupes d'animaux, comme des bancs de poissons ou des vols d'oiseaux. Elles peuvent aussi servir à créer de la fourrure ou de l'herbe, ou être utilisées en rendering non réaliste pour positionner des coups de pinceaux ou de crayons sur des scènes 3D.

Mais où les particules révèlent leur puissance c'est pour l'animation automatique de très grands nombres d'objets. Chaque grand logiciel 3D possède son propre particule généraliste, ceux de Lightwave et de Maya étant réputés depuis longtemps. Mais les usages en sont si variés qu'il existe de nombreux plugins de particules parfois concurrents et souvent complémentaires, qui sont vendus à moins de 500 $. Du côté Lightwave, on trouve Napalm, qui est la version 3 de Particle Storm et Impact, aussi en version 3, tous les deux de Dynamic Realities. Il faut aussi signaler un excellent et très intuitif produit standalone, Particle Illusion, (ex Illusion de Impulse), dont la dernière version a été présentée au Siggraph cet été. Il est maintenant édité et commercialisé par Wondertouch, une compagnie créée par Alain Lorence, le développeur de Illusion. Ce produit, qui est le moteur de particules utilisé dans Combustion de Discreet, est facile d'utilisation et possède une très riche bibliothèque d'effets prêts à l'emploi. Du côté de 3DS Max, il existe aussi plusieurs plugins dont Particle Studio de Orbaztech, Special Purpose Particles de Sisyphus ainsi que Pandora et Sand Blaster, développés par Digimation.

Un outil récent de qualité

Parmi les produits récents, il faut signaler le plugin de Cebas pour 3DS Max, Thinking Particles, qui a déjà été utilisé pour plusieurs projets importants dont "Tomb Raider". Les systèmes de particules peuvent y être calculés par calcul hardware, ce qui permet, si on accepte un rendering un peu simplifié, si on possède la bonne carte OpenGL et beaucoup de mémoire, de calculer en des temps record des scènes impressionanntes en nombre de particules. Par exemple, avec Particle Illusion, 300 images d'un brasier en définition vidéo sont calculées, grâce à l'accélération hardware, en un peu plus d'une minute avec un Pentium 3 à 533 MHz équipé d'une carte GeForce 2 GTS et de 384 MB de mémoire RAM.

Beaucoup plus cher que ses concurrents, vendu aux environs de 1600 Euros TTC, Thinking Particles est aussi plus ambitieux et comparable dans ses possibilités de programmation au très puissant système de particules de Maya. Les systèmes de particules les plus rapides à maîtriser proposent des bibliothèques d'effets préparamétrés, mais du coup il devient difficile de faire autre chose que ces effets prédéfinis. Thinking Particles est davantage contrôlable, il propose aux utilisateurs qui veulent régler leurs propres effets spécifiques, un langage interactif de description de scènes à base de règles qui se révèle redoutablement efficace.

Il est ainsi possible de définir, grâce à un arbre logique, le comportement de chaque groupe d'objets les uns par rapport aux autres. A titre d'exemple, si l'on désire simuler la course d'un vaisseau spatial pris dans une mer d'astéroïdes et qui doit éviter les gros rochers mais en pouvant heurter les petits, un simple enchaînement de règles suffit à animer automatiquement l'ensemble. La programmation va prendre la forme logique suivante : si le vaisseau vient proche (valeur de distance) d'un rocher alors, soit le rocher est gros (taille supérieure à une certaine valeur) et il l'évite, soit il est petit et alors il l'ignore et rentre en collision. L'intérêt de cette approche est de ne pas être dépendant ni du timing de l'animation, ni de modifications dans la trajectoire initiale du vaisseau. L'utilisateur construit interactivement le graph de règles en enchaînant une arborescence de boîtes les unes aux autres. Thinking Particle possède d'autres fonctions précieuses dont une représentation des particules sous forme de Metaballs, un peu à l'image des metaparticles de Max mais en plus rapide. Un de ses autres atouts est de pouvoir associer à chaque particule un bipède, ce qui permet d'animer très rapidement des foules entières de personnages.

Rigid et Soft Bodies

Pour animer des petits objets, il est possible de remplacer les points élémentaires d'un système de particules par des objets gémométriques, qui vont suivre les animations calculées. Mais il n'y aura pas de vrais calculs de détection de collisions qui prennent en compte la forme réelle des objets. Ceux-ci pourront entrer en pénétration les uns avec les autres. Si les objets sont trop gros pour que l'on puisse se contenter d'un calcul simplifié des collisions et des déformations dues aux chocs, on utilise une autre catégorie de logiciels de dynamique qui permettent d'animer les "soft and rigid bodies". La plupart des logiciels 3D ont intégrés ces fonctions. Là encore, Maya montre sa maîtrise des techniques de simulation dans son module dynamique. Certains logiciels comme Lightwave et XSI ne proposent que le mode soft, et sont donc orientés vers la simulation d'objets souples comme les vêtements, les tissus (comme les drapeaux) ou les cheveux. Le mode rigide peut cependant être obtenu en annulant la valeur d'élasticité. Néanmoins, on peut espérer que lorsqu'un éditeur propose un mode spécifiquement rigide, l'algorithme général va être optimiser pour ce cas particulier.

Parmi les moteurs de dynamique, il existe un leader incontesté, il s'agit de l'éditeur Havok. Son moteur dynamique traite aussi bien des corps mous que des tissus ou des fluides. Havok fournit une bibliothèque de développement Game Dynamics SDK qui est surtout utilisé en temps réel pour la programmation de jeux. Mais son moteur est aussi intégré dans d'autres logiciels comme Virtools et est présent sur Internet. Il est en effet le moteur de dynamique par défaut de Shockwave 3D de Macromedia et est intégré dans Atmosphere de Adobe. Il vient par ailleurs d'être intégré dans 3DS Max sous le nom d'un nouveau module Reactor.

Pour en savoir plus :

Cebas (Thinking Particles)
www.cebas.com
Dynamic Realities (Napalm, Impact)
www.dynamic-realities.com
Digimation (Thinking Particles, Pandora, Sand Blaster, Particle Studio)
www.digimation.com
Orbaztech (Particle Studio)
www.Orbaz.com
Sisyphus (Special Purpose Particles)
www.sisyphus.com
Wondertouch (Particle illusion)
www.wondertouch.com
Havok (Game Dynamics SDK, Reactor, etc)
www.havok.com

© novembre 2002 François Ploye et Pixel SA