


Un système de particules est une technique de physique des jeux , d'animation graphique et d'infographie qui utilise de nombreux sprites minuscules , des modèles 3D ou d'autres objets graphiques pour simuler certains types de phénomènes « flous », qui sont par ailleurs très difficiles à reproduire avec les techniques de rendu conventionnelles – généralement des systèmes très chaotiques , des phénomènes naturels ou des processus causés par des réactions chimiques.
Introduit dans le film Star Trek II : La Colère de Khan de 1982 pour l'« effet Genesis » fictif, d'autres exemples incluent la réplication des phénomènes de feu , d'explosions , de fumée , d'eau en mouvement (comme une cascade), d'étincelles , de feuilles qui tombent, de chutes de pierres, de nuages , de brouillard , de neige , de poussière , de queues de météores , d'étoiles et de galaxies, ou des effets visuels abstraits comme des traînées lumineuses, des sorts magiques , etc. - ceux-ci utilisent des particules qui disparaissent rapidement et sont ensuite réémises depuis la source de l'effet. Une autre technique peut être utilisée pour les objets qui contiennent de nombreux brins - comme la fourrure, les cheveux et l'herbe - impliquant le rendu de la durée de vie entière d'une particule en une seule fois, qui peut ensuite être dessinée et manipulée comme un seul brin du matériau en question.
Les systèmes de particules sont définis comme un groupe de points dans l'espace, guidé par un ensemble de règles définissant le comportement et l'apparence. Les systèmes de particules modélisent les phénomènes comme un nuage de particules, en utilisant des processus stochastiques pour simplifier la définition du système dynamique et de la mécanique des fluides qui sont difficiles à représenter avec des transformations affines .
Mise en œuvre typique
Les systèmes de particules implémentent généralement les modules suivants :
- Une étape d'émission , qui fournit un emplacement et génère de nouvelles particules.
- Une étape de simulation , qui met à jour les paramètres et simule l'évolution des particules.
- Une étape de rendu , qui spécifie comment rendre une particule.
Étape d'émission
Un émetteur implémente un taux de génération (le nombre de particules générées par unité de temps), le vecteur de vitesse initial des particules (la direction dans laquelle elles sont émises lors de leur création). Lorsque vous utilisez un objet maillé comme émetteur, le vecteur de vitesse initial est souvent défini pour être normal aux faces individuelles de l'objet, ce qui donne l'impression que les particules « pulvérisent » directement depuis chaque face, mais cela est facultatif.
Étape de simulation
Au cours de la phase de simulation , le nombre de nouvelles particules à créer est calculé en fonction des taux de génération et de l'intervalle entre les mises à jour, et chacune d'entre elles est générée dans une position spécifique dans l'espace 3D en fonction de la position de l'émetteur et de la zone de génération spécifiée. Chacun des paramètres de la particule (c'est-à-dire la vitesse, la couleur, etc.) est initialisé en fonction des paramètres de l'émetteur. À chaque mise à jour, toutes les particules existantes sont vérifiées pour voir si elles ont dépassé leur durée de vie, auquel cas elles sont supprimées de la simulation. Sinon, la position des particules et d'autres caractéristiques sont avancées en fonction d'une simulation physique, qui peut être aussi simple que la translation de leur position actuelle, ou aussi compliquée que l'exécution de calculs de trajectoire physiquement précis qui prennent en compte les forces externes (gravité, frottement, vent, etc.). Il est courant d'effectuer une détection de collision entre des particules et des objets 3D spécifiés dans la scène pour faire rebondir les particules ou interagir avec des obstacles dans l'environnement. Les collisions entre particules sont rarement utilisées, car elles sont coûteuses en termes de calcul et visuellement non pertinentes pour la plupart des simulations.
Étape de rendu
Une fois la mise à jour terminée, chaque particule est rendue, généralement sous la forme d'un quadrilatère texturé (c'est-à-dire un quadrilatère qui fait toujours face au spectateur). Cependant, cela n'est parfois pas nécessaire pour les jeux ; une particule peut être rendue sous la forme d'un seul pixel dans des environnements à faible résolution/puissance de traitement limitée. Inversement, dans les graphiques animés, les particules ont tendance à être des modèles 3D complets mais à petite échelle et faciles à restituer, pour garantir la fidélité même à haute résolution. Les particules peuvent être rendues sous forme de métaballes dans le rendu hors ligne ; les isosurfaces calculées à partir de métaballes de particules donnent des liquides assez convaincants. Enfin, les objets maillés 3D peuvent « remplacer » les particules — une tempête de neige peut être constituée d'un seul maillage de flocon de neige 3D dupliqué et tourné pour correspondre aux positions de milliers ou de millions de particules.
Taxonomie des systèmes de particules
En 1983, Reeves a défini uniquement des points animés , créant des simulations de particules en mouvement — étincelles, pluie, feu, etc. Dans ces implémentations, chaque image de l'animation contient chaque particule à une position spécifique de son cycle de vie, et chaque particule occupe une position ponctuelle unique dans l'espace. Pour les effets tels que le feu ou la fumée qui se dissipent, chaque particule se voit attribuer un temps de disparition ou une durée de vie fixe ; les effets tels que les tempêtes de neige ou la pluie mettent généralement fin à la durée de vie de la particule une fois qu'elle sort d'un champ de vision particulier .
En 1985, Reeves a étendu le concept pour inclure le rendu simultané de l'intégralité du cycle de vie de chaque particule, le résultat transforme les particules en brins statiques de matériau qui montrent la trajectoire globale, plutôt que des points. Ces brins peuvent être utilisés pour simuler des cheveux, de la fourrure, de l'herbe et des matériaux similaires. Les brins peuvent être contrôlés avec les mêmes vecteurs de vitesse, champs de force, taux de reproduction et paramètres de déflexion que ceux des particules animées. De plus, l'épaisseur rendue des brins peut être contrôlée et, dans certaines implémentations, peut varier sur la longueur du brin. Différentes combinaisons de paramètres peuvent conférer de la rigidité, de la souplesse, de la lourdeur, de la pilosité ou tout autre nombre d'autres propriétés. Les brins peuvent également utiliser le mappage de texture pour faire varier la couleur, la longueur ou d'autres propriétés des brins sur la surface de l'émetteur.
En 1987, Reynolds introduit les notions de comportement de troupeau , de regroupement ou de scolarisation . Le modèle des boids étend la simulation des particules pour inclure les interactions entre états externes, notamment la recherche d'objectifs, l'évitement des collisions, le centrage du troupeau et la perception limitée.
En 2003, Müller a étendu les systèmes de particules à la fluidique en simulant la viscosité , la pression et la tension superficielle , puis a rendu les surfaces en interpolant les positions discrètes avec Smoothed Particle Hydrodynamics .
Outils de système de particules conviviaux pour les développeurs
Le code des systèmes de particules qui peut être inclus dans les moteurs de jeu, les systèmes de création de contenu numérique et les applications d'effets peut être écrit à partir de zéro ou téléchargé. Havok fournit plusieurs API de systèmes de particules. Leur API Havok FX se concentre particulièrement sur les effets des systèmes de particules. Ageia - désormais une filiale de Nvidia - fournit un système de particules et d'autres API de physique de jeu qui sont utilisés dans de nombreux jeux, y compris les jeux Unreal Engine 3. GameMaker Studio et Unity fournissent tous deux un système de particules bidimensionnel souvent utilisé par les développeurs de jeux indépendants , amateurs ou étudiants, bien qu'il ne puisse pas être importé dans d'autres moteurs. De nombreuses autres solutions existent également, et les systèmes de particules sont souvent écrits à partir de zéro si des effets ou des comportements non standard sont souhaités.