2009-02-17 5 views
7

Pendant un moment, j'ai essayé de simuler l'écoulement de l'eau avec des algorithmes que j'ai récupérés à partir de "Real-Time Fluid Dynamics for Games". Le problème est que je ne semble pas sortir un comportement semblable à l'eau avec ces algorithmes.Simulation de l'eau avec une grille

Moi-même je suppose que je fais quelque chose de mal et que ces algorithmes ne sont pas tous adaptés aux fluides semblables à l'eau. Qu'est-ce que je fais de mal avec ces algorithmes? Ces algorithmes sont-ils corrects? J'ai le projet associé à bitbucket repository. (nécessite gletools pour fonctionner)

Répondre

6

Les solutions à base de voxel conviennent pour la simulation de liquides et sont fréquemment utilisées dans les films. Ron Fedkiw's website donne quelques exemples académiques - tous ceux qui sont basés sur une grille. Ce code sous-tend de nombreuses simulations utilisées par Pixar et ILM.

Une bonne source est aussi Robert Bridson de Fluid Simulation course notes de SIGGRAPH, et il a un livre "Fluid Simulation for Computer Graphics" qui passe par le développement d'un simulateur liquide en détail.

La réponse la plus précise que je puisse donner à votre question est que les fluides en temps réel de Stam pour les jeux sont axés sur la fumée, c.-à-d. où il n'y a pas de limite entre le fluide (eau) et une région d'air externe. Fondamentalement, la fumée et les liquides utilisent le même mécanisme sous-jacent, mais pour le liquide, vous devez également suivre la position de la surface du liquide et appliquer les conditions aux limites appropriées sur la surface.

2

Quel type d'eau essayez-vous de simuler? Des flaques d'eau qui ondulent ou des liquides qui coulent?

Je ne pense pas avoir jamais vu d'eau qui coule, sauf dans les films rendus. Ondulation de l'eau est assez facile à faire, ce site se pose généralement dans ce type de question http://freespace.virgin.net/hugo.elias/graphics/x_water.htm

+0

liquides fluides, les piscines ondulantes sont assez triviales, même si elles sont fraîches et je sais comment les simuler. :> – Cheery

1

Oui, ce type de solution à base de voxel ne fonctionne vraiment que si votre liquide est confiné à des frontières très discrètes et statiques.

Pour simuler un écoulement de liquide, effectuez une recherche sur les particules. Beaucoup de progrès ont été réalisés récemment en les accélérant sur le GPU, et vous pouvez obtenir des résultats étonnants.

Jetez un oeil, http://nzone.com/object/nzone_cascades_home.html comme un excellent exemple de ce qui peut être atteint.

2

Cem Yuksel a présenté un discours fantastique au sujet de son Wave Particles au SIGGRAPH 2007. Ils donnent un effet très réaliste pour un coût assez bas. Il était même capable de simuler une interaction avec des corps rigides comme des boîtes et des bateaux. Un autre aspect intéressant est que le mouvement du bateau n'est pas scripté, il est simulé via l'interaction de l'hélice avec le fluide.

Cem Yuksel's Wave Particles http://www.cemyuksel.com/research/waveparticles/title.jpg

Lors de la conférence, il a dit qu'il projetait de libérer le code source, mais je n'ai encore rien vu. Son site Web contient le document complet et les vidéos qu'il a montrées à la conférence.

Édition: Vous venez de voir votre commentaire sur la simulation de liquides qui coulent plutôt que sur des piscines ondulantes. Ce ne serait pas approprié pour ça, mais je vais le laisser ici au cas où quelqu'un d'autre le trouverait utile.