Comment rendre les particules 2D sous forme fluide?


45

Supposons que vous disposiez d'un bon moyen de déplacer vos particules 2D afin de simuler un fluide (comme de l'eau). Des idées sur la façon de le rendre?

Ceci est pour un jeu en 2D, où la perspective est de côté, comme ceci . L'eau sera contenue dans des boîtes pouvant être cassées afin de la laisser tomber et interagir avec d'autres objets. La façon la plus simple qui me vienne à l’esprit est d’utiliser une petite image pour chaque particule. Je suis intéressé à entendre plus de façons de rendre de l'eau.

Réponses:


28

Découvrez comment PixelJunk Shooter l'a fait (y compris la simulation) dans cette présentation (PDF) à GDC2010.


Exemple d'image de tireur PixelJunk


1
Je ne connaissais pas PixelJunk ... vraiment un bon pres. Merci!
Luke

Un lien vers la bande-annonce :)
David Gouveia Le


Que sont SPU, PPU, SPURS?
Martijn Courteaux

@MartjinCourteaux: ils font partie du processeur de la cellule de la PS3. Considérez-les comme des nuanceurs de GPU, bien qu’il existe quelques différences essentielles.
Sean Middleditch

12

La réponse de George Duckett est bien plus directe et très bien présentée si vous avez besoin d'eau parfaitement simulée dans votre jeu. Pour la physique simulée des eaux peu profondes avec une précision minimale (moins de réalisme, plus ludique), cette image m'a procuré un incroyable moment de clarté:

http://www.patrickmatte.com/stuff/physicsLiquid/


Simple et sympa! Vous n'avez pas vraiment pensé à utiliser une étape de post-traitement aussi simple ... demandez-vous simplement si un appareil tel que l'iPhone va gérer cela. Cela semble être un bon point de départ. THX.
Luke

Je peux témoigner de cette approche. Je l'ai utilisé une fois dans un projet et cela a fonctionné à merveille. Ajouter un filtre de biseau et vous pouvez aussi avoir un beau ménisque sur vos blobs.
scriptocalypse

Super cool! Mais je ne sais pas à quel point cela conviendrait à un personnage qui y flâne. Cela pousserait toutes les sphères d'un côté, n'est-ce pas?
Max

6

Ou, pour une approche simple et rapide: utilisez des metaballs !

Metaballs 3d


5

Grant Kot a mis une partie de son code de simulation fluide sur Github avec des implémentations à la fois en javascript (canvas) et en C ++ avec OpenFrameworks: https://github.com/kotsoft

Il a quelques démos sur son compte youtube: http://youtu.be/HqWheJSEiaw

Je ne sais pas du tout comment cela fonctionne, mais je sais que tout se passe bien et qu'il y a toutes sortes de variantes à utiliser. Un bon mot-clé à rechercher pourrait être "particules multigrilles".


J'aime beaucoup la façon dont Grant Kot simule les fluides! Même si le rendu est minimal, au moins sur l'applet de cette page Web. C’est comme beaucoup de paramètres de contrôler la simulation. Cela vaut la peine de le regarder plus en profondeur. THX.
luke
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.