1 / 31

HS Computer Graphics

HS Computer Graphics. Cloud Rendering. Inhalt. 1 Problemstellung 1.1 Grundlagen 1.2 Wolkenphysik 1.2.1 Dynamik 1.2.2 Optik 2 Rendering-Verfahren 2.1 Skyworks (Harris) 2.2 MS Flight Simulator 2004 (Wang). 1 Problemstellung. 1.1 Grundlagen Was sind Wolken?.

Download Presentation

HS Computer Graphics

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. HS Computer Graphics Cloud Rendering

  2. Inhalt 1 Problemstellung 1.1 Grundlagen 1.2 Wolkenphysik 1.2.1 Dynamik 1.2.2 Optik 2 Rendering-Verfahren 2.1 Skyworks (Harris) 2.2 MS Flight Simulator 2004 (Wang)

  3. 1 Problemstellung 1.1 Grundlagen Was sind Wolken? „A cloud is a visible mass of condensed droplets or icecrystals suspended in the atmosphere above the surface of the Earth or another planetary body.“ http://en.wikipedia.org/wiki/cloud

  4. 1.1 Grundlagen Wo werden Wolken-Simulationen gebraucht? • Wetter-, Strömungssimulatoren für Flugzeuge: - mittlere/niedrige Anforderung an Effizienz - niedrige/gar keine Anforderung an Grafik - sehr hohe Anforderung an physikalische Korrektheit • Echtzeit-Flugsimulatoren, sonstige Spiele: - sehr hohe Anforderung an Effizienz - hohe/mittlere Anforderung an Grafik - mittlere/niedrige Anforderung an physikalische Korrektheit

  5. Cirrostratus Cirrocumulus Cirrus Nimbostratus Cumulonimbus Altostratus Altocumulus Stratus Stratocumulus Cumulus 1.1 Grundlagen Klassifizierung nach WMO (World Meteorological Organisation): Höhe

  6. 1.2 Wolkenphysik 1.2 Wolkenphysik 1.2.1 Dynamik • Luftbewegung: Summe der Kräfte, die auf einen Punkt in der Wolke einwirken und Massenerhaltung (= Divergenzfreiheit bei inkompressiblen Fluiden) Änderung von u über die Zeit t Auftrieb, Externe Kräfte Druck-Gradient Advektion ) Inkompressible Euler-Gleichungen: u: Geschwindigkeit, p: Druck, B: Auftrieb, : (molekulare) Dichte f: Beschleunigung durch externe Kräfte

  7. 1.2 Wolkenphysik • Luftfeuchtigkeit: Massenerhaltung von Wasserdampf + kondensiertem Wasser Änderung von qv über die Zeit t Advektion ) water continuity equation: qv: Wasserdampf-Anteil, qc: Kondenswasser-Anteil, C: Kondensationsrate • Temperatur: Änderung der potentiellen Temperatur (d.h. von p unabhängig) ergibt sich nur aus Verdampfung und Kondensation Änderung von  über die Zeit t Advektion ) thermodynamic equation: : potentielle Temperatur, -L / (cp) ist Konstante

  8. 1.2 Wolkenphysik 1.2.2 Optik • Absorption Absorptions-Gleichung: (t) = optische Dichte,  = Strahlrichtung Absorption eines Lichtstrahls

  9. 1.2 Wolkenphysik • Streuung Streuungsarten: • Rayleigh-Streuung, d.h. Größe des Streukörpers « Wellenlänge der Strahlung - tritt bei Wolkenpartikeln (¸ 2 m) NICHT auf Streuung bei kurzen Wellenlängen wesentlich stärker Rayleigh-Streuung des Sonnenlichts an der Atmosphäre

  10. 1.2 Wolkenphysik Mehr Infos unter: http://hyperphysics.phy-astr.gsu.edu/hbase/atmos/blusky.html • Mie-Streuung, d.h. Größe des Streukörpers >/≈ Wellenlänge der Strahlung. Streuung nur schwach von Wellenlänge abhängig Verantwortlich für weiße Färbung der Wolken durch Streuung an Wassertröpfchen Rayleigh- und Mie-Streuung im Vergleich

  11. 1.2 Wolkenphysik Streuungs-Gleichung: mit a(x)= Streuungskoeffizient, p = Phasenfunktion Absorption und Streuung des Lichts

  12. Inhalt 1 Problemstellung 1.1 Grundlagen 1.2 Wolkenphysik 2 Echtzeit-Verfahren 2.1 Skyworks (Harris) 2.1.1 Numerische Simulation der Wolkendynamik 2.1.2 Rendering über 3D Texturen 2.2 MS Flight Simulator 2004 (Wang) 2.2.1 Modellierung 2.2.2 Rendering über Billboards

  13. 2 Echtzeit-Verfahren 2.1 Skyworks (Harris) 2.1.1 Numerische Simulation der Wolkendynamik Vorgehen: • Diskretisierung des Raumes ) Geschwindigkeit, Druck, usw. werden in einem (hier) regulären Gitter gespeichert • Diskretisierung der Zeit ) Aktualisierung der Zustände in diskreten Zeitschritten 2D-Array mit Geschwindigkeitsvektoren

  14. 2.1 Skyworks • Lösung der Euler-Gleichungen: 1. Selbst-Advektion Advektion von u 2. Auftrieb und externe Kräfte 3. Druck ( woher bekommen wir p?

  15. 2.1 Skyworks Details zu Schritt 3: Helmholtz-Theorem: jedes Vektorfeld ist Summe eines divergenzfreien und eines rotationsfreien Feldes Helmholtz-Theorem in Anwendung auf ein 2D-Gitter )Führt zu einereinfachen Differentialgleichung: Über Diskretisierung ergibt sich hieraus ein lösbares LGS

  16. 2.1 Skyworks • Lösung der water continuity equation: 1. Advektion (analog zu u) 2. Phasenübergang qvs = Sättigungspunkt = der Wasserdampf-Anteil bei dem gilt: Kondensationsrate = Verdampfungsrate (Gleichgewicht)

  17. 2.1 Skyworks • Lösung der thermodynamic equation: 1. Advektion 2. Temperaturausgleich ) Implementation der angegebenen Schritte ist relativ trivial. Ersetzt man die Arrays durch 2D- bzw. 3D-Texturen, so lässt sich die gesamte Rechnung sogar auf der GPU durchführen.

  18. 2.1 Skyworks • Implementation am Beispiel Managed DirectX: • Erstelle Floating-Point-Texturen (z.B. mit Format.R32F oder Format.A32B32G32R32F) für u, p, usw. mit Parameter Usage.Rendertarget • Implementiere (soweit nötig) für jeden Rechenschritt einen Pixelshader der die Werte für u, p, usw. aus den Texturen liest, daraus die neuen Werte berechnet und in die entsprechende Textur wieder ausgibt • Passe dafür Texturkoordinaten und WorldViewProjection-Matrix so an, dass die Textur den Viewport genau bedeckt. (! DX9-Doku: „Directly mapping texels to pixels“) Texel auf Pixel abbilden

  19. 2.1 Skyworks Beispiel: 2D-Wolke auf 128x128 Gitter, gerendert mit ¸ 30fps. Die optische Dichte (Opazität) definiert der Wasseranteil qc. Problem: Echtzeit-Berechnung einer 3D-Wolke per frame mit angegebener Technik nicht möglich. Daher: Berechnung nur alle paar Sekunden, dazwischen lineare Interpolation

  20. 2.1 Skyworks 2.1.2 Rendering über 3D Texturen Dazu vereinfachtes Beleuchtungsmodell nötig: „Multiple Forward Scattering“ = Licht wird nur entlang des Lichtstrahls gestreut (Approximation der Mie-Streuung) Zur Erinnerung: Multiple Forward Scattering (MFS): statt also Multiple Forward Scattering

  21. 2.1 Skyworks Diskretisierung ergibt: In rekursiver Schreibweise: mit Tk := exp(-k), I0 := Ia, IN := Ib, gk := g(xk, l) 8 k )Einfaches Verfahren, das auf der Hardware z.B. mittels 3D-Texturen durchführbar ist

  22. 2.1 Skyworks Algorithmus für eine Beleuchtungs-Textur: • Erstelle ein 3D-Volume, das die komplette Wolke einschließt, richte es nach der Lichtquelle aus und setze die Kamera auf die Position der Lichtquelle (gerichtetes Licht: isometrische Perspektive) Ausgerichtete Beleuchtungs-Textur • Generiere Slices des Volumes, indem das k-1-te Slice mittels Alpha-Blending auf das k-te Slice gerendert wird. Alpha-Blend-Funktion: Setze also fsrc := 1, csrc := gk-1, fdest := Tk-1, cdest := Ik-1 • Multipliziere Dichte-Textur mit Beleuchtungs-Textur Dichte-Textur ¢ Beleuchtungs-Textur = beleuchtete Wolke

  23. 2.1 Skyworks Bisher Lichtberechnung unabhängig vom Betrachter, daher zusätzlich noch Einfach-Streuung in Kamerarichtung: mit Sk = gestreutes Licht am Punkt xk in Kamerarichtung Vorgehen größtenteils analog zum MFS-Algorithmus. Die Slices sind hierbei in Richtung der Kamera orientiert, und werden über Quads direkt auf den Viewport gerendert. Multiple Forward Scattering und Eye Scattering

  24. 2.2 MS Flight Simulator 2004 2.2 MS Flight Simulator 2004 (Wang) Hauptprobleme bei Skyworks: • Kontrollierbarkeit nur eingeschränkt gegeben, da Aussehen nur indirekt beeinflussbar • Nur bestimmte Wolkentypen darstellbar (Stratuswolken z.B. problematisch wegen großer Fläche) • Performance-Einbußen durch Fluid-Dynamik und komplexe Lichtberechnung ) für kommerzielles Produkt also eher ungeeignet

  25. 2.2 MS Flight Simulator 2004 2.2.1 Modellierung In FS2004 werden die Wolken nicht dynamisch generiert, sondern Models verwendet, die in 3Dsmax erstellt wurden. • Die grobe Form einer Wolke wird dabei über eine Menge von Quadern festgelegt. • Um eine größere Fläche zu bedecken wird dann eine Wolkenformation aus mehreren Einzelwolken gebildet. 3DSMax Plugin für Wokenerstellung

  26. 2.2 MS Flight Simulator 2004 • Für die Texturierung wird eine Auswahl vorgenerierter Texturen für die verschiedenen Wolkentypen benutzt, die beliebig kombiniert werden können. • Im letzten Schritt wird jeder Quader in ein 2D-Sprite umgewandelt, (= halb transparentes, texturiertes 2D-Objekt) das frei um den Mittelpunkt des Quaders rotierbar ist. Vorgenerierte Texturen ..zu Sprites Von Quadern..

  27. 2.2 MS Flight Simulator 2004 2.2.1 Rendering über Billboards Im Spiel werden die Wolken als Billboards gerendert, d.h. die 2D-Sprites werden rotiert, damit sie immer zur Kamera zeigen. • Um einen „Parting of the Red Sea“-Effekt zu vermeiden, wird dabei der Sichtwinkel bei kleiner Entfernung zur Kamera gesperrt. (hier · Spriteradius / 2) • Falls die Kamera herumschwenken sollte und auf die Kante des Sprites blickt, wird einfach die Transparenz reduziert. Wolken als Billboards

  28. 2.2 MS Flight Simulator 2004 Optimierung mittels Impostor-Ringen: • Werden viele Wolken auf einmal dargestellt, resultiert das in einem großen Anteil von Wolken, der zwar gerendert wird, aber eigentlich nicht sichtbar ist. (Overdraw) • Daher werden alle Wolken mit einem Mindestabstand zum Betrachter in einen Ring aus sog. Impostors gerendert. • Der Ring wird dann wie eine Kulisse um die Kamera platziert, um die enthaltene Szene vorzutäuschen. Impostor-Ring um die Kamera

  29. 2.2 MS Flight Simulator 2004 Der Trick dabei: Man generiert die Impostors nicht in jedem Frame neu, sondern nur wenn es nötig wird, d.h. sobald ein festgesetzter Fehlerwert durch Rotation oder Translation der Kamera überschritten wird. Performance-Gewinn durch Impostors

  30. Ende Vielen Dank für die Aufmerksamkeit! … Fragen?

More Related