Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Advanced Topics in Computer Graphics and Visualization

Ähnliche Präsentationen


Präsentation zum Thema: "Advanced Topics in Computer Graphics and Visualization"—  Präsentation transkript:

1 Advanced Topics in Computer Graphics and Visualization
Animating Sand as a Fluid Hanno Flohr Master Informatik

2 Gliederung Grundlagen Fluidsimulation Animation von Sand als Fluid
mit Gittern mit Partikeln Animation von Sand als Fluid Fluidsimulation Modellierung des Sands Oberflächenrekonstruktion mit Partikeln

3 Fluidsimulation Fluide: verschiedene Fluidarten
Flüssigkeiten Gase verschiedene Fluidarten zähflüssig oder reibungsfrei komprimierbar oder nicht komprimierbar verschiedene Flussarten (laminar/turbulent) Verschiedene Ansätze zur Beschreibung Fluidsimulation mit Eulerschen Gittern Fluidsimulation mit Lagrangeschen Partikeln

4 Fluidsimulation Gleichungen zur Berechnung basieren auf:
Massenerhaltung Impulserhaltung Volumenkräfte (z.B. Gravitation) Oberflächenkräfte (Druckkraft, Reibung gemäß Viskosität) Randbedingungen Bestimmen Geometrie des Fluidrands und Flußverhalten am Rand Variablen: Geschwindigkeit 𝑉 = (𝑢,𝑣,𝑤) 𝑇 Hilfsvariablen (z.B. Druck, Dichte, Viskosität)

5 Fluidsimulation Kontinuitätsgleichung für inkompressible Fluide:
𝑑𝑖𝑣(𝐺𝑒𝑠𝑐ℎ𝑤𝑖𝑛𝑑𝑖𝑔𝑘𝑒𝑖𝑡)=0 Navier-Stokes Gleichung (für inkompressible Fluide): 𝑑𝑣 𝑑𝑡 =−𝑣∗𝛻 𝑣+ 𝑓+ 𝜇 𝜌 𝛻² 𝑣 − 𝛻𝑝 𝜌 𝑑𝑣 𝑑𝑡 =− Advektion+ Volumenkräfte+Diffusion −Druck Advektion: Fluid transportiert Werte/Objekte Volumenkräfte: Beschleunigung durch externe Kräfte Diffusion: Glättung des Vektorfelds (abhängig von Viskosität) Druck: stellt sicher das Geschwindigkeitsfeld divergenzfrei bleibt

6 Fluidsimulation mit Gittern
Gitterpunkte speichern Geschwindigkeit, Druck, Indikator wo das Fluid (nicht) ist und zusätzliche Variablen Bestimmung der Zelleninhalte Leer Oberfläche Voll Randbedingungen für betroffene Zellen festlegen volle Zellen: Geschwindigkeitskomponenten berechnen und einen Iterationsschritt für neuen Druck Oberflächenzellen: Randgeschwindigkeit neu berechnen Position und Oberfläche updaten

7 Fluidsimulation mit Gittern
Hauptvorteil: Simple Diskretisierung der Gleichungen und Lösung der Inkompressibilitätsbedingung Nachteile: Gitter benötigt Werte auch an Gitterpunkten ohne Fluid Probleme mit Advektion hohe numerische Diffusion wegen akkumulierter Interpolationsfehler durch numerische Approximation der Gleichungen

8 Fluidsimulation mit Partikeln
Smoothed Particle Hydrodynamics (SPH) SPH Modell: Fluid als Set von diskreten, sich bewegenden Partikeln speichern Position und Geschwindigkeit Kontinuitätsgleichung durch Modell erfüllt konstante Anzahl Partikel mit konstanter Masse Fluid kann sich frei ausbreiten Partikeleigenschaften beeinflussen Nachbarschaft

9 Smoothed Particle Hydrodynamics
SPH Simulation: Dichte aller Partikel bestimmen Masseneinfluss benachbarter Partikel Beschleunigung aller Partikel berechnen Krafteinflüße benachbarter Partikel Geschwindigkeiten updaten Alle Partikel bewegen Position der Partikel updaten

10 Smoothed Particle Hydrodynamics
Vorteile: hohe Präzision bei Advektion kein Gitter benötigt Nachteile: Nachbarschaftsbestimmung nötig effizienteste Methoden basieren auf Sortierung der Partikel in gewöhnliche Gitter, kd-tree oder BSP-tree Probleme mit Druck und Inkompressibilitätsbedingung oft kleinere Zeitschritte benötigt

11 Animation von Sand als Fluid
Fluidsimulation Modellierung des Sands Oberflächenrekonstruktion mit Partikeln

12 Fluidsimulation Komplementarität der Stärken und Schwächen von Gittern und Partikeln nutzen Gitter Partikel Inkompressibilität / Druck + - Advektion ja als Hilfsstruktur

13 Fluidsimulation Particle-in-Cell (PIC): Fluid-Implicit-Particle (FLIP)
Partikel für Advektion, Gitter für Rest Problem: hohe numerische Diffusion durch wiederholte Mittelung und Interpolation Fluid-Implicit-Particle (FLIP) Partikel fundamentale Repräsentation des Fluids Gitter zum Aktualisieren der Partikelvariablen, gemäß auf dem Gitter berechneten Änderungen Verbesserung: kaum numerische Diffusion

14 Algorithmus (1) Adaption von PIC und FLIP für nicht komprimierbare Flüße: Initialisierung der Partikel 8 Partikel pro Zelle Randomly jittered (gegen Aliasing) Partikel nahe der Fluidoberfläche: mindestens halbe Zelle von Oberfläche entfernt

15 Algorithmus (2) Übertragung auf Gitter:
Gitterpunkte erhalten gewichtetes Mittel der nahen Partikel (trilineare Interpolation) Markierung von Gitterzellen mit zumindest einem Partikel im unmarkierten Gitterbereich: Abstandsfeld konstruieren um Geschwindigkeitsfeld außerhalb des Fluids auszudehnen

16 Algorithmus (3) Berechnungen auf dem Gitter:
Addieren der Beschleunigung durch Gravitation Randbedingungen und Inkompressibilität erzwingen neues Geschwindigkeitsfeld erneut ausdehnen Gitter nur als Zusatzstruktur (Gitter muss nicht in jedem Zeitschritt gleich sein)

17 Algorithmus (4) Partikelgeschwindigkeiten updaten
Trilineare Interpolation der Geschwindigkeit (PIC) oder Geschwindigkeitsänderung (FLIP) gemäß der 8 umliegenden Gitterpunkte zähflüssige Strömung (zB Sand): PIC reibungsfreie Strömung (zB Wasser): FLIP

18 Algorithmus (5) Partikel bewegen (Advektion)
Simpler ODE solver mit 5 Zwischenschritten Beachtung der CFL Bedingung (max eine Zelle pro Zwischenschritt) Erkennen von Partikeln die feste Wände durchdringen Behebung zur Vermeidung von Artefakten

19 Animation von Sand als Fluid
Fluidsimulation Modellierung des Sands Oberflächenrekonstruktion mit Partikeln

20 Modellierung des Sands
Definiton der Materialverformung Mohr-Coulomb-Gesetz für statische Reibung: Scherspannung 𝜎 𝑠 (lässt Partikel aneinander gleiten) Druck 𝜎 𝑚 (drückt Partikel aneinander) μ: Reibungswert 3 𝜎 𝑠 <μ 𝜎 𝑚 Scherspannung zu gross: einfachste Flussregel angewandt: Sand darf sich in Richtung der Scherkraft ausbreiten

21 Zusammenhalt (Kohäsion)
kleine numerische Fehler können zu Gleiten im Sand führen (-> instabil) Kohäsionskoeffizient 𝑐 zum Ausgleich der Fehler 3 𝜎 𝑠 <μ 𝜎 𝑚 +𝑐 höhere Scherspannung nötig bevor Sand fließt erreichter Effekt: stabiles Verhalten des Sands im Ruhezustand kein sichtbarer Effekt auf Fluss wenn Sand in Bewegung Aber: zur Modellierung von Gesteinen mit wirklicher Kohäsion ungeeignet, da zu stabil

22 Vereinfachtes Modell (Annahmen)
Nicht komprimierbare Strömung -> konstante Dichte Druck um gesamtes Geschwindigkeitsfeld inkompressibel zu machen ähnlich richtigem Druck im Sand Keine Beachtung von elastischer Verformung minimaler Volumenänderung zu Beginn/Ende des Flusses Aufteilung: Zellen mit starrer Bewegung und Zellen mit nicht komprimierbarer Scherströmung

23 Vereinfachtes Modell (Annahmen)
Fließflächen-Bedingung: Sand kann Kräften und Massenträgheit widerstehen > Zelle mit starrer Bewegung Verfestigung der Geschwindigkeit starrer Regionen: Gruppen von zusammenhängenden starren Zellen finden einheitliche Geschwindigkeit für starre Regionen bestimmen projizierte Starrkörperbewegung berechnen

24 Reibungsrandbedingungen
definieren Reibung zwischen Sand und anderen Objekten Randbedingungen bisher erlauben: entweder keinerlei Gleiten oder dauerhaftes Gleiten Video-Quelle:

25 Reibungsrandbedingungen
Reibungsformel: Statische Reibung: Geschwindigkeit in Tangentialrichtung = Null Kinetische Reibung: Geschwindigkeit in Tangentialrichtung proportional reduziert Video-Quelle:

26 Algorithmus (für jeden Zeitschritt)
Gewöhnliche Schritte der Fluidsimulation (Advektion, Gravitation, Randbedingungen, Druck, etc) Berechnung: Formänderungsgeschwindigkeitstensor pro Zelle (zentrale Differenzen) Speichern der Zellen als starr oder fließend Gruppen von starren Zellen finden und Geschwindigkeiten verfestigen Update verbleibender Geschwindigkeiten mit Reibungsspannung

27 Animation von Sand als Fluid
Fluidsimulation Modellierung des Sands Oberflächenrekonstruktion mit Partikeln

28 Oberflächenrekonstruktion
durch Simulation: Positionen der Partikel welche das Fluid definieren für hochqualitatives Rendering: Oberfläche zur Umhüllung der Partikel nötig

29 Oberflächenrekonstruktion
Prinzip: exakte Rekonstruktion des Abstandsfelds der Partikel Für jeden Gitterpunkt: naheliegende Partikel in Radius um Gitterpunkt (𝑥) finden gewichtetes Mittel der Postionen ( 𝑥 ) und Radien ( 𝑟 ) aller naheliegenden Partikel berechnen Gewichtung anhand Kernelfunktion und Radius um Gitterpunkt Abstand zu naheliegenden Partikeln berechnen: 𝑑 𝑥 = 𝑥 − 𝑥 − 𝑟

30 Oberflächenrekonstruktion
Oberfläche bestimmen: benachbarte Gitterpunkte mit unterschiedlichen Vorzeichen für Abstand Oberfläche zwischen diesen Gitterpunkten Oberflächenpunkte anhand Abstandswerten bestimmbar Vorteile: Geringe Kosten pro Frame Unabhängige Frames -> Berechnung mit mehreren CPUs/Maschinen parallel möglich

31 Oberflächenrekonstruktion
Probleme: Artefakte in konkaven Regionen gemittelte Position kann irrtümlich außerhalb der Oberfläche liegen Lösung: Sampling auf höherer Auflösung + ein smoothing pass Radien müssen genaue Abschätzungen des Abstands zur Oberfläche sein keine schnelle Methode zur Berechnung mit genügend hoher Präzision vorhanden Darum: alle Radien fest (konstanter durchschnittlicher Partikelabstand) und Initialabstand an Oberfläche anpassen

32 Video: Sand Column Video-Quelle:

33 Video: Water Column Video-Quelle:

34 Vielen Dank für ihre Aufmerksamkeit!
Fragen?


Herunterladen ppt "Advanced Topics in Computer Graphics and Visualization"

Ähnliche Präsentationen


Google-Anzeigen