Hello,

Je reprend un ancien projet pour passer le temps et l'améliorer, le but est de simuler du feu en temps réel en ce basant sur les équations de Navier Stokes.

Actuellement, je détermine la couleur par une technique qui est tout sauf correcte d'un point de vu physique et le résultat est très moyen.
La quantité de gaz par case décroit linéairement lorsque l'on s'éloigne de la source et la température décroit de manière exponencielle.
Je récupère la couleur simplement par un lookup dans une texture: je prend le texel de coordonées (quantité; température).

Je cherche à utiliser une technique respectant un peu plus les lois physiques pour avoir un résultat plus réaliste.

Après quelques recherches j'ai trouvé un rapport parlant de l'équation de Planck, du coup j'essaie de comprendre comment ça peut marcher, mais si une autre solution existe, ça m'intéresse aussi.

Tout d'abord je préfère prévenir, mes connaissances en physique / thermodynamique sont très faible, j'espère choquer personne si j'utilise pas les bons termes.

Je simule la combustion d'un gaz.
Du coup, du gaz est relaché, il chauffe en se rapprochant de la flamme (utilisation de la capacité thermique du gaz pour calculer la hausse de température), dès qu'il atteint sa température d'auto ignition il s'emflamme
(laissons de coté le cas où le gaz atteint une flamme avant d'atteindre sa température d'auto ignition).

D'ailleurs la température n'influence quasiment pas la capacité thermique d'un solide au dessus de la température de Debye,
mais pour un gaz google veut pas me dire comment ça marche, si quelqu'un connait le nom de la/les lois qui permettent de calculer la capacité thermique d'un gaz en fonction de sa température, je prend.

Je peux avoir la quantité d'énergie libérée par la combustion (qui chauffe le gaz aux alentours, et qui correspond à la "quantité de lumière émise" ?) en fonction de la quantité de gaz par "case" de ma grille utilisée pour la simulation.

Ensuite l'équation de Planck me permet d'avoir la fréquence du rayonnement en fonction de l'énergie libérée,
je peux calculer la longueur d'onde correspondante pour ensuite convertir ça en une couleur RGB.

Est-ce-que d'un point de vue physique mon raisonnement est correct ?
D'un point de vu pratique, est-ce viable pour de la simulation temps réel, ou les calculs sont-ils trop lourds ?
A priori, le calcul de la couleur, à partir de la température est en O(1), mais c'est un "gros 1".

Les calculs sont fait coté GPU "à l'ancienne" : j'utilise openGL, des textures pour stocker mes données, et les calculs sont fait dans des fragments shaders.
Une fois que j'aurais quelques chose de fonctionnel je referai ça avec openCL pour découvrir un peu.