Nous présentons des méthodes simples pour l'animation de fluides en temps réel sur GPU. Au coeur de nos méthodes se trouve une formulation dite " faiblement compressible "(weakly compressible) du fluide que l'on retrouve souvent du côté des Smooth Particles Hydrodynamics (WCSPH). Les méthodes basées sur des grilles sont plus adaptées aux structures de données manipulées par les GPUs, mais elles sont généralement basées sur une formulation implicite du champ de pression permettant de renforcer une condition de divergence nulle. Cette approche nécessite la résolution itérative d'un système de Poisson. Notre approche consiste à remplacer la formulation implicite de la pression par une formulation explicite (et donc simple) basée sur l'invariance de la densité du fluide. Cette formulation explicite nous permet de proposer un algorithme pour simuler des fluides monophasiques (fumée, feu) en une seule passe sur le GPU. Cette formulation de faible compressibilité basée sur la densité permet aussi, dans le cas de liquides, d'éviter plusieurs étapes liées au traitement d'une surface libre. Ainsi, nous proposons de l'utiliser dans une méthode hybride particules-grilles dans le style de FLIP (Fluid Implcit Particle) pour simuler des liquides sans avoir à extrapoler la vitesse au delà de la surface et à ré-initialiser un level set par exemple. De plus, nous pouvons traiter les particules indépendamment plutôt que d'avoir à reconstruire le voisinage des particules comme avec SPH. Nos méthodes sont très simples et donc rapides à implémenter sur GPU. Notre méthode en une passe pour les fluides monophasiques est moins précise et robuste que les méthode traditionnelles mais peut être utile a des fins éducatives, pour faciliter l'appréhension de la simulation de fluides. Enfin, dans le cas des liquides, notre méthode produit des résultats visuellement comparables à un algorithme WCSPH classique, et ce avec un gain en performance. Elle pourrait donc être utilisée dans des applications interactives comme des jeux vidéo.

We present simple methods to simulate fluids on the GPU in real-time. At the heart of our methods lies a weakly compressible formulation of fluids commonly found in Smooth Particles Hydrodynamics litterature (WCSPH), only here we use this formulation within a grid-based finite difference framework. On a GPU, grids are easier to manipulate than arbitrary particle configurations. However, Eulerian methods on the GPU typically involve iteratively solving a Poisson system for a pressure field representing the divergence part of the velocity field. We replace this implicit formulation of pressure by an explicit formulation based on density invariance (or weak compressibility). With this approach, we can propose a method to simulate 3D Eulerian gaseous fluids (single phase) that can solve for the motion of the fluid in a single pass on the GPU. Secondly, we propose a hybrid particle-grid method in the style of FLIP (Fluid Implicit Particle) to simulate liquids which allows treating the particles independently and neglecting the laborious tasks related to the free surface. Our results with the Eulerian single pass method are less accurate and robust than traditional methods strictly enforcing divergence-free. However, it can be useful for educational purposes such as an introduction to physics simulation or simply as a first working prototype where the pressure part can be replaced later on for accuracy and stability. Our simple liquid solver offers results comparable to an SPH solver and could therefore be used in a video game or other interactive application. We demonstrate the practicality of our method with examples of 2D and 3D gaseous fluids along 2D and 3D liquid-like phenomena.