Title: Simulation und Visualisierung von Fluiden und granularen Materialien mit PhysX Diplomverteidigung
1Simulation und Visualisierung von Fluiden und
granularen Materialien mit PhysXDiplomverteidigun
g
Fakultät Informatik Institut für Software und
Multimediatechnik, Lehrstuhl Computergraphik
2Motivation
- Entwicklung und freie Verfügbarkeit von
Physikengines (Havok, PhysX, Open Dynamics
Engine) für übliche PC-Systeme. - vs.
- Physikalische Simulationen in der Computergrafik
betrachten oft isolierte Phänomene - Welche Ansätze zur Simulation von granularen
Materialien und Fluiden lassen sich durch
Verwendung einer Physik-Engine realisieren?
3- Physik-Engines
- Einteilung der Simulation (LOD)
- Simulation der Materialeigenschaften
- PhysX-Simulator
- Schlussfolgerung
41. Physik-Engines
1. Aktuelle Übersicht
Starrkörperphysik, Joints
Masse-Feder-Systeme (Stoff, Soft-Body)
Partikelsimulation (Fluide)
FX
51. Physik-Engines
2. Arbeitsweise
61. Physik-Engines
3. Arbeitsweise (BOEING, Adrian
BRÄUNL, Thomas Evaluation of real-time physics
simulation systems.)
71. Physik-Engines
4. SPH (KELAGER, Micky Lagrangian
Fluid Dynamics Using Smoothed Particle
Hydrodynamics,)
Druck Viskosität externe Kräfte
Normal Druck
Viskosität
81. Physik-Engines
5. PhysX - Fähigkeiten
91. Physik-Engines
6. Vergleiche - Würfel in Havok und PhysX
101. Physik-Engines
7. Vergleiche - Fluidberechnung auf PPU und CPU
111. Physik-Engines
6. PhysX - Fähigkeiten
- max 64k Objekte, max 4k Objekte bei nur PPU
Berechnung - keine Fluidmischung
- max 32k Partikel je Fluid
- Viskosität
- Steifheit/ Kompressibibilität
- Reibung mit Starrkörpern
- Widerstandskraft
- Sprungkraft
- KEINE Reibung im Fluid (abgesehen von Viskosität)
12Einteilung der Simulation
- Ansatz
Particle-based simulation of granular
materials Computer Modelling of Fallen
Snow Nathan Bell, Yizhou Yu and Peter J. Mucha
Paul Fearing
13Einteilung der Simulation
- Übergang
- Höhenfeld -gt Partikel
- Kollision regelmäßig mit SWEEP testen
- bei Kollision 3 Möglichkeiten
- 1. Kraft zu schwach, Höhenfeld bleibt bestehen
- 2. Kraft drückt die Oberfläche ein
- 3. Eintiefen des Höhenfeldes und Füllen des
Differenzvolumens mit Partikeln - Partikel -gt Höhenfeld
- alle Partikel in Ruhe und kein Objekt in Bounding
Box das sich bewegt - Objekte in Bounding Box einschläfern
- Partikel löschen
- Volumen der Partikel auf Höhenfeld gutschreiben
14Einteilung der Simulation
- Anpassung
- Rauch - nur lokales nicht dauerhaftes Phänomen
daher kein Höhenfeld - Wasser - dynamisches Höhenfeld -gt keine Erzeugung
von Partikeln sondern Simulation der
Wasseroberfläche durch Funktionen - Objekte im Wasser versinken/schwimmen anhand
ihres Volumens und Gewichtes im Wasser
15Einteilung der Simulation
- Probleme
- Sweeping Algorithmus nur für Kugeln, Kapsel und
Würfel - Kollision mit Höhenfeld nur in Software
berechenbar - Partikel werden nur auf Höhenfeldern diesen
gutgeschrieben - die Szene muss vorher mit Höhenfeldern
instanziiert werden - keine dynamische Erzeugung von Höhenfeldern.
- statische Geometrie und Fluidkollision
- einzige Lösung, 2 Szenen die synchronisiert
werden, komplette Neuinstanziierung der
Fluidszene (min. 90 ms)
163. Simulation der Materialeigenschaften
1. Reibung durch Starrkörper
- Wasser auf SPH Basis schon vorhanden, Verhalten
plausibel - erster Ansatz Simulation von Sand mit
Starrkörpern - (Particle-based simulation of granular
materials Nathan Bell, Yizhou Yu and Peter J.
Mucha) - Vorteil alles was man braucht (auch komplexe
Starrkörper) - Nachteil Objekte dürfen nicht zu klein sein,
Geschwindigkeit
173. Simulation der Materialeigenschaften
1. Reibung durch Starrkörper
183. Simulation der Materialeigenschaften
2. Reibung durch Kräfte
- Von PhysX berechneten Partikelgeschwindigkeiten
- räumlich unter dem untersuchtem Partikel liegende
Partikel suchen - Reibungskraft berechnen
- Reibungskraft gtgt Partikelgeschwindigkeit -gt
Partikel als statisch markieren und im Raum
festsetzen
193. Simulation der Materialeigenschaften
2. Reibung durch Kräfte
203. Simulation der Materialeigenschaften
3. Reibung durch Partikelgruppen
(Particle-based simulation of granular
materials Nathan Bell, Yizhou Yu and Peter J.
Mucha)
213. Simulation der Materialeigenschaften
4. Weitere Materialeigenschaften
- wie kleine Partikelgruppen
- Durch Temperatur oder externe Kräfte Simulation
von - Zusammenfrieren, Verkleben
- Bruch
- Verformung (Schmelzen)
- Bruch
- von einem Partikel ausgehend über Listen das
nächste suchen - Probleme
- selbst ein Partikel zwischen zwei großen Klumpen
bewirkt stabile Verbindung - Elastizität der physikalischen Partikelgruppe
(Iterationstiefe vs Kraftstärke)
224. PhysX-Simulator
234. PhysX-Simulator
245. Schlussfolgerung
1. Zusammenfassung
- Höhenfelder
- Reibung
- Partikelgruppen
- PhysX-Simulator
255. Schlussfolgerung
1. Zusammenfassung
26Schlussfolgerung
2. Diskussion
- Entwicklung mit aktueller Technologie -gt häufige
Veränderungen - -gt keine Umsetzung von Fluidoberflächen
- Entwicklungszweig von NxOgre beendet
- Gute Dokumentation von PhysX
- Ogre Dokumentation unvollständig
- Mathematische Genauigkeit
- Kompressibilität von SPH
FX
27Schlussfolgerung
2. Diskussion
- bisher hoher Geschwindigkeitsgewinn für PPU bei
Partikeln - PhysX gut geeignet zur Simulation der
untersuchten Materialien für schnelle robuste
Implementierung allerdings Zugang zum Quellcode
nötig (50k) - ohne Quellcode nur theoretische Ergebnisse
- einfache Ursache bewirkt komplexe Lösung
285. Schlussfolgerung
- Ausblick
- NVidia mit Geforce (PhysX) gegen Intel mit
Nehalem (Havok) - PhysX inzwischen auf Nvidia GPUs (9000er Serie)
(seit 2 Wochen) - Havok SDK frei (seit Juni)
- Erweiterungen für Ogre3D bieten sich an
- Abstimmung von PhysX auf reales Verhalten
29Ende
Fragen oder Anmerkungen
30Platz für zusätzliche Grafiken etc.
31Vorführung
- Übersicht Funktionalität
- Höhenfelder
- Sand durch Reibung
- Schneeflocken durch Partikelgruppen
- Schneeklumpen durch Partikelgruppen
- Rauch
32Physikalische Grundlagen
- Physikalische Grundlagen (Bodenmechanik)
- Bodenoberfläche
- Druck
- Partikelbeschaffenheit
- Granulare Materie
- Externe- und Kollisionskräfte
- Reibungskräfte
- Schnee (variable Kohäsion)
- Fluide
- Externe- und Kollisionskräfte
- Viskosität, Oberflächenspannung, Druckverhalten
33Physikalische Grundlagen
- Physikalische Simulation
- Navier-Stokes-Gleichungen
- Verwendung von Euleransatz (Finite-Differenzen-Me
thode) oder Langrange Ansatz ( Diskrete-Elemente-M
ethode) - Diskrete-Elemente-Methode -gt vereinfachte
Navier-Stokes-Gleichungen - Dichte (lokale Änderung der Geschwindigkeit
Advektion) -
- Druckgradient Viskosität externe Kräfte
- Smoothed Particle Hydrodynamics
- Druck / Viskosität / externe Kräfte
Druck Viskosität
34Eigenschaften von PhysX
- Physikengines
Starrkörperphysik, Joints
Masse-Feder-Systeme (Stoff, Soft-Body)
Partikelsimulation (Fluide)
35Eigenschaften von PhysX
- Hardware
36Eigenschaften von PhysX
- Fähigkeiten
37Eigenschaften von PhysX
- Software
Szenengraph
Listen
38Eigenschaften von PhysX
- Eigenschaften von PhysX
- Fluidsimulation tendiert stark zur Instabilität
bei Parametergrenzwerten - verschiedene Fluide können nicht interagieren
- maximal 32.000 Partikel je Fluid
- Verwendung mehrere PPU möglich
- Starrkörperphysik teilweise unrealistisch
39Umsetzung
- Lösungsansatz
Construction and Destruction
40Umsetzung
- Prinzipielle Umsetzung - Ablauf
- Sweeptest ob das Objekt in naher Zukunft das
Terrainmesh durchstößt - Kraft auf Terrain berrechnen und je nach Material
(Bodenmechanik) - Kein Effekt
- Eindrücken
- Terrain unter Berücksichtigung der Richtung des
Objektes vertiefen das Differenzvolumen mit
Partikeln füllen - Wenn sich die Partikel nicht mehr bewegen,
löschen und Terrain anheben -gt Objekte die im
Terrain stecken einschläfern
Materialsimulation erfolgt durch
Materialoberfläche
41Umsetzung
- Flüssigkeiten
- Höhenfeld als elastische Membran
- Grundlage ist die Wellengleichung
- Verwendung der Höhenwerte zur Berechnung von
Kräften auf Objekte im Fluid
42Umsetzung
- Gase (Rauch/Nebel)
43Umsetzung
- Sand und Schnee
- Keine Reibung zwischen Partikeln -gt Simulation
von Sand als Fluid (hoher Druckwiederstand,
Dämpfung und Viskosität) - Alternativ 4 Partikle verbinden!
- Fester Schnee -gt Partikel bewegen
- sich nur ab bestimmter Grenze
- Mesh der Oberfläche -gt Eiskruste
- Berechnung der Schneeverteilung
- Direkte Berechnung der
- Materialverteilung
- Simulation mit PhysX
44Umsetzung
- Fluidkollisionsgeometrie
- wird automatisch erzeugt
- kann nicht gelöscht werden
- -gt 2te Fluidszene von Hand synchronisieren und
bei - Änderungen neu erstellen
Hauptszene Fluidszene
45Umsetzung
- Berechnungsgeschwindigkeit
- nur 4000 - 6000 Partikel realistisch
- -gt relativ grosse Partikel
- Synchronisierung sorgt für Peek
46Zusammenfassung - Ziele
- Simulation granularer Materialien/Fluid mit PhysX
generell vielversprechend - Flüssigkeiten und Schnee sind vielversprechend
- Sand eingeschränkt
- Gase/ Rauch nur reiner Partikelansatz
vielversprechend - Erweiterung um zusätzliche Simulationsmethoden
oft nur auf Makroebene möglich (zbsp
Vortexpartikel nicht effizient) - Rosige Zukunft?
- Geforce 8 zur Simulation von PhysX theoretisch 25
schneller - Problem der Fluidkollissionsgeometrie ließe sich
einfach durch Löschfunktion beheben
(Brenn-funktion existiert bereits)