Wie werden 2D-Partikel flüssig dargestellt?

45

Angenommen, Sie haben eine gute Möglichkeit, Ihre 2D-Partikel zu bewegen, um eine Flüssigkeit (wie Wasser) zu simulieren. Irgendwelche Ideen, wie man es rendert?

Dies ist für ein 2D - Spiel, wo die Perspektive von der Seite ist, wie diese . Das Wasser wird in Kisten aufbewahrt, die zerbrochen werden können, damit es herunterfallen und mit anderen Objekten interagieren kann. Am einfachsten fällt mir ein, für jedes Teilchen ein kleines Bild zu verwenden. Ich bin daran interessiert, mehr Möglichkeiten zur Wasseraufbereitung zu hören.

luke
quelle

Antworten:

28

Sehen Sie sich in dieser Präsentation (PDF) auf der GDC2010 an , wie PixelJunk Shooter dies getan hat (einschließlich Simulation) .


Beispiel eines PixelJunk Shooter-Bildes

George Duckett
quelle
1
Wusste nicht, PixelJunk ... wirklich ein netter pres. Danke!
Luke
Ein Link zum Trailer :)
David Gouveia
Was sind SPU, PPU, SPURS?
Martijn Courteaux
@MartjinCourteaux: Sie sind Teil der Zell-CPU der PS3. Denken Sie an sie wie GPU-Shader, obwohl es einige Hauptunterschiede gibt.
Sean Middleditch
12

Die Antwort von George Duckett ist viel direkter und sehr gut dargestellt, wenn Sie in Ihrem Spiel vollständig simuliertes Wasser benötigen. Für eine simulierte Flachwasserphysik mit minimaler Genauigkeit (weniger Realismus, verspielter) gab mir dieses Bild einen unglaublichen Moment der Klarheit:

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

DaveStance
quelle
Einfach und nett! Ich habe nicht wirklich daran gedacht, einen so einfachen Nachbearbeitungsschritt zu verwenden ... frage mich nur, ob ein Gerät wie das iPhone damit zurechtkommt. Es scheint ein guter Ausgangspunkt zu sein. Vielen Dank.
Luke
Ich kann mich für diesen Ansatz verbürgen. Ich habe es einmal in einem Projekt benutzt und es hat wunderbar funktioniert. Wenn Sie einen Fasenfilter hinzufügen, können Sie auch einen schönen Meniskus auf Ihren Blobs haben.
Scriptocalypse
Super cool! Aber ich bin mir nicht sicher, wie gut es für einen Charakter passen würde, der durch sie schlendert. Es würde alle Sphären zur Seite schieben, nicht wahr?
Max
6

Oder für einen schnellen und einfachen Ansatz: Verwenden Sie Metaballs !

3d metaballs


quelle
5

Grant Kot hat einen Teil seines flüssigen Simulationscodes mit Implementierungen in Javascript (Canvas) und C ++ mit OpenFrameworks auf Github veröffentlicht: https://github.com/kotsoft

Er hat ein paar Demos auf seinem YouTube-Account: http://youtu.be/HqWheJSEiaw

Ich habe keine Ahnung, wie es funktioniert, aber ich weiß, dass es schnell läuft und dass es alle möglichen Variationen gibt, mit denen es gebaut werden kann. Ein gutes Stichwort für die Suche könnte "Multigrid-Partikel" sein.

michael.bartnett
quelle
Mir gefällt, wie Grant Kot Flüssigkeiten simuliert! Auch wenn das Rendering minimal ist, zumindest auf dem Applet auf diesen Webseiten. Es ist eine Menge von Parametern, um die Simulation zu steuern. Es lohnt sich einen genaueren Blick darauf zu werfen. Vielen Dank.
Luke