Fluid Simulation und Rendering

Die bei der Wasserdarstellung zum Einsatz kommenden Techniken lassen sich im Wesentlichen in zwei Kategorien unterteilen:

  • Animation und Darstellung von Wasserflächen
  • Physikalische Simulation und Darstellung von Wasserpartikeln

Partikelsysteme werden eingesetzt, um das Verhalten von Wasser und Fluiden in einem begrenzten Gebiet möglichst realistisch zu simulieren. Mithilfe von Wasserflächen lassen sich weiträumige von Wasser bedeckte Gebiete darstellen – der Fokus liegt hierbei auf einer möglichst realistischen Oberflächendarstellung in Kombination mit einer glaubhaft wirkenden Wellenanimation. Physikalische Phänomene wie die Wellenbrechung lassen sich jedoch auf diese Weise nicht simulieren.

Techniken für die Darstellung von Wasserflächen haben wir bereits im Rahmen früherer Postings behandelt; heute geht es daher um die physikalische Simulation und Darstellung von Wasserpartikeln.

Methode der Wahl für die physikalische Simulation ist die Smoothed Particle Hydrodynamics (SPH). Hierbei stellt man sich ein Fluid als eine Ansammlung von miteinander interagierenden Partikeln vor. Ausführlich beschrieben wird diese Methode unter anderem in der Masterthesis von Stefan Auer Partikelbasierte Echtzeit-Fluidsimulation.

Die Darstellung des Fluids (bzw. der zugehörigen Partikel) erfolgt heutzutage im Rahmen des Post-Processings. Hierbei bietet sich unter anderem die folgende Vorgehensweise an:



  • Im ersten Schritt werden die sichtbaren Partikel bzw. die zugehörigen Partikelnormalen samt Tiefenwert unter Berücksichtigung des Tiefenabbilds der 3D-Szene in eine Textur mit niedriger Auflösung gerendert. Durch Vergleich der Tiefenwerte lässt sich hierbei problemlos feststellen, wo die Partikel sichtbar sind oder durch die Szenen-Geometrie verdeckt werden.

  • Im zweiten Schritt wird das Partikelabbild mit dem Szenenabbild kombiniert. Mithilfe der Partikelnormalen lassen sich dabei Reflektions- sowie Refraktions-Effekte an den Partikel-Oberflächen berechnen. Durch Vergleich des Tiefenabbilds der 3D-Szene mit den in der Partikeltextur gespeicherten Tiefenwerten, lässt sich zudem die Lichtabsorption im Fluid berechnen. Je größer die Differenz zischen den Tiefenwerten ist, umso mehr Licht wird absorbiert.


weiterführende Links