HS Computer Graphics - PowerPoint PPT Presentation

1 / 31
About This Presentation
Title:

HS Computer Graphics

Description:

'A cloud is a visible mass of condensed droplets or ice crystals ... Cumulus. Cirrus. Stratus. Altostratus. Nimbostratus. Cirrostratus. Cumulonimbus. H he ... – PowerPoint PPT presentation

Number of Views:88
Avg rating:3.0/5.0
Slides: 32
Provided by: oliverm8
Category:

less

Transcript and Presenter's Notes

Title: HS Computer Graphics


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 ice crystals 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
(No Transcript)
6
1.1 Grundlagen
  • Klassifizierung nach WMO (World Meteorological
    Organisation)

Höhe
7
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
8
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
9
1.2 Wolkenphysik
  • 1.2.2 Optik
  • Absorption

Absorptions-Gleichung ?(t) optische
Dichte, ? Strahlrichtung
Absorption eines Lichtstrahls
10
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
11
1.2 Wolkenphysik
  • Mie-Streuung, d.h. Größe des Streukörpers gt/
    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
  • Mehr Infos unter
  • http//hyperphysics.phy-astr.gsu.edu/hbase/atmos/
    blusky.html

12
1.2 Wolkenphysik
  • Streuungs-Gleichung

mit
a(x) Streuungskoeffizient, p Phasenfunktion
Absorption und Streuung des Lichts
13
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

14
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
15
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?
16
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 einer einfachen Differentialgleichung
Über Diskretisierung ergibt sich hieraus ein
lösbares LGS
17
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)
18
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.
19
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
20
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
21
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
22
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
23
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
24
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
25
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

26
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
27
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
Von Quadern..
..zu Sprites
28
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
29
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
30
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
31
Ende
  • Vielen Dank für die Aufmerksamkeit!
  • Fragen?
Write a Comment
User Comments (0)
About PowerShow.com