Advanced Topics in Computer Graphics and Visualization - PowerPoint PPT Presentation

mikasi
advanced topics in computer graphics and visualization n.
Skip this Video
Loading SlideShow in 5 Seconds..
Advanced Topics in Computer Graphics and Visualization PowerPoint Presentation
Download Presentation
Advanced Topics in Computer Graphics and Visualization

play fullscreen
1 / 34
Download Presentation
Advanced Topics in Computer Graphics and Visualization
126 Views
Download Presentation

Advanced Topics in Computer Graphics and Visualization

- - - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript

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

  2. Gliederung • GrundlagenFluidsimulation • mitGittern • mitPartikeln • Animation von Sand als Fluid • Fluidsimulation • Modellierung des Sands • OberflächenrekonstruktionmitPartikeln

  3. Fluidsimulation • Fluide: • 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: • Navier-Stokes Gleichung (für inkompressible Fluide): • 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 alsFluid • Fluidsimulation • Modellierungdes Sands • OberflächenrekonstruktionmitPartikeln

  12. Fluidsimulation • Komplementarität der Stärken und Schwächen von Gittern und Partikeln nutzen

  13. Fluidsimulation • Particle-in-Cell (PIC): • 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 alsFluid • Fluidsimulation • Modellierung des Sands • OberflächenrekonstruktionmitPartikeln

  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 • 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 • 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: http://www.cs.ubc.ca/~rbridson/movies/websandbunny.mov

  25. Reibungsrandbedingungen Reibungsformel: • Statische Reibung: Geschwindigkeit in Tangentialrichtung = Null • Kinetische Reibung:Geschwindigkeit in Tangentialrichtung proportional reduziert Video-Quelle: http://www.cs.ubc.ca/~rbridson/movies/sandbunny.mov

  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 alsFluid • Fluidsimulation • Modellierung des Sands • OberflächenrekonstruktionmitPartikeln

  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 Abstandsfeldsder 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: http://www.cs.ubc.ca/~rbridson/movies/sandcolumn.mov

  33. Video: Water Column Video-Quelle: http://www.cs.ubc.ca/~rbridson/movies/webwaterslide.mov

  34. Vielen Dank für ihre Aufmerksamkeit! Fragen?