TUD Logo

TUD Home » ... » Results of student work » Minor Theses » Berthold Heinecke

Computer Graphics

Minor thesis of Berthold Heinecke

Physikalische Rauchsimulation auf Partikelbasis in Echtzeit mit der PhysX-Engine

Lehrstuhl für Computergraphik und Visualisierung


Student: Berthold Heinecke
Betreuer: Niels v. Festenberg
Verantwortlicher Hochschullehrer: Prof. Dr. Stefan Gumhold

Motivation

Hohe Prozessorgeschwindigkeiten und Mehrkernprozessoren bieten inzwischen ausreichend Rechenleistung zur physikalischen Fluidsimulationen durch komplette Physikengines in Echtzeit. Dennoch wird der Umstieg von gitterbasierten numerischen Lösungsmethoden der Navier-Stokes-Gleichungen zur partikelbasierten Simulation in der Computergraphik nur langsam vollzogen. Dies liegt unter anderem an der nicht trivialen numerischen Simulation auf Partikelbasis. Eine interaktive Rauchsimulation in der Computergraphik muss, anders als in der numerischen Strömungssimulation, in erster Linie visuellen Ansprüchen genügen. Die Simulation von Rauch auf Grundlage einer Physikengine mit Vortexpartikeln verspricht typische Rauchverwirbelungen. Zusätzlich dazu, kann durch eine geeignete Beleuchtung der Rauchwolke die tatsächliche Erscheinung von Rauch plausibel visualisiert werden.

Beschreibung

Die Arbeit erklärt die Grundlagen der Fluidsimulation und die Methoden der Wirbelstärkenerhaltung, sowie der Vortexpartikel. Beide Methoden verstärken bzw erzeugen Wirbel im Rauch. Ein weiteres Kapitel stellt die aktuellen Möglichkeiten und Leistungen einiger aktueller Physikengines heraus. Billboards und Polygonnetze werden zur Visualisierung des Rauches eingesetzt. Ein geeigneter Beleuchtungsalgorithmus unter Verwendung der GPU, der bisher zur Beleuchtung statischer Partikelwolken verwendet wurde, wird bei seiner Verwendung in dynamischen Szenen erläutert. Auf das während der Arbeit entstandene Fluidtool, zur Darstellung und Bearbeitung von Szenen mit Rauch, wird ebenfalls kurz eingegangen. Abschliessend werden alle verwendeten Algorithmen und die Physx-Engine auf ihre Prozessorauslastung hin untersucht.

Ergebnisse

Bei der Auswahl einer geeigneten Physikengine tat sich die PhysX-Engine besonders hervor. Vor allem, da sie durch geeignete Hardware unterstützt wird und so die CPU in der Berechnung entlastet. PhysX liefert auf Grundlage der Smoothed Particle Hydrodynamics eine geeignete Grundlage für Fluidsimulationen. Durch die Vortexpartikelmethode konnte das Fehlen von Verwirbelungen in PhysX, die gerade bei Rauch besonders gut sichtbar sind, kompensiert werden. Der Beleuchtungsalgorithmus liefert auch bei bewegten Partikeln visuell überzeugende Ergebnisse. Während die Vortexpartikelmethode ausreichend schnell ist, benötigt der Beleuchtungsalgorithmus allerdings zuviel Rechenkapazität. Hier müssen noch Optimierungen vorgenommen werden.

lighted particles
Beleuchtete Partikelwolke
implicit mesh
Rauchwolke als Polygonnetz
       
smoke
Rauchwolke
colored particles
Farbige Partikel im Schatten
water
Wasser mit Vortexpartikeln
Fluidtool
Fluidtool

Ausblick

Trotz PhysX-Hardware ist die Grenze, von bisher mit dem Fluidtool flüssig zu simulierenden Partikeln, schnell erreicht. Weitere Optimierungen beim Algorithmus der Vortexpartikel (etwa durch ein dynamisches Gitter) und vor allem beim Beleuchtungsalgorithmus wären sinnvoll. Für mehrere Partikelsysteme bietet sich die Implementierung einer Level-of-Detail Funkion an. Die Visualisierung durch ein Polygonnetz ist zwar für Rauch ungeeignet, für Flüssigkeiten aber die optimale Lösung. Auf diesem Gebiet gibt es bereits viele verwendbare Ergebnisse. Um geeignete Referenzergebnisse einer Fluidsimulation zu bekommen, bietet sich die zusätzliche Implentierung, einer rein gitterbasierten Lösung, an. Über moderne 3D-Scanner könnten auch reale Flüssigkeiten mit den simulierten verglichen werden. Durch einen Vergleich liessen sich verwendete Algorithmen der partikelbasierten Lösung besser evaluieren.

Download

!Achtung! damit das Programm funktioniert muss zuerst der Treiber für die PhysX-Engine von der Webseite www.ageia.com installiert werden.

Damit der Sourcecode compiliert werden kann, wird das PhysX-SDK und TinyXML benötigt.

Last modified: 1st Feb 2010, 2.39 PM
Author: Dr.-Ing. Wilfried Mascolus