1 / 34

Advanced Topics in Computer Graphics and Visualization

Advanced Topics in Computer Graphics and Visualization. Animating Sand as a Fluid Hanno Flohr Master Informatik. Gliederung. Grundlagen Fluidsimulation m it Gittern m it Partikeln Animation von Sand als Fluid Fluidsimulation Modellierung des Sands

mikasi
Download Presentation

Advanced Topics in Computer Graphics and Visualization

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

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?

More Related