Fakultät Informatik Institut für Software und Multimediatechnik, Lehrstuhl Computergraphik Simulation und Visualisierung von Fluiden und granularen Materialien mit PhysX Diplomverteidigung Dresden, 22.09.2018
Motivation 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? Zunehmende realismusgrad virtuelle Umgebungen nach Grafik jetzt auch Physik Physikalische Simulationen in der Computergrafik betrachten oft isolierte Phänomene 22.09.2018 Simulation und Visualisierung von Fluiden und granularen Materialien mit PhysX
Einteilung der Simulation (LOD) Simulation der Materialeigenschaften Physik-Engines Einteilung der Simulation (LOD) Simulation der Materialeigenschaften PhysX-Simulator Schlussfolgerung An grundlegenden Dingen werde ich lediglich die Physikengines erklären, die Materialeigenschaften dürften hinlänglich bekannt sein LOD Algorithmus Hauptteil - ich werde gezielt auf einige Algorithmen eingehen und die großen Shemas nur am Rand erwähnen, dies habe ich in der Zwischenverteidigung schon ausgeführt Eine Übersicht über das entwickelte Fluidtool geben Zusammenfassung der Algorithmen, Bemerkungen zur Arbeit an sich und abschliessen der Ausblick 22.09.2018 Simulation und Visualisierung von Fluiden und granularen Materialien mit PhysX
1. Physik-Engines 1. Aktuelle Übersicht Starrkörperphysik, Joints Masse-Feder-Systeme (Stoff, Soft-Body) Nur PhysX + OpenTissue unterstützen Fluidsimulation Partikelsimulation (Fluide) FX 22.09.2018 Simulation und Visualisierung von Fluiden und granularen Materialien mit PhysX
1. Physik-Engines 2. Arbeitsweise Einordnung Shema Physikengine PAL nennen 22.09.2018 Simulation und Visualisierung von Fluiden und granularen Materialien mit PhysX
1. Physik-Engines 3. Arbeitsweise (BOEING, Adrian ; BRÄUNL, Thomas: Evaluation of real-time physics simulation systems.) Iterationstiefe (Beispiel Softbody, Beispiel Objektdurchdringung) Genauigkeit (Beispiel kleine Objekte) Fluid Berechnung (vgl Viskositätsexplosion) 22.09.2018 Simulation und Visualisierung von Fluiden und granularen Materialien mit PhysX
1. Physik-Engines 4. SPH Druck Viskosität externe Kräfte (KELAGER, Micky: Lagrangian Fluid Dynamics Using Smoothed Particle Hydrodynamics,) Druck Viskosität externe Kräfte diskrete Elemente Verfahren 3 Kraftdichtefelder Gleichung zur SPH Berechnung der 3 Felder Skalare Grösse A wird berechnet durch Summe über alle Partikel Gewichtet durch Smoothing Kernel 3 Beispielkerne (dicke Linie der Kern, dünne Linie betrag Gradient in Kernrichtung, gestrichelt die Laplacefunktion) 2ter Kern Gradient wird nicht null – Partikel stossen sich auch bei grosser Nähe ab 3ter Kern Laplacefunktion stets positiv -> keine negative Geschwindigkeit für Viskosität SPH Gitterbasierte methode Berechnung von Feldgrössen an gitterpunkten, durch dort gespreicherte skalare Grössen Partikelbasiert benötigt Methode um an beliebiger Stelle im Raum ebenfalls diese Berechnungen durchführen zu können schlechte "Volumenerhaltung" Normal Druck Viskosität 22.09.2018 Simulation und Visualisierung von Fluiden und granularen Materialien mit PhysX
1. Physik-Engines 5. PhysX - Fähigkeiten Entscheidung für PhysX fiel aus 2 Gründen 1. dedizierte Hardware 2. Komplexität ->simuliert eine Vielzahl von verschiedenen Objekten 22.09.2018 Simulation und Visualisierung von Fluiden und granularen Materialien mit PhysX
6. Vergleiche - Würfel in Havok und PhysX 1. Physik-Engines 6. Vergleiche - Würfel in Havok und PhysX 22.09.2018 Simulation und Visualisierung von Fluiden und granularen Materialien mit PhysX
7. Vergleiche - Fluidberechnung auf PPU und CPU 1. Physik-Engines 7. Vergleiche - Fluidberechnung auf PPU und CPU 22.09.2018 Simulation und Visualisierung von Fluiden und granularen Materialien mit PhysX
1. 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) Shema Berechnungsschleife PhysX max 64k Objekte, max 4k Objekte bei nur PPU Berechnung keine Fluidmischung max 32k Partikel je Fluid vgl. "synthetische Ergebnisse" von mehreren Millionen oder hundertausenden Partikeln auf der GPU Kollisionsgeometrie (Anzahl der Objekte gering) keine direkte Interaktion möglich Eigenschaften Viskosität Steifheit Reibung mit Starrkörpern Kompressibel Widerstandskraft Sprungkraft KEINE Reibung (abgesehen von Viskosität) 22.09.2018 Simulation und Visualisierung von Fluiden und granularen Materialien mit PhysX
Einteilung der Simulation Ansatz hohe Komplexität -> Unterscheidung zwischen lokaler Simulation und globaler Simulation In der wissenschaftlichen Untersuchung physikalischer Phenomäne häufig getrennt (Beispiel der eulerbasierten Fluidsimulation mit Gittern) Populäre Beispiele global Höhenfeld vgl „Computer Modelling of Fallen Snow“ Paul Fearing lokal Partikel vgl „Particle-based simulation of granular materials” Nathan Bell, Yizhou Yu and Peter J. Mucha Umsetzung in PC Spielen wenig, aber in der Filmindustrie „Horton hört ein Hu“ und „Pirates of the Caribian“ „Particle-based simulation of granular materials” „Computer Modelling of Fallen Snow“ Nathan Bell, Yizhou Yu and Peter J. Mucha Paul Fearing 22.09.2018 Simulation und Visualisierung von Fluiden und granularen Materialien mit PhysX
Einteilung der Simulation Übergang Höhenfeld -> 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 -> 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 Höhenfeld -> Partikel Kollision manuell testen um Reaktion abzufangen -> 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 -> 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 22.09.2018 Simulation und Visualisierung von Fluiden und granularen Materialien mit PhysX
Einteilung der Simulation Anpassung Rauch - nur lokales nicht dauerhaftes Phänomen daher kein Höhenfeld Wasser - dynamisches Höhenfeld -> keine Erzeugung von Partikeln sondern Simulation der Wasseroberfläche durch Funktionen Objekte im Wasser versinken/schwimmen anhand ihres Volumens und Gewichtes im Wasser Rauch - nur lokales nicht dauerhaftes Phenomän daher kein Höhenfeld Wasser - dynamisches Höhenfeld -> keine Erzeugung von Partikeln sondern Simulation der Wasseroberfläche durch Funktionen gut erforscht, bespielhaft nur Implementation einer Funktion Objekte im Wasser versinken/schwimmen anhand ihres Volumens und Gewichtes im Wasser 22.09.2018 Simulation und Visualisierung von Fluiden und granularen Materialien mit PhysX
Einteilung 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) Probleme – vorgegebene Probleme: Sweeping Algorithmus nur für Kugeln, Kapsel und Würfel Kollision mit Höhenfeld nur in Software berechenbar Entstandene Probleme statische Geometrie und Fluidkollision einzige Lösung, 2 Szenen die synchronisiert werden, komplette Neuinstanziierung der Fluidszene Material wird nur auf Höhenfeldern diesen gutgeschrieben. D.h die Szene muss vorher mit Höhenfeldern instanziiert werden. Keine dynamische Erzeugung von Höhenfeldern. 22.09.2018 Simulation und Visualisierung von Fluiden und granularen Materialien mit PhysX
3. 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 Wasser auf SPH Basis schon vorhanden, Verhalten plausibel erster Ansatz Simulation von Sand mit Starrkörpern Vorteil: alles was man braucht (auch komplexe Starrkörper) Nachteil: Objekte dürfen nicht zu klein sein, max 64k Objekte nur 4k Objekte wenn schnelle Berechnung auf PPU Bei Würfeln und Kugelgruppen ohne „Reibung“ möglich, nur Kugeln benötigen extra Reibung (berechnet von PhysX) In Ruhe kein Berechnungsaufwand, da Objekte „eingeschläfert“ 22.09.2018 Simulation und Visualisierung von Fluiden und granularen Materialien mit PhysX
3. Simulation der Materialeigenschaften 1. Reibung durch Starrkörper Wasser auf SPH Basis schon vorhanden, Verhalten plausibel erster Ansatz Simulation von Sand mit Starrkörpern Vorteil: alles was man braucht (auch komplexe Starrkörper) Nachteil: Objekte dürfen nicht zu klein sein, max 64k Objekte nur 4k Objekte wenn schnelle Berechnung auf PPU 22.09.2018 Simulation und Visualisierung von Fluiden und granularen Materialien mit PhysX
3. Simulation der Materialeigenschaften 2. Reibung durch Kräfte Von PhysX berechneten Partikelgeschwindigkeiten räumlich unter dem untersuchtem Partikel liegende Partikel suchen Reibungskraft berechnen Reibungskraft >> Partikelgeschwindigkeit -> Partikel als statisch markieren und im Raum festsetzen beruht auf Rollreibung: Gleichung vgl Ansatz von "Simulation von Partikeln als Fluid" gleicher Ansatz wie bei Starrkörperphysik: Einschläfern von Partikeln (Festsetzen im Raum) regelmässig prüfen ob "Boden" noch da 22.09.2018 Simulation und Visualisierung von Fluiden und granularen Materialien mit PhysX
3. Simulation der Materialeigenschaften 2. Reibung durch Kräfte 22.09.2018 Simulation und Visualisierung von Fluiden und granularen Materialien mit PhysX
3. Simulation der Materialeigenschaften 3. Reibung durch Partikelgruppen („Particle-based simulation of granular materials” Nathan Bell, Yizhou Yu and Peter J. Mucha) "kleine Softbodies" ABER: nur Berechnung von Kräften zwischen aktueller Partikelposition und idealer Partikelposition im Körper (KEINE Kräfte zwischen Partikeln (ausser SPH)) vgl. Ansatz von Sandsimulation mit zusammengesetzten Starrkörpern Massezentrum + Offset aller Partikel Kräfte die auf Partikel wirken bewirken Translation bzw Rotation Kräfte bewirken Bruch oder bei hoher Temperatur Auflösung der Strukturen 22.09.2018 Simulation und Visualisierung von Fluiden und granularen Materialien mit PhysX
3. Simulation der Materialeigenschaften 4. Weitere Materialeigenschaften wie kleine Partikelgruppen Durch Temperatur oder externe Kräfte Simulation von Zusammenfrieren, Verkleben Bruch Verformung (Schmelzen) 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) wie kleine Partikelgruppen vgl Ansatz von deformierbaren Körpern (Surfel und Texel ?) Simulation von Zusammenfrieren, Verkleben Bruch Verformung (Schmelzen) Probleme Viskoses Verhalten (vgl. Wackelpudding) Lösung durch Starke Kräfte -> Instabilität Softbody Ansatz, Iterative Berechnung nicht möglich da kein Zugang zum Quellcode von einem Partikel ausgehend über Listen das nächste suchen bisheriger Ansatz, selbst ein Partikel zwischen zwei großen Klumpen bewirkt stabile Verbindung 22.09.2018 Simulation und Visualisierung von Fluiden und granularen Materialien mit PhysX
4. PhysX-Simulator Zur Umsetzung der Untersuchung und der Implementierung wurde ein umfangreiches Tool entwickelt folgende Elemente spielen zusammen: Shema von PhysX Ogre und NxOgre Detailierter Graph 22.09.2018 Simulation und Visualisierung von Fluiden und granularen Materialien mit PhysX
4. PhysX-Simulator Zur Umsetzung der Untersuchung und der Implementierung wurde ein umfangreiches Tool entwickelt folgende Elemente spielen zusammen: Shema von PhysX Ogre und NxOgre Detailierte Elemente - Verweis auf Vorführung 22.09.2018 Simulation und Visualisierung von Fluiden und granularen Materialien mit PhysX
5. Schlussfolgerung 1. Zusammenfassung Höhenfelder Reibung Partikelgruppen PhysX-Simulator 22.09.2018 Simulation und Visualisierung von Fluiden und granularen Materialien mit PhysX
5. Schlussfolgerung 1. Zusammenfassung 22.09.2018 Simulation und Visualisierung von Fluiden und granularen Materialien mit PhysX
Schlussfolgerung 2. Diskussion Entwicklung mit aktueller Technologie -> häufige Veränderungen -> keine Umsetzung von Fluidoberflächen Entwicklungszweig von NxOgre beendet Gute Dokumentation von PhysX Ogre Dokumentation unvollständig Mathematische Genauigkeit Kompressibilität von SPH Entwicklung mit aktueller Technologie -> häufige Veränderungen Marktübersicht bei Beginn der Diplomarbeit vgl zu Ende der Diplomarbeit Aufkauf von Ageia durch Nvidia Umsetzung von PhysX auf GPU über CUDA (ab Geforce 8) -> Benchmarkergebnisse sind obsolet keine Höhenfeldflüssigkeiten bei update im Februar kein Patch für Problem mit statischer Geometrie Treiber für GPU erst letzte Woche Havok letzte Woche öffentlich -> Möglichkeit des Vergleichs mit PhysX Entwicklungszweig von NxOgre beendet und durch neues PhysX SDK keine Umsetzung von Fluid FX 22.09.2018 Simulation und Visualisierung von Fluiden und granularen Materialien mit PhysX
Schlussfolgerung 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 NVidia mit Geforce (PhysX) gegen Intel mit Nehalem (Havok) noch nicht abzusehen ob GPU oder CPU sich durchsetzt () bisher hoher Geschwindigkeitsgewinn für PPU bei Partikeln PhysX gut geeignet zur Simulation der untersuchten Materialien für schnelle robuste Implementierung allerdings Zugang zum SDK nötig (vgl. Problem mit Fluidkollisionsgeomtrie) schlechte "Volumenerhaltung" in SPH (hohe Kompressibilität) großesProblem für starre Materialien PhysX simuliert unterschiedlichste Materialtypen -> gute Grundlage für Erweiterung 22.09.2018 Simulation und Visualisierung von Fluiden und granularen Materialien mit PhysX
5. 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 22.09.2018 Simulation und Visualisierung von Fluiden und granularen Materialien mit PhysX
Fragen oder Anmerkungen Ende Fragen oder Anmerkungen 22.09.2018 Simulation und Visualisierung von Fluiden und granularen Materialien mit PhysX
Platz für zusätzliche Grafiken etc. 22.09.2018 Simulation und Visualisierung von Fluiden und granularen Materialien mit PhysX
Vorführung Übersicht Funktionalität Höhenfelder Sand durch Reibung Schneeflocken durch Partikelgruppen Schneeklumpen durch Partikelgruppen Rauch 22.09.2018 Simulation und Visualisierung von Fluiden und granularen Materialien mit PhysX
Physikalische Grundlagen Physikalische Grundlagen (Bodenmechanik) Bodenoberfläche Druck Partikelbeschaffenheit Granulare Materie Externe- und Kollisionskräfte Reibungskräfte Schnee (variable Kohäsion) Fluide Viskosität, Oberflächenspannung, Druckverhalten Schnee weißt hier ein Besonderheit auf, er kann von losem bis festen Zustand sein 22.09.2018 Simulation und Visualisierung von Fluiden und granularen Materialien mit PhysX
Physikalische Grundlagen Physikalische Simulation Navier-Stokes-Gleichungen Verwendung von Euleransatz (Finite-Differenzen-Methode) oder Langrange Ansatz ( Diskrete-Elemente-Methode) Diskrete-Elemente-Methode -> 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 PhysX verwendet SPH um Fluide zu simulieren Basiert auf den NST Gleichungen, werden in der numerischen Strömungssimulation verwendet Generell 2 Lösungsansätze FEM und DEM Unter Verwendung der DEM können die NSTG zu … vereinfacht werden SPH löst die einzelnen Terme über eine gewichtete Summe aller Partikel für jedes einzelne Partikel Verwendet dazu verschiedene Smoothing Kernel für Fluideigenschaften Druck Viskosität 22.09.2018 Simulation und Visualisierung von Fluiden und granularen Materialien mit PhysX
Eigenschaften von PhysX Physikengines Starrkörperphysik, Joints Masse-Feder-Systeme (Stoff, Soft-Body) Eine Physikengine simuliert physikalisches Verhalten, das Objektverhalten wird für jeweils einen kurzen Zeitschritt berechnet Ein paar Beispiele für aktuelle Echtzeit Physikengines Alle Echtzeit Physikengines setzen Starkörperphysik um Havok zusätzlich noch Stoffsimulation PhysX ist die bei weitem fortgeschrittenste Physikengine, sie kann auch Soft Body‘s und Partikelsysteme Partikelsimulation (Fluide) 22.09.2018 Simulation und Visualisierung von Fluiden und granularen Materialien mit PhysX
Eigenschaften von PhysX Hardware Hardwaredreieck mit den drei Möglichkeiten wo Physikberechnung stattfinden kann Physik bisher Kommerziel nur auf CPU und PPU, GPU eher experimentell Havok FX wurde von Intel aufgekauft, liegt seitdem auf Eis , daher kein Fluid für Havok PhysX wurde von Nvidia aufgekauft, daher PPU die erste und letzte ihrer Art In Zukunft 2 kommerzielle Ansätze Intel mit Havok auf CPU – Mehr-Prozessor-Ansatz Nvidia mit PhysX auf GPU - Stream-Prozessor-Ansatz Für die Arbeit relevante Umgebung ist aber PhysX auf (mehreren) PPU 22.09.2018 Simulation und Visualisierung von Fluiden und granularen Materialien mit PhysX
Eigenschaften von PhysX Fähigkeiten 22.09.2018 Simulation und Visualisierung von Fluiden und granularen Materialien mit PhysX
Eigenschaften von PhysX Software Szenengraph Listen Verwendung dieser 5 Komponenten für die Arbeit Bisherige Arbeit Simulation der Szenen mit PhysX und Darstellung durch OpenGL NxOgre dient als Wrapper zwischen Ogre und PhysX Verbindung zwischen Listenorientierter Verwaltung in PhysX und Szenengraph in Ogre NxOgre leistet dies für Stoff und Starkörperphysik NxOgre – Top –Down Ansatz Neue Ansatz Bottom – Up –> Erweiterung so, dass in PhysX erzeugte Objekte automatisch ihre Repräsentation in Ogre erhalten Fluidrepräsentation erfolgt nicht über Erweiterung von NxOgre sondern direkt 22.09.2018 Simulation und Visualisierung von Fluiden und granularen Materialien mit 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 22.09.2018 Simulation und Visualisierung von Fluiden und granularen Materialien mit PhysX
Umsetzung Lösungsansatz Grundsätzliche Idee ist granulare Materie oder Fluid nur lokal zu simulieren Sonst Approixmation durch ein dynamisches Höhenfeld Idee ist nicht neu, ähnliche Idee wurde zbsp im PC Spiel „Construction and Destruction“ angewandt, allerdings ohne Partikelsimulation„ Construction and Destruction 22.09.2018 Simulation und Visualisierung von Fluiden und granularen Materialien mit PhysX
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 -> Objekte die im Terrain stecken „einschläfern“ Materialsimulation erfolgt durch Materialoberfläche 22.09.2018 Simulation und Visualisierung von Fluiden und granularen Materialien mit PhysX
Umsetzung Flüssigkeiten Höhenfeld als elastische Membran Grundlage ist die Wellengleichung Verwendung der Höhenwerte zur Berechnung von Kräften auf Objekte im Fluid Werde jetzt kurz auf einige besonderheiten der verschiedenen Materialien eingehen Flüssigkeiten Höhenfeld muss zum Nachahmen des Verhaltens von Flüssigkeiten noch simuliert werden -> Approximation von 3 Dimensionen zu 2D (kleinerer Berechnungsaufwand, Strömungen kaum auflösbar, keine brechenden Wellen) Verwendung der Wellengleichung PDG 2ten Grades durch 2 ersten Grades ersetzen Diskretisieren in Raum und Zeit Dient der Darstellung Berechnete Höhenwerte dienen zur Berechnung von Impulsen die auf Objekte im Wasser angewendet werden 22.09.2018 Simulation und Visualisierung von Fluiden und granularen Materialien mit PhysX
Umsetzung Gase (Rauch/Nebel) Vortexpartikel Mit PhysX gibt es keine Wirbelbildung -> Vorticity confinement - Wirbelstärkenerhaltung – bei gitterbasierter Methode Verlust von kleinen Wirbeln durch numerische Ungenauigkeiten. Wieder einbringung durch vc. Methode gitterbasierte Methode – Geschwindigkeiten als Grundlage Daraus Wirbelstärke berechnen Normalisierte Gradient der Wirbelstärke berechnen – zeigt von niedrigen zu hohen Wirbelkonzentrationen Zum Schluss ergibt sich die Stärke und Richtung zu fconf (e reguliert die Wirbelstärke) 22.09.2018 Simulation und Visualisierung von Fluiden und granularen Materialien mit PhysX
Umsetzung Sand und Schnee Keine Reibung zwischen Partikeln -> Simulation von Sand als Fluid (hoher Druckwiederstand, Dämpfung und Viskosität) Alternativ 4 Partikle verbinden! „Fester“ Schnee -> Partikel bewegen sich nur ab bestimmter Grenze Mesh der Oberfläche -> „Eiskruste“ Berechnung der Schneeverteilung Direkte Berechnung der Materialverteilung Simulation mit PhysX Keine Reibung zwischen Partikeln -> Simulation von Sand als Fluid (hoher Druckwiederstand, Dämpfung und Viskosität) Zusätzlich zur Simulation ergibt sich bei Schnee einfach die Möglichkeit die Szene mit „realistisch“ mit Schnee zu füllen 2 Ansätze vergleichbar, einmal direkte Berechnung der Materialverteilung unter Berücksichtigung von Objektschatten, Windfeldern und lokalem Ausgleich Direkte Simulation durch PhysX mit Partikeln Bei Schnee approximiert das dynamische Mesh sehr gut eine „Eiskruste“ „Fester“ Schnee -> Partikel bewegen sich nur ab bestimmter Grenze 22.09.2018 Simulation und Visualisierung von Fluiden und granularen Materialien mit PhysX
Fluidkollisionsgeometrie Umsetzung Fluidkollisionsgeometrie wird automatisch erzeugt kann nicht gelöscht werden -> 2te „Fluidszene“ von Hand synchronisieren und bei Änderungen neu erstellen Nicht vorhersehbares Problem Weiter ausholen: PhysX Szenen Verwaltung gliedert sich wie folgt- Shema erläutern Kollisionsgeometrie zwischen Fluid und statischen Objekten wird für das jeweilige Fluidpacket automatisch und dynamisch gespeichert – Einfache Intergration von Fluiden Problem: es gibt keine Möglichkeit diese Geometrie zu beeinflussen Holzhammermethode: Szene komplett löschen und neu erzeugen -> 2 Szenen – Hauptszene ohne Fluid – synchronisierte Szene mit Fluid die bei Veränderung der Kollisionsgeometrie neu erzeugt wird Hauptszene Fluidszene 22.09.2018 Simulation und Visualisierung von Fluiden und granularen Materialien mit PhysX
Berechnungsgeschwindigkeit Umsetzung Berechnungsgeschwindigkeit nur 4000 - 6000 Partikel realistisch -> relativ grosse Partikel Synchronisierung sorgt für Peek Nur 4000-6000 Partikel generell realistisch (Verwendung mehrerer PPUs möglich) Die Folge Partikel müssen relativ gross sein, bei einem Einschlag, werden schon ca 1000 Partikel erzeugt wenn Höhenfeldauflösung 10 cm Partikeldurchmesser 1 cm!! – Abdeckung für 512x512 -> 2500m^2 Synchronisierung der 2 Szenen sorgt für kurzzeitigen spürbaren Geschwindigkeitseinbruch, bei dauerhaftem Synchronisieren (Wind) Einbruch auf 1/6 der Geschwindigkeit 22.09.2018 Simulation und Visualisierung von Fluiden und granularen Materialien mit PhysX
Zusammenfassung - 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) 22.09.2018 Simulation und Visualisierung von Fluiden und granularen Materialien mit PhysX