Home >Documents >Wolken - TU Dresden

Wolken - TU Dresden

Date post:04-Nov-2021
Category:
View:0 times
Download:0 times
Share this document with a friend
Transcript:
das Ziel Ansatze fur die Darstellung vorzustellen sowie Eigenheiten zu
erklaren. Sie konzentriert sich hauptsachlich auf die zwei Arbeiten Real
Time Cloud Rendering von Harris et al sowie Realistic and Fast Cloud
Rendering von Niniane Wang.
1 Einfuhrung
Wolken nehmen in der Computergrafik eine eigene Positione. Sie lassen sich nicht so leicht darstellen, wie zusammenhangende Korper mit einer festen oder mathematisch gut beschreibbaren Oberflache. Licht durchdringt Wolken auf un- terschiedlichen Wegen und Grenzen verlaufen diffus. Allein die Speicherung einer Wolke kann uns vor einige Probleme stellen. Aus diesen Grunden wurden Wolken in vielen Darstellungen einfach weggelassen, getreu dem Motto, ein wolkenfreier Himmel ist doch auch etwas schones. Oft wird auch einfach ein vorgefertigtes Bild (designt oder als Foto) dargestellt, siehe “einfache Darstellungsverfahren”. Die Verfahren die ich hier vorgestellt werden stammen allesamt aus der Com- puterspielgeschichte. Dort kommt es bei der Darstellung immer darauf an, dass sie sehr schnell erfolgt. Wolken mogen schon sein, sind aber selten das Spielbe- herrschende oder -bestimmende Element, deswegen bleibt wenig Rechenzeit fur das Rendering ubrig. Dennoch sollte es moglich sein das Verfahren von Harris et al (siehe “Fortgeschrittene Technik”) fur wissenschaftliche Simulationen zu adaptieren. Bevor wir mit verschiedenen Darstellungsmoglichkeiten starten, soll erstmal ge- klart werden, worum es sich bei Wolken uberhaupt handelt. Wolken sind Kondensprodukte von Wasser sowie Eis, die in einigem Abstand uber dem Boden schweben. Man findet sie hauptsachlich in der Troposphare, selten auch in der Stratosphare. Das hat den Grund, dass die Luft mit steigender
1
Hohe immer kalter wird, ein Vorgang, der sich in der Tropopause aber umkehrt. Der Bereich unter dieser ist stabiler, so dass Wolken selten aufgrund der Tem- peratur die Troposphare verlassen. Wolken konnen auch fremdartige Teilchen wie Staub, Abgase, Rauch enthalten. Bei starken Aufwinden auch schwerere Teilchen moglich. Die Weltorganisation fur Meteorologie klassifiziert Wolken in 10 Wolkengattun- gen sowie diversen Arttypen und Begleitformen. Die Wolkengattungen sind die Cirrus (Federwolke), die Cirrucumulus (kleine Schafchenwolke), die Cirrustratus (hohe Schleierwolke), die Altocumulus (großere Schafchenwolke), die Altostra- tus (mittelhohe Schichtenwolke), die Stratocumulus (Haufenschichtwolke), die Stratus (tiefe Schichtenwolke), die Cumulus (Haufenwolke), die Nimbostratus (Regenwolke), und die Cumulonimbuswolke (Gewitterwolke). Die meisten Darstellungsverfahren konzentrieren sich auf die Cumuluswolke, da sie der am ehesten wahrgenommene Wolkentyp ist.
2 Einfache Techniken
Einfache Techniken konzentrierten sich bereits fruher darauf, vorgemalte Wol- ken schnell zeichnen zu konnen. Dazu wurden in 2D-Spielen ein Bild einer Wolke mit einem Colorkey versehen, eine Farbe die bei Darstellung als Durchsichtig
2
3
Abbildung 11: 2D-Sprite Wolke im Spiel Super Mario Kart Abbildung 12: Skybox in Benutzung
Abbildung 13: Skybox Abbildung 14: Skybox - aufgeklappt
markiert ist, und von der Grafikkarte uber eine Szene gemalt. In 3D Spielen wird haufig eine Technik namens “Skybox” verwendet. Diese Box umgibt die komplette Szenerie und bewegt sich nicht mit der Kamera mit, reagiert aber auf deren Rotation. Die Box erscheint dadurch unendlich weit entfernt. Auf die Innenseite wird mit Hilfe von Texturen die eigentliche Umgebung inklusive Wolken gemalt. Animationen sind moglich, wenn verschiedene Schichten von Texturen auf die Wurfelflachen dargestellt werden, und diese bewegt werden. Kompliziertere Objekte als der Wurfel (“Skydome”) ermoglichen auch einfache Animationen: Indem die Knotenpunkte zwischen auf dem Dome gleitend ver- andert eingefarbt werden wirkt das auf die Texturen und es sind Effekte wie Sonnenauf- und Untergang moglich.
3 Fortgeschrittene Technik
Dieses Kapitel beschaftigt sich mit dem Darstellungsverfahren wie es in [Harris01] beschrieben wird. Dazu wird eine “Idealwolke” hinsichtlich Aufbau sowie Licht- ausbreitung analysiert und versucht ein Renderingverfahren zu entwickeln. Zum einfacheren Verstandnis erlautere ich zuerst die physikalischen Annahm-
4
Abbildung 15: Gaußverteilung
nen sowie die Lichtausbreitung in der Wolke, um dann zum eigentlichen Dar- stellungsverfahren uberzugehen.
3.1 (Physikalische) Annahmen
Das Verfahren geht davon aus, dass wir eine Wolke in etwa 200 Partikel untertei- len konnen. Ein Partikel einer kubischen Wolke der Große (10m)3 hatte damit einen Durchmesser von Rund 0.8m. Diesen Partikel werden die Eigenschaften Position, Opazizat und Albedo (Ruckstrahlvermogen) zugeordnet. Der Raum um einen Partikel wird dabei gaußverteilt interpoliert. Das heißt, dass an jedem Punkt innerhalb der Wolke aus den Nachbarpartikeln die momentane Opazitat und Position interpoliert werden kann. Weiterhin wird angenommen, dass sich die Wolke zeitlich nicht verandert. Es wird weder eine Wolkenentstehung noch eine Bewegung simuliert. Das Licht soll sich innerhalb der Wolke auf zwei Wegen ausbreiten:
• Direkter Weg Dabei nimmt die Lichtstarke in Abhangigkeit des Weges ab
• Indirekter Weg Beleuchtete Punkte streuen das Licht und strahlen selber wiederrum welches ab.
Die indirekte Beleuchtung soll lokal begrenzt sein.
3.2 Aufbau einer Wolke
Die Wolken werden von Designern aus Kisten aufgebaut, die automatisch von einem entsprechenden Programm mit Partikeln gefullt werden. Die Partikelposi- tion sowie Opazitat wird errechnet. Farbe und Albedo mussen jedoch eingegeben werden. In begrenztem Maße hinsichtlich Schonheit konnen Wolken auch zufallig generiert werden.
5
3.3 Lineare Lichtausbreitung innerhalb der Wolke
Fur die Lichtausbreitung wird die Wolke zuerst als zusammenhangender Be- reich von unendlich kleinen Punkten interpretiert. Erst danach wird auf wenige Partikel vereinfacht. Ferner wird Licht immer als Intensitat I an einem bestimmten Punkt p in eine bestimmte Richtung ω betrachtet, kurz: I(p, ω).
Abbildung 16: Lineare Lichtausbreitung
Mochten wir nun errechnen, wie wieviel Licht von einem Punkt A zu einem Punkt B (in Richtung ω) gelangt mussen wir beachten, dass sich das Licht durch die Opazitat der auf dem Weg liegenden Punkten abschwacht. Diese Ab- schwachung verhalt sich wie ein naturlicher Zerfallsprozess. Dadurch lasst sich die lineare Lichtausbreitung wie folgt in Form eines Integrals darstellen:
I(B,ω) = I(A,ω) · e− R B
A τ(t)dt
∫ B A τ(t)dt beschreibt den aufsummierten Absorptionskoeffizient uber den Weg
von A nach B. e−tau(..) errechnet die Lichtabnahme.
6
Licht welches sich von Außerhalb in die Wolke zu dem Punkt B ausbreitet verhalt sich analog:
I(B,ω) = I(0, ω) · e− R B 0 τ(t)dt
Wobei I(0, ω) die Intensitat am Eintritt des Lichtes in die Wolke in Richtung ω ist.
3.4 Nichtlineares Streulicht innerhalb der Wolke
Im Falle des Nichtlinearen Streulichtes wird davon ausgegangen, dass Licht wel- ches von einem Punkt aufgenommen wird zu einem Teil in alle Richtungen gestreut wird.
Abbildung 17: Streeung an einem Punkt
Diese Streuung ist abhangig von
• der Richtung des einfallenden Lichtes
• dem Absorptionskoeffizient (nur Licht, dass absorpiert wird, wird gestreut)
• dem Albedo (Ruckstrahlvermogen)
Um das gestreute Licht zu berechnen nutzen wir folgende Formel:
h(x, ω, ω′) = r(x, ω, ω′) · I(x, ω′)
Wobei h(x, ω, ω′) angibt wieviel Licht aus Richtung ω′ in Richtung ω am Punkt x gestreut wird. r(x, ω, ω′) ist die bidirektionale Streuungsverteilungsfunktion (BSDF, Bidirec- tional scattering distribution function), die angibt wie hoch der Anteil des (aus Richtung ω′ in Richtung omega) gestreuten Lichtes ist. I(x, ω′) ist wiederum die Intensitat des einfallenden Lichtes.
7
r(x, ω, ω′) = a(x) · τ(x) · p(ω, ω′)
Die Phasenfunktion gibt das unterschiedliche Verhalten in Bezug auf Ein/Ausgangsrichtung an. Als Beispiel hierfur eignet sich die Rayleigh-Streuungsphasenfunktion p(ω, ω′) = 3 4 (1 + (ω·ω′)
(|ω|·|ω′|) )2. Abbildung 18 zeigt die Funktion in polarer Darstellung in Abhangigkeit des Winkels zwischen Ein- und Ausgaberichtung. Um nun zu er- rechnen wieviel Streulicht von einem Punkt x in eine bestimmte Richtung ω
emmitiert wird, konnen wir das Streulicht aus allen Eingangsrichtungen auf- summieren:
g(x, ω) = ∫
3.5 Beleuchtung eines einzelnen Punktes
Die Beleuchtung eines einzelnen Punktes p ist die Summe der Einzelbeleuchtung mit direktem Licht sowie indirektem Licht:
I(p, ω) = I0(ω) · e− R Dp 0 τ(t)dt +
∫ Dp
0
s τ(t)dtds
Der erste Summand ergibt sich aus dem linearen Licht von außen (z.B. der Sonne) an den Punkt p. Der zweite Summand ergibt sich aus dem Licht welches von jedem Punkt auf dem Weg von außen zu p durch Streuung emittiert wird, wiederrum abgeschwacht durch die Regeln der linearen Lichtausbreitung.
8
3.5.1 Vereinfachung
Die Berechnung der Beleuchtung an einem Punkt wurde ohne Vereinfachung sehr lange dauern, da das Licht aus allen Richtungen berucksichtigt werden mussten. Auf dem Weg wurde es daruberhinaus von jedem Punkt in alle Rich- tungen gestreut werden, dies ware wieder zu berucksichtigen. Ganz davon abge- sehen, dass unsere Punkte innerhalb der Wolke undendlich klein sein. Aufgrund der Annahme das Streuung raumlich begrenzt ist konnen folgende Vereinfachun- gen getroffen werden:
1. Streuung erfolgt nur noch in etwa entgegengesetzter Richtung zur Ein- gangsrichtung (ω′ = −ω)
2. Es wird nur noch Licht aus der Richtung l der Lichtquelle berucksichtigt
Mit der ersten Annahme vereinfacht sich die Formel zur Errechnung des Streu- lichts deutlich:
g(x, ω) = ∫
Streuung nur noch in einem engen Winkel γ um ω:
g(x, ω) = r(x, ω,−ω) · I(x,−ω) · γ 4π
γ verhalt sich dabei als Einstellparameter. Er muss großer als 0 sein, ansonsten ware das Streulicht verschwunden. Die zweite große Vereinchaung erfolgt durch die Annahme, dass die Wolke in Partikel unterteilt werdn kann. Die Lichtberechnung wird nicht fur alle (unend- lich viele) Punkte sondern fur alle Partikel ausgefuhrt. Um nun unseren Partikel p zu berechnen, werden nun die N Partikel auf dem Weg von außen auf dem Weg betrachtet. Die Richtung ω fallt weg, weil nur noch eine Richtung (namlich von der Lichtquelle) berucksichtigt wird. Dadurch wird die Funktion zur Lichtberechnung am Punkt p zu
I(p, ω) = I0(ω) · e− R Dp 0 τ(t)dt +
∫ Dp
0
I(p) = I0 · N∏ j=1
·e−τj + N∑ j=1
gj N∏ k=j+1
e−τk
Dabei ist τi der aufsummierte Ausloschungskoeffizient fur den Partikel i in- nerhalb seines Wirkungskreises. Wir erinnern uns, dass die Umgebung um die Partikel gaußinterpoliert wird. Das auf dem Weg emmitierte Streulicht gj stellt
9
gj = g(j, ω) = a(j) · τ(j) · p(ω,−ω) · I(j) · γ 4π
Fur eine einfacherere Berechnung ware es wunschenswert, wenn die Beleuch- tung aller Partikel iterativ bestimmt werden konnte. Dazu lasst sich die Formel umstellen.
I(p) = I0 · N∏ j=1
·e−τj + N∑ j=1
gj N∏ k=j+1
e−τk
Wobei T (k) = e( − τk)
3.6 Renderprozess
Der eigentliche Renderprozess spaltet sich nun in zwei Teile auf
1. Fur jeden Partikel wird ausgerechnet, wieviel Licht es von der Sonne ein- fangt (Beleuchtungsrechnung)
2. Jeder Partikel wird zum Betrachter als Polygon gerendert.
Um die Partikel fur den Betrachter darzustellen wird errechnet wieviel Licht von jedem Partikel ankommt. Dazu betrachten wir das Licht, was von den Partikeln in Richtung des Betrachters emmitiert wird und schwachen dies auf dem Weg ab. Dabei fallt auf, dass sich das an einem Punkt p emmitierte Licht wieder als Streulicht sowie geschwachtes einfallendes Licht verhalt. Starten wir nun nicht vom ersten Partikel der Wolke in Richtung eines Partikels, sondern vom entferntesten Partikel 0 in Richtung des Betrachters, so konnen wir wie bei der Beleuchtungsrechnung einen iterativen Weg des Lichtes bestimmen:
E0 = S0
E(k) = Sk + Tk · Ek−1
Wobei E(p) das von p emmitierte Licht darstellt, S(p) das von p gestreute. Ge- streutes Licht wird durch die gleiche Formel wie bei der Beleuchtungsberechnung dargestellt:
S(p, ω) = a(p) · τ(p) · p(ω,−l) · I(p, l) · γ 4π
10
Abbildung 20: Partikeltextur
l ist wieder die Richtung der Sonne, da wir jeden Partikel von dieser Richtung aus beleuchtet haben. Wie man sieht wird als Ausgang nur das von den jeweiligen Partikeln in Richtung Betrachter gestreute Licht genommen. Die eigentliche Aufsummierung wird von der Grafikkarte mittels Blending (Back to Front) durchgefuhrt. Dazu werden die einzelnen Partikel als Polygone gezeichnet. Auf diese wird eine Textur mit der Partikelfarbe sowie einer Gaußformigen Opazitatsverteilung aufgetragen. Die Eckknoten werden in Partikelfarbe eingefarbt, als Alphakanal wird der Partikelopazitatswert genommen. Die Grafikkarte interpoliert dann automatisch die Eckknoten uber das komplette Polyon und farbt das Polygon ein.
11
Mehrere Lichtquellen lassen sich leicht hinzufugen, da sich Licht additiv verhalt. Fur jede Lichtquelle werden fur jeden Partikel eine eigene einfallende Lichtstar- ken errechnet. Bei der Darstellung muss jede einzelne Lichtquelle berucksichtigt werden, z.B. in dem das Objekt hintereinander fur jede Quelle gerendert wird.
Abbildung 21: Wolke, beschienen von Sonne und indirekt uber Ozean
3.8 Beschleunigung durch dynamisch generierte Impostor
Impostor sind eine altere Technologie die auf [Schaufler95] zuruckgehen. Uber- setzt bedeutet das Wort soviel wie Hochstapler. Sie stellen eine Moglichkeit dar, kompliziert zu rendernde Objekte, die sich in großer Entfernung befinden ressourcensparend zu vereinfachen: Das Objekt wird dazu statt in die fertige Szene in eine oder mehrere Texturen gerendert, die statt dem eigentlichen Ob- jekt in der Szene angezeigt werden. Diese Texturen zeigen immer in Richtung Kamera (Billboards - “Werbetafeln”). Da sich das Bild eines Objekts in großerer Entfernung bei kleineren Kamerabewegungen nicht besonders andert, kann die Impostor-Texture oft fur mehrere folgende Darstellungen benutzt werden. Um Impostor zu benutzen ist eine Fehlerrechnung notwendig. Die benotigte Impostorgroße lasst sich uber den Strahlensatz ausrechnen. Sollte der Impostor zu klein ausfallen, so musste er neu berechnet werden:
restexture = resscreen = s
d
Wobei s die Objektgroße ist, d die Objektentfernung, restexture die Impostor- Texturauflosung, resscreen die Bildschirmauflosung. Eine weitere Fehlergroße schlagt [Harris01] vor: Dabei ist α der Winkel der sich ergibt wenn man die Objektausdehnung (in die Tiefe), die bei der ursprunglichen Impostorgenerierung benutzt wurde aus der aktuellen Blickposition betrachtet. Im Idealfall ist der Winkel 0; da man das Objekt von vorn anschaut, umso mehr man sich von dem Punkt entfernt umso großer wird der Winkel. Uberschreitet
12
Abbildung 22: Impostorfehlergroße α
er eine bestimmte kritische Grenze, so muss der Impostor neu generiert werden.
Abbildung 23: Eine Wolke bestehend aus Impostoren
3.8.1 Effekte die sich durch Impostoren erzeugen lassen
Impostoren eignen sich nicht nur, um die Wolken schneller zu zeichnen. Mit ihrer Hilfe konnen auch verschiedene Effekte erzeugt werden. Dazu werden die Wolken immer als Impostor neugezeichnet. Der Overhead dazu ist gering, da der Aufwand zur Erstellung des Impostors konstant ist, wahrend der Aufwand zur Darstellung einer Wolke stark mit Anzahl der Partikel steigt. Die Wolke durch mehrere Impostoren zu zeichnen hat Vorteile:
• Die Kamera kann durch die Wolke fliegen. Dabei “ploppen” immer wieder Impostoren vor der Kamera weg. Dies ahnelt Wolkenschichten und wirkt realitatsnah.
• Es ist moglich weitere Objekte in der Wolke zu zeichnen. Dadurch erscheint das Objekt teils durch die Wolke (den vorderen Impostor) verdeckt, ver- deckt selbst aber auch hintere Teile.
13
In diesem Kapitel mochte ich einige Erweiterungen aus [Wang03] vorstellen. In ihrer Methode bestehen Wolken nicht mehr aus Partikeln sondern 16 Basisflock- entypen (“fluffs”). Das Rendering erfolgt direkt durch einen Grafikshader, der jeden einzelnen Punkt innerhalb einer Wolke in Abhangigkeit von Wolkenzen- trum, Sonnenposition, Sonnenfarbe sowie Flockenhohe darstellt. Ein Vorberech- nung fallt weg, was verschiedene Zeitbasierte Modifikationen erlaubt sowie das Verfahren beschleunigt. Die Helligkeit einer Wolke ist uber die Hohe nicht kon- stant, sondern in einer (tageszeitabhangigen) 1D-Textur gespeichert. Auch das Sonnenlicht wird in Abhangigkeit von der Tageszeit interpretiert.
Abbildung 24: Die 16 Basisflocken
Abbildung 25: 1D Hohenfarbtextur
4.0.2 Dynamische Wolkenentstehung
Eine scheinbar dynamische Wolkenentstehung ist mit Wangs Modell moglich: Dazu werden Wolken hiararchisch im Speicher gehalten. Sie besitzen einen Wol- kenkern und verschiedene Begleitteile. Soll eine Wolke dynamisch entstehen so
14
wird ihr Opazizatskanal auf 0 gestellt. Langsam wird die Opazitat des Kerns erhoht. Ab einem bestimmten Schwellwert wird die Opazitat der Begleitteile erhoht. Es wirkt als ob eine Wolke langsam von innen nach außen entstehen. Die Wolkenauflosung erfolgt analog in umgekehrter Richtung.
4.0.3 Geschwindigkeit, Vorteile
Das Verfahren in [Wang03] hat einige Vorteile. So fallt der aufwendige Vorbe- rechnungsschritt weg. Durch die verschiedenen Flockenformen sind mehr unter- schiedliche Wolkentypen moglich. Impostor sind fur “In-Wolken-Darstellungen” nicht mehr notwendig, die einzelnen Partikel reichen aus. Um dennoch weit ent- fernte Wolken zu beschleunigen wird ein Ring von 8 Impostoren in einstellbarer Entfernung um den Beobachter platziert. Nachteil des Verfahrens ist, dass die erhohte visuelle Qualitat sowie die Ge- schwindigkeit mit Hilfe der Arbeit von Gestaltern eingekauft wird. Dies ist un- praktisch wenn man das Renderverfahren fur computergenerierte Daten benut- zen mochte.
5 Zusammenfassung, Diskussion
Wie man erkennt variieren die Darstellungsmoglichkeiten fur Wolken. Im ein- fachsten Fall reicht eine einfache Darstellung durch 2D-Sprites. Fur die meisten 3D-Computerspiele werden Skyboxen oder Skydome genutzt. Erst in letzterer Zeit und insbesondere in Flugsimulatoren hat man sich intensi- ver mit der realistischen Wolkendarstellung beschaftigt, insbesondere mit einer genauen Beleuchtungssimulation. Dies wurde erst durch schnellere Grafikkarten moglich, zudem Wolken zumeist nicht das Hauptdarstellungsziel waren, sondern nur ein kleiner Teil eines Bildes, dem dementsprechend wenig Rechenleistung zu- geteilt wurde. Ein großer Nachteil der vorgestellten Verfahren ist die Arbeit von Designern, die notwendig ist um die verschiedenen Basisdaten zu erschaffen sowie Parameter der Verfahren auszupendeln. Dadurch leidet die Universalitat, man kann das Verfahren schwer mit computergenerierten Daten verknupfen, etwa einer Wet- tersimulation. Wunschenswert ware eine Wolkensimulation in direkter Kombi- nation einem Darstellungsverfahren. Vielleicht ware dies mit einer Kombinati- on der Verfahren von [Wang03] und [Harris01] moglich: Die Interpretation von Wolken wurde als Partikel und die Darstellung mittels Shadern erfolgt. Damit konnte man die Vorteile kombinieren. Zur Erstellung von Partikeln ist wenig oder garkeine Designarbeit erforderlich ist, warhend die Darstellung ohne Vor- berechnung auskommt, was es moglich macht, die Wolkensituation oft zu andern.
15
Abbildung 26: Echte Wolke Abbildung 27: “Flight Simulator X”
16
Literatur
[Harris01] Mark J. Harris and Amselmoto Lastra Real Time Cloud Rendering
[Wang03] Niniane Wang Realistic and Fast Cloud Rendering Nov. 11, 2003 Mi- crosoft Corporation
[Schaufler95] G. Schaufler Dynamically generated Impostors 1995
Abbildungsverzeichnis
1 Cirrus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 2 Cirrucumulus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 3 Cirrustratus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 4 Altocumulus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 5 Altostratus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 6 Stratocumulus . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 7 Stratus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 8 Cumulus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 9 Nimbostratus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 10 Cumulunimbus . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 11 2D-Sprite Wolke im Spiel Super Mario Kart . . . . . . . . . . . . 4 12 Skybox in Benutzung . . . . . . . . . . . . . . . . . . . . . . . . . 4 13 Skybox . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 14 Skybox - aufgeklappt . . . . . . . . . . . . . . . . . . . . . . . . . 4 15 Gaußverteilung . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 16 Lineare Lichtausbreitung . . . . . . . . . . . . . . . . . . . . . . . 6 17 Streeung an einem Punkt . . . . . . . . . . . . . . . . . . . . . . 7 18 Phasenfunktion . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 19 Streuung zum Beobachter . . . . . . . . . . . . . . . . . . . . . . 11 20 Partikeltextur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 21 Wolke, beschienen von Sonne und indirekt uber Ozean . . . . . . 12 22 Impostorfehlergroße α . . . . . . . . . . . . . . . . . . . . . . . . 13 23 Eine Wolke bestehend aus Impostoren . . . . . . . . . . . . . . . 13 24 Die 16 Basisflocken . . . . . . . . . . . . . . . . . . . . . . . . . . 14 25 1D Hohenfarbtextur . . . . . . . . . . . . . . . . . . . . . . . . . 14 26 Echte Wolke . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 27 “Flight Simulator X” . . . . . . . . . . . . . . . . . . . . . . . . . 16
17
of 17/17
Wolken Norbert Schultz 13. Januar 2008 Zusammenfassung Die Darstellung realistischer Wolken ist heutzutage aus vielen Spie- len und Simulationen nicht mehr wegzudenken. Dieses Seminararbeit hat das Ziel Ans¨ atze f¨ ur die Darstellung vorzustellen sowie Eigenheiten zu erkl¨ aren. Sie konzentriert sich haupts¨ achlich auf die zwei Arbeiten Real Time Cloud Rendering von Harris et al sowie Realistic and Fast Cloud Rendering von Niniane Wang. 1 Einf¨ uhrung Wolken nehmen in der Computergrafik eine eigene Positione. Sie lassen sich nicht so leicht darstellen, wie zusammenh¨ angende K¨ orper mit einer festen oder mathematisch gut beschreibbaren Oberfl¨ ache. Licht durchdringt Wolken auf un- terschiedlichen Wegen und Grenzen verlaufen diffus. Allein die Speicherung einer Wolke kann uns vor einige Probleme stellen. Aus diesen Gr¨ unden wurden Wolken in vielen Darstellungen einfach weggelassen, getreu dem Motto, ein wolkenfreier Himmel ist doch auch etwas sch¨ ones. Oft wird auch einfach ein vorgefertigtes Bild (designt oder als Foto) dargestellt, siehe“einfache Darstellungsverfahren”. Die Verfahren die ich hier vorgestellt werden stammen allesamt aus der Com- puterspielgeschichte. Dort kommt es bei der Darstellung immer darauf an, dass sie sehr schnell erfolgt. Wolken m¨ ogen sch¨ on sein, sind aber selten das Spielbe- herrschende oder -bestimmende Element, deswegen bleibt wenig Rechenzeit f¨ ur das Rendering ¨ ubrig. Dennoch sollte es m¨ oglich sein das Verfahren von Harris et al (siehe “Fortgeschrittene Technik”) f¨ ur wissenschaftliche Simulationen zu adaptieren. Bevor wir mit verschiedenen Darstellungsm¨ oglichkeiten starten, soll erstmal ge- kl¨ art werden, worum es sich bei Wolken ¨ uberhaupt handelt. Wolken sind Kondensprodukte von Wasser sowie Eis, die in einigem Abstand ¨ uber dem Boden schweben. Man findet sie haupts¨ achlich in der Troposph¨ are, selten auch in der Stratosph¨ are. Das hat den Grund, dass die Luft mit steigender 1
Embed Size (px)
Recommended