Hauptseminar – Computer Graphics Oliver Meister computer graphics &...

download Hauptseminar – Computer Graphics Oliver Meister computer graphics & visualization HS Computer Graphics Cloud Rendering

of 31

  • date post

    06-Apr-2016
  • Category

    Documents

  • view

    225
  • download

    4

Embed Size (px)

Transcript of Hauptseminar – Computer Graphics Oliver Meister computer graphics &...

Hauptseminar Computer Graphicscomputer graphics & visualization
HS Computer Graphics
computer graphics & visualization
Hauptseminar – Computer Graphics Oliver Meister
computer graphics & visualization
Was sind Wolken?
„A cloud is a visible mass of condensed droplets or ice crystals suspended in the atmosphere above the surface of the Earth or another planetary body . “
http://en.wikipedia.org/wiki/cloud
computer graphics & visualization
- sehr hohe Anforderung an physikalische Korrektheit
Echtzeit-Flugsimulatoren, sonstige Spiele:
- hohe/mittlere Anforderung an Grafik
computer graphics & visualization
computer graphics & visualization
Höhe
Stratocumulus
Altocumulus
Cirrocumulus
Cumulus
Cirrus
Stratus
Altostratus
Nimbostratus
Cirrostratus
Cumulonimbus
computer graphics & visualization
Luftbewegung:
Summe der Kräfte, die auf einen Punkt in der Wolke einwirken und Massenerhaltung (= Divergenzfreiheit bei inkompressiblen Fluiden)
) Inkompressible Euler-Gleichungen:
f: Beschleunigung durch externe Kräfte
Änderung von u
computer graphics & visualization
) water continuity equation:
Temperatur:
Änderung der potentiellen Temperatur (d.h. von p unabhängig) ergibt sich nur aus Verdampfung und Kondensation
) thermodynamic equation:
Änderung von qv
computer graphics & visualization
computer graphics & visualization
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
Hauptseminar – Computer Graphics Oliver Meister
computer graphics & visualization
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
Hauptseminar – Computer Graphics Oliver Meister
computer graphics & visualization
mit
computer graphics & visualization
2.2 MS Flight Simulator 2004 (Wang)
2.2.1 Modellierung
computer graphics & visualization
2D-Array mit Geschwindigkeitsvektoren
) Geschwindigkeit, Druck, usw. werden in einem (hier) regulären Gitter gespeichert
Diskretisierung der Zeit
Hauptseminar – Computer Graphics Oliver Meister
computer graphics & visualization
3. Druck
computer graphics & visualization
) Führt zu einer einfachen Differentialgleichung:
Über Diskretisierung ergibt sich hieraus ein lösbares LGS
Helmholtz-Theorem: jedes Vektorfeld ist Summe eines divergenzfreien und eines rotationsfreien Feldes
-> Zentrale Differenzen usw. hier erklären
Hauptseminar – Computer Graphics Oliver Meister
computer graphics & visualization
2. Phasenübergang
Hauptseminar – Computer Graphics Oliver Meister
computer graphics & visualization
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.
Hauptseminar – Computer Graphics Oliver Meister
computer graphics & visualization
Passe dafür Texturkoordinaten und WorldViewProjection-Matrix so an, dass die Textur den Viewport genau bedeckt.
(! DX9-Doku: „Directly mapping texels to pixels“)
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
Texel auf Pixel abbilden
Erstelle Floating-Point-Texturen (z.B. mit Format.R32F oder Format.A32B32G32R32F) für u, p, usw. mit Parameter Usage.Rendertarget
Bei 3D-Wolken: Ausgabe per slice in 3D Textur oder in Flat 3D Texture
Hauptseminar – Computer Graphics Oliver Meister
computer graphics & visualization
nicht möglich.
dazwischen lineare Interpolation
computer graphics & visualization
Multiple Forward Scattering
„Multiple Forward Scattering“ = Licht wird nur entlang des Lichtstrahls gestreut (Approximation der Mie-Streuung)
Zur Erinnerung:
computer graphics & visualization
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
Hauptseminar – Computer Graphics Oliver Meister
computer graphics & visualization
Algorithmus für eine Beleuchtungs-Textur:
Generiere Slices des Volumes, indem das k-1-te Slice mittels Alpha-Blending auf das k-te Slice gerendert wird.
Ausgerichtete Beleuchtungs-Textur
Dichte-Textur ¢ Beleuchtungs-Textur = beleuchtete Wolke
Multipliziere Dichte-Textur mit 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)
fdest := Tk-1, cdest := Ik-1
computer graphics & visualization
zusätzlich noch Einfach-Streuung in Kamerarichtung:
Multiple Forward Scattering und Eye Scattering
Vorgehen größtenteils analog
Die Slices sind hierbei in Richtung
der Kamera orientiert, und werden
über Quads direkt auf den Viewport
gerendert.
-> Demo
computer graphics & visualization
2.2 MS Flight Simulator 2004 (Wang)
Hauptprobleme bei Skyworks:
Performance-Einbußen durch Fluid-Dynamik und komplexe Lichtberechnung
) für kommerzielles Produkt also eher ungeeignet
Hauptseminar – Computer Graphics Oliver Meister
computer graphics & visualization
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.
3DSMax Plugin für Wokenerstellung
Um eine größere Fläche zu bedecken wird dann eine Wolkenformation aus mehreren Einzelwolken gebildet.
Hauptseminar – Computer Graphics Oliver Meister
computer graphics & visualization
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
Von Quadern..
..zu Sprites
computer graphics & visualization
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)
Wolken als Billboards
Falls die Kamera herumschwenken sollte und auf die Kante des Sprites blickt, wird einfach die Transparenz reduziert.
Hauptseminar – Computer Graphics Oliver Meister
computer graphics & visualization
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
computer graphics & visualization
Der Trick dabei:
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
computer graphics & visualization