2 points par GN⁺ 2023-12-20 | 1 commentaires | Partager sur WhatsApp
  • Notes et code source (GitHub) sur les mathématiques, les algorithmes et les méthodes liés à la simulation en temps réel de fluides comme le feu et la fumée

1. Simulation de fluides

  • Avant de simuler le feu, il faut simuler les fluides
  • Si l’on suppose que le fluide est incompressible et non visqueux, le problème se simplifie considérablement

1.1 Dynamique des fluides de base

  • Un fluide remplit une région DDD de l’espace, et à l’instant ttt, la vitesse du fluide est u(x,t)
  • On peut représenter un champ de vitesse 2D u avec une grille N×N
  • Que se passe-t-il si l’on dépose une goutte de colorant dans le fluide ?
  • On définit un champ scalaire ψ(x,t) représentant la densité du colorant, et son déplacement par la vitesse du fluide est appelé advection
  • La méthode naïve pour calculer l’advection consiste à déplacer chaque point de grille et à mettre à jour le point de grille le plus proche, mais elle est difficile à paralléliser et instable

Équation aux dérivées partielles de l’advection

  • Pour dériver l’advection de manière stable, il faut une expression explicite en EDP
  • La masse totale de colorant dans une région spatiale fixe WWW est ∫WψdV, et sa variation au cours du temps est ddt∫Wψ(x,t)dV
  • D’après la loi de conservation de la masse, on obtient ddt∫WψdV=−∫Sψu⋅ndA
  • En appliquant le théorème de la divergence, on obtient ∫W[∂ψ∂t+∇⋅(ψu)]dV=0 et, pour un sous-volume unitaire W=dV, ∂ψ∂t+∇⋅(ψu)=0
  • Cela fournit l’EDP explicite que nous devons résoudre

Méthode stable pour l’advection

  • Si l’on examine l’éq. (1) de plus près, le terme de droite est une dérivée directionnelle dans la direction −u
  • Cette méthode, appelée advection semi-lagrangienne, a été inventée en 1999 par Jos Stam
  • Comme chaque point de grille n’est mis à jour qu’une seule fois, elle est très facile à paralléliser et inconditionnellement stable

1.2 Équation de Navier-Stokes

  • Nous avons trouvé un modèle décrivant l’évolution temporelle des propriétés scalaires du fluide, mais qu’en est-il de l’écoulement lui-même ?
  • L’équation de Navier-Stokes définit la manière dont le champ de vitesse u évolue au cours du temps en un point quelconque du fluide
  • Comme nous supposons que le fluide est non visqueux, μ=0, et les forces externes peuvent aussi être ignorées dans un premier temps
  • Il ne reste donc que deux termes : l’auto-advection (self-advection) et la pression (pressure)
  • En calculant numériquement ces termes à chaque pas de temps puis en les additionnant, on peut simuler le fluide

Résolution de la pression

  • On ne sait pas si le nouveau champ de vitesse respecte la contrainte d’incompressibilité, donc le terme de pression p doit le corriger
  • Pour cela, il faut résoudre l’équation de Poisson
  • Pour résoudre l’équation de Poisson, on peut utiliser des algorithmes itératifs comme la méthode de Jacobi
  • La méthode de Jacobi peut être exécutée en parallèle sur GPU, ce qui rend son implémentation très simple

Résumé : simulation de Navier-Stokes

  • Les mathématiques de Navier-Stokes peuvent être un peu complexes, mais la simulation d’un fluide en résolvant les équations se résume à quelques procédures majeures de mise à jour

1.3 Confinement de la vorticité (Vorticity Confinement)

  • Utiliser une grille pour stocker le champ de vitesse est très pratique, mais l’interpolation des valeurs entre les points de grille provoque un lissage numérique indésirable
  • En conséquence, les tourbillons turbulents de l’écoulement disparaissent, ce qui produit généralement un flux de fluide trop lisse et « ennuyeux »
  • Le confinement de la vorticité est un processus qui amplifie cette vorticité perdue
  • Le confinement de la vorticité a été conçu pour résoudre les champs d’écoulement extrêmement complexes autour des pales d’hélicoptère
  • La vorticité est calculée en prenant le rotationnel de u à chaque point, puis on ajoute un écoulement circulaire en chaque point pour l’amplifier

Turbulence par bruit de rotationnel (Curl-Noise)

  • Le curl noise est une méthode similaire au confinement de la vorticité, mais au lieu de mesurer et d’amplifier la vorticité du champ de vitesse, elle utilise une fonction de bruit pour créer dès le départ un champ scalaire de vorticité
  • Les fluides très rapides et fortement turbulents tirent le plus grand bénéfice du confinement de la vorticité et du curl noise

2. Simulation du feu

  • Pour simuler le feu et la fumée, il faut ajouter des canaux représentant le carburant et la température, puis modéliser la combustion du carburant pour générer de la chaleur
  • Il faut aussi gérer la montée des parties les plus chaudes du fluide selon un modèle de poussée thermique, et rendre correctement les flammes

2.1 Modèle de combustion de base

  • Chimiquement, le feu résulte d’une réaction d’oxydation d’un matériau combustible, qui libère de la chaleur et de la lumière
  • On définit un champ scalaire ρ représentant la densité du carburant et un champ scalaire T représentant la température
  • Le carburant brûle et ajoute de la température au système, tandis que la température se diffuse des zones chaudes vers les zones froides
  • La convection thermique est définie comme la combinaison de ces deux processus, et nous disposons déjà du modèle mathématique pour la décrire : l’advection !

L’avis de GN⁺ :

  1. Cet article explique le processus complexe de simulation en temps réel de fluides comme le feu et la fumée, un sujet très important en infographie et en développement de jeux.
  2. Les progrès récents des GPU permettent désormais de traiter en temps réel des simulations de fluides complexes, ce qui contribue à créer des jeux visuellement séduisants et des effets spéciaux de cinéma.
  3. L’article aborde des concepts mathématiques avancés comme les équations de Navier-Stokes et le confinement de la vorticité, offrant des informations utiles aux ingénieurs logiciels débutants intéressés par ce domaine.

1 commentaires

 
GN⁺ 2023-12-20
Commentaires Hacker News
  • En tant que titulaire d’un doctorat en CFD (mécanique des fluides numérique), une personne reconnaît n’avoir jamais entendu parler du confinement de vortex ni de la turbulence par curl noise. Cela lui rappelle qu’on apprend quelque chose de nouveau chaque jour.
    • En CFD industrielle, on traite des nombres de Reynolds élevés, donc il n’est pas souhaitable d’ajouter du bruit pour compenser la dissipation artificielle des méthodes numériques. En réalité, beaucoup cherchent justement de la dissipation artificielle pour stabiliser les simulations à nombre de Reynolds élevé. Les exigences de l’infographie mettent davantage l’accent sur un rendu visuellement crédible que sur l’exactitude physique.
  • Il est fait mention de simulations de feu et de fumée pour les jeux, ainsi que de simulation de fluides sur GPU. Si ces effets doivent tourner dans un jeu, la question se pose de savoir si le GPU n’est pas déjà suffisamment sollicité. Résoudre un problème de CFD tout en assurant le rendu semble représenter une charge importante.
    • La personne se demande si ce type de simulation peut tourner sur un iGPU pendant que le dGPU se charge de davantage de tâches de rendu, ou si l’iGPU est trop faible et qu’il vaudrait mieux basculer sur le CPU.
  • Une autre personne, « 10 Minute Physics », est jugée très bonne pour expliquer ce genre de sujets.
  • Une personne passée des mathématiques au métier d’ingénieur logiciel s’intéresse aux simulations CFD et souhaite apprendre ce domaine, même si ses connaissances en calcul vectoriel et en équations aux dérivées partielles se sont beaucoup rouillées faute de pratique.
  • Quelqu’un a récemment vu une vidéo montrant l’implémentation d’une simulation de fluides simple, et a trouvé cela très intéressant.
  • EmberGen est présenté comme un logiciel impressionnant capable de simuler en temps réel le feu et la fumée sur des GPU grand public, avec un workflow basé sur des nœuds qui facilite la création de nouveaux effets.
    • Le workflow a été amélioré au point que des tâches qui prenaient plusieurs heures peuvent désormais être terminées en quelques minutes.
    • La personne exprime une légère déception qu’EmberGen n’ait pas suscité davantage d’attention sur Hacker News. (Avis d’un client satisfait sans lien avec EmberGen/JangaFX)
  • Bien que ce ne soit pas le sujet principal de l’article, quelqu’un estime que l’introduction, qui suggère qu’en choisissant la simulation on abandonne le contrôle artistique et qu’il faut souvent négocier péniblement avec une quantité écrasante de paramètres, est quelque peu erronée.
    • Pour une scène clé comme le Balrog, la personne ne laisserait pas la simulation décider et préférerait un contrôle total sur chaque image.
    • Dans un exemple de fantasy à la Tolkien, une scène de paysage avec une rivière faisant de nombreux méandres, quelques rochers et parfois un poisson qui saute se prête davantage à la simulation.
  • Malgré 64 Go de RAM, une personne indique que cette page fait complètement planter son onglet.
  • Il y a un lien vers une vidéo qui donne une bonne explication de pourquoi les explosions en infographie sont médiocres.
  • Une personne se dit très impressionnée par le template distill.pub et par le rendu de son système de construction de pages, et regrette qu’il ait été arrêté en 2021 et ne soit plus maintenu.