Paper - Fakultät Informatik

Werbung
Technische Universität Dresden
Fakultät Informatik
Institut für Software- und Multimediatechnik
Prof. Dr. Stefan Gumhold
Hauptseminar
Computergrafik
Simulation von Feuer
Albrecht Uhlig
(Mat.-Nr.: 2805055)
Betreuer: Dipl.-Phys. Niels v. Festenberg
2
Inhaltsverzeichnis
1. Einleitung...............................................................................................................................3
2.Motivation und Anwendung.................................................................................................4
3.Mathematische Grundlagen..................................................................................................6
4.Aufbau und Modell einer Flamme.......................................................................................7
5.Umsetzung der Simulation..................................................................................................10
6.Darstellung von Feuer.........................................................................................................12
7.Resultat.................................................................................................................................14
8.Zusammenfassung und Ausblick........................................................................................14
Literaturverzeichnis...............................................................................................................16
Abbildungsverzeichnis............................................................................................................16
3
1. Einleitung
Seit etwa 800.000 Jahren nutzen Menschen das Feuer und heben sich damit deutlich von der
Tierwelt ab. Vorher war Feuer gleichbedeutend mit Gefahr und nicht kontrollierbar.
Heutzutage kann es in Form von Kaminfeuer oder Kerzenlicht das Gegenteil bedeuten. Diese
Besonderheit von gleichzeitigem Nutzen und großer Gefahr macht das Feuer sehr interessant.
Man kann Feuer grob in zwei Kategorien einteilen. Das Zweckfeuer und das Schadfeuer.
Zweckdienlich ist Feuer zum Beispiel als Beleuchtung, zum Wärmen oder zum Kochen.
Schädlich ist es im Allgemeinen als Brand oder Explosion. Abbildung 1 zeigt je ein Beispiel
für Zweck- und Schadfeuer.
Abbildung 1 Beispiel für Nutz und Schadfeuer
Im Folgenden wird ein Modell zur Simulation von Feuer vorgestellt, welches auf dem Paper
[1] basiert. Dabei werden Navier-Stokes-Gleichungen verwendet deren mathematischen
Grundlagen in Kapitel 3 erläutert werden. Kapitel 4 und 5 stellen dann das verwendete
Modell und die Umsetzung vor. Kapitel 6 geht auf die Darstellung der Simulation ein. Am
ende werden einige Bilder der Simulation gezeigt und eine Zusammenfassung gegeben.
4
2. Motivation und Anwendung
Für die Simulation von Feuer gibt es verschiedene Anwendungen und Motivationen. Beim
Schadfeuer möchte man möglichst das verhalten und die Ausbreitung von Bränden
vorhersagen. Das betrifft z.B. Brandschutz in Gebäuden oder die Ausbreitung von
Waldbränden. Abbildung 2 zeigt eine Simulation von Brandausbreitung in einem Gebäude.
Bei dieser Art von Simulation kommt es nicht auf einzelne Flammen an, sondern auf das
Verhalten des gesamten Brandes.
Abbildung 2 Simulation von Brand in einem Gebäude
In der Computergrafik kommt es nicht auf realistisches Verhalten, sondern auf realistisches
Aussehen an. Verhalten und Aussehen hängen zwar eng zusammen, aber meist werden in der
Computergrafik viele Vereinfachungen und Optimierungen vorgenommen wenn sie der
Darstellung zweckdienlich sind. Anwendung finden diese Simulationen z.B. in der
Filmindustrie, wo bisher meist gefährliche Stunts notwendig waren. Abbildung 3 zeigt ein
Beispiel für so einen Stunt und eine Anwendung von simuliertem Feuer.
5
Abbildung 3 Feuer in der Filmindustrie
Ein weiteres Gebiet bei dem die Darstellung von Feuer eine Rolle spielt sind Computerspiele.
Da Feuer sehr aufwendig zu simulieren ist, wurden bisher meist einfache oder
vorherberechnete Effekte verwendet. Abbildung 4 zeigt zwei Beispiele für die Darstellung
von Feuer in Spielen. Simuliertes Feuer mit dem auch Interaktion möglich ist, findet man
zurzeit noch nicht in Spielen.
Abbildung 4 Feuer in Computerspielen
6
3. Mathematische Grundlagen
Wichtig für das Verständnis der Simulation ist der Nabla-Operator ∇ . Eine genaue
mathematische Definition findet man in jeder Standardliteratur. Für die folgenden Kapitel ist
ein grobes Verständnis dieses Operators notwendig. Der Nable-Operator kann drei
verschiedene Bedeutungen haben. Wird er auf ein Skalarfeld angewendet, bezeichnet man das
Ergebnis als Gradient. Für den zweidimensionalen Fall, kann man sich das Skalarfeld z.B. als
Höhenkarte vorstellen. Der Gradient gibt dann an, in welche Richtung eine Kugel rollen
würde wenn man sie auf die Karte legt. Die Länge des Gradienten an dieser Stelle, gibt
sozusagen die Steilheit an.
Wendet man den Operator auf ein Vektorfeld an, entsteht ein Feld aus Matrizen. Aus diesen
kann ein Wert für die Divergenz bestimmt werden. Wenn man das Vektorfeld als
Geschwindigkeitsfeld auffasst, gibt dieser Wert an, ob der Stoff an der Stelle auseinander
oder zusammen strömt. Da wir im Folgenden von nicht komprimierbarem Fluss sprechen,
kann der Stoff nicht zusammengedrückt werden, ist also divergenzfrei.
Eine dritte Anwendung hat der Operator bei der Berechnung von der Rotation eines Feldes.
Diese Anwendung wird in Kapitel 5 noch einmal erwähnt. Die Rotation kann z.B. benutzt
werden, um eine Kraft zu berechnen, die die Wirbel im Geschwindigkeitsfeld verstärken.
Bei der Simulation von Gasen und Flüssigkeiten gibt es zwei Ansätze. Entweder man verfolgt
die Bewegung der einzelnen Teilchen im Raum, oder man beobachte die Veränderung
bestimmter Werte an einem festen Raumpunkt. Bei der vorgestellten Simulation wird letzteres
getan. Dazu werden Navier-Stokes-Gleichungen für nicht komprimierbaren Fluss verwendet.
Diese Gleichungen beschreiben die Geschwindigkeit des zu simulierenden Mediums an jedem
Punkt im Raum. Dabei können auch andere Attribute (z.B. Temperatur) mitgeführt werden,

wie in Kapitel 5 gezeigt wird. Abbildung 5 zeigt die beiden wichtigen Gleichungen. u ist das
Geschwindigkeitsfeld des Mediums, p das Druckfeld, ν die Zähigkeit (Viskosität), ρ die
Dichte und A stellt externe Kräfte dar.
7

∇ ⋅u = 0


 1
∂u
2
= − (u ⋅ ∇ )u − ∇ p + ν ∇ u + A
∂t
ρ
Abbildung 5 Navier-Stokes-Gleichungen
Der erste Term besagt, dass das Medium divergenzfrei ist, also nicht Komprimierbar. Der
zweite Term besteht aus einem (von links nach rechts) Transportteil, einem Druckteil, einem
Diffusionsteil und den externen Kräften. Der Transportteil drückt die Eigenbewegung des
Stoffes aus. Der Druckteil repräsentiert den Druckausgleich abhängig von der Dichte. Je
größer die Dichte, desto langsamer bewegt sich der Stoff. Der Diffusionsteil beschreibt die
Reibung des Stoffes an sich selber und die externen Kräfte vereinen z.B. Gravitation und
Wind.
4. Aufbau und Modell einer Flamme
Abbildung 6 zeigt die schematische Darstellung einer Flamme. Der Pfeil zeigt die
Flussrichtung des Brennstoffes an. Die Flamme besteht aus mehren Teilen, die für die
Simulation einzeln betrachtet werden. Der brennbare Stoff wird erhitzt, bis er sich entzündet
(chemisch reagiert) und zu heißen Reaktionsprodukten wird. Wenn diese wieder Abkühlen
entsteht Rauch. Der Bereich der chemischen Reaktion wird im folgenden blauer Kern
genannt, da er bei realen Flammen eine blaue Farbe hat. Der Rauch ist nicht Schwerpunkt der
Simulation, da es eigene Arbeiten dazu gibt (siehe [2]).
8
Abbildung 6 Aufbau einer Flamme
Die chemische Reaktion des Brennstoffes wird nicht simuliert. Es wird eine Temperatur-ZeitKurve verwendet, die vom Gestalter der Simulation frei gewählt werden kann. Abbildung 7
zeigt ein Beispiel für so eine Kurve.
Feststoff
T
Gas
Verbrennungsprodukte
Blauer Kern
Zeit
Übergang von fest zu gasförmig
Abbildung 7 Temperatur des Brennstoffes abhängig von der Zeit
Beim Übergang von Brennstoff zu Verbrennungsprodukten ändert sich die Zusammensetzung
des Stoffes. Diese Veränderung kann von den nicht komprimierbaren Flussgleichungen nicht
beschrieben werden. Deshalb werden der blaue Kern und die gelbe Flamme getrennt
voneinander simuliert und an einer Übergangsfläche zu vereinigt. Abbildung 8 zeigt die
Stromlinien bei der Ausdehnung des Brennstoffes.
9
Stromlinien
Übergang blauer Kern zu
Gelber Flamme
2 Verschiedene
Flussgleichungen
Abbildung 8 Stromlinien in der Flamme
Die Simulation der heißen Verbrennungsprodukte fängt dort an, wo der blaue Kern aufhört.
Am Übergang ändert sich die Dichte des Stoffes. Diese Änderung ist ein Parameter der
Simulation und wird Ausdehnungsparameter genannt. Die Anfangswerte für die heißen
Verbrennungsprodukte werden so berechnet, dass Masse und Impuls erhalten bleiben.
Abbildung 9 zeigt die verwendeten Formeln.
ρ h (Vh − D ) = ρ f (V f − D )
ρ h (Vh − D ) 2 + ph = ρ f (V f − D ) 2 + p f
f
Brennstoff
h
Heises Gas
ρ
f /h
Dichte
Vf /h
Geschwindigkeit
p f /h
Druck
D = V f − S Geschwindigkeit der
Übergangsfläche
Abbildung 9 Masse und Impulserhaltung an der Reakionsgrenze
Bei festen Brennstoffen wird der Druck nicht beachtet, wodurch sich die Formeln aus
Abbildung 9 vereinfachen lassen. Es entsteht ein Term für die Geschwindigkeit des injizierten
Brennstoffes der sich aus der Geschwindigkeit des Festkörpers und einem Teil der die
Ausdehnung des Stoffes beschreibt zusammensetzt. Mit dieser Methode lassen sich
Festkörper simulieren, die mit der Flamme interagieren und sich auch selber entzünden
können.
Im nächsten Kapitel wird beschrieben wie dieses Modell in der Praxis umgesetzt werden
kann. Außerdem wird die nie noch offene Frage geklärt, an welcher Stelle man die beiden
Simulationen verbinden muss, wo also die chemische Reaktion stattfindet.
10
5. Umsetzung der Simulation
Bisher wurde immer von kontinuierlichen Feldern gesprochen. Um tatsächlich eine
Simulation durchzuführen muss der Raum in diskrete Voxel geteilt werden. Jedes Voxel
bekommt Werte für Dichte, Druck, Temperatur und Abstand zum Übergang der beiden
Simulationen (siehe Kapitel 4). Die Geschwindigkeit wird an den Flächen zwischen den
Voxeln definiert.
Da das Feuer gasförmig ist, fällt der Reibungsteil aus der Navier-Stokes-Gleichung weg, und
sie wird zur Eulergleichung (Abbildung 10). Diese Gleichungen lassen sich über einen SemiLagrang-Ansatz lösen, der sehr ausführlich in [3] beschrieben wird. Dabei wird der
Transportteil zuerst alleine numerisch gelöst und danach der Druckteil unter Ausnutzung der
Divergenzfreiheit. Damit die Flamme nach oben steigt, wird eine Auftriebskraft hinzugefügt.
Diese Kraft wird proportional zur Differenz der Temperatur des Stoffes zur
Umgebungstemperatur festgelegt. Der Proportionalitätsfaktor ist ein weiterer Parameter der
Simulation.

∇ ⋅u = 0


 1
∂u
= − (u ⋅ ∇ )u − ∇ p + A
∂t
ρ
Abbildung 10 Eulergleichungen
Dieser numerische Lösungsansatz hat das Problem, dass Bewegungsenergie verloren geht.
Genauer gesagt verringert sich die Rotation, was zu weniger Verwirbelung führt. Um
trotzdem optisch ansprechende Wirbel zu erzeugen kann eine weitere externe Kraft berechnet
werden, um die verloren gegangene Energie wieder hinzuzufügen. Diese Methode wird in [4]
beschrieben und als Vorticity-Confinement (Wirbelerhaltung) bezeichnet. Die Entscheidenten
Formeln sind in Abbildung 11 dargestellt. ε ist ein weitere Parameter der Simulation und gibt
die Menge der zugeführten Rotation an.
11

ω = ∇×u
N=
∇ ω
∇ ω
f wirbel = ε h( N × ω )
ω
N
ε
h
Rotation
Normiertes Gradientenfeld (Richtung der Rot.)
Parameter für Menge zugefügter Rotation
Größe der Voxel
Abbildung 11 Wirbelerhaltung
Bisher wurde erklärt, wie eine Simulation mit den Navier-Stokes-Gleichungen umgesetzt
wird. Wie in Kapitel 4 erläutert, werden aber zwei Simulationen benötigt, die an einer
Übergangsfläche Masse und Impuls erhalten. Um die Position dieser Fläche zu bestimmen,
wird ein neuer Wert φ eingeführt. Er beschreibt den Abstand zum Übergang und hat den
Wert 0 an der Verbindungsstelle (Level-Set-Methode). Positive Werte bedeuten, dass
Brennstoff vorhanden ist und bei negativen Werten ist kein Brennstoff vorhanden. In der
laufenden Simulation werden die Werte φ aus dem Geschwindigkeitsfeld, der
Reaktionsgeschwindigkeit (S) und den alten Werten von φ berechnet. Damit φ trotz
numerischer Berechnung weiterhin den Abstand angibt ( ∇ φ = 1 ) sind Korrekturen notwendig
die in [5] beschrieben werden. Abbildung 12 zeigt die verwendeten Formeln.
 

w = u f + Sn
φ


∂φ
w
= − w⋅ ∇ φ

∂t
n ≈ ∇φ
φ neu = φ alt − ∆ t ( wxφ x + wyφ y + wzφ z ) ∆ t
Abstand zum blauen Kern
Bewegung blauer Kern
Normierter Gradient
Simulationsschrittes
Abbildung 12 Berechnung der Übergangsfläche
Um das Feuer auch darstellen zu können, ist es wichtig, die Temperatur in jedem Voxel zu
kennen. Diese Kann als Funktion von der Zeit berechnet werden (Kapitel 4). Die Zeit kann
bei den verwendeten Flussgleichungen mitgeführt werden. Dabei ist der Transportteil der
Flussgleichungen (Kapitel 4) besonders wichtig. Abbildung 13 zeigt die Formeln zum
mitführen von Werten bei den Flussgleichungen und wie daraus die Temperatur berechnet

wird. − (u ⋅ ∇ ) beschreibt den Transport (Advektion) des Wertes und k die Veränderung des
Wertes (abhängig von der Zeit). Gäbe es keinen Transport, würde dort also nur –k stehen. Da
12
wir k als Konstante mit dem Wert 1 wählen, ist die Zeit direkt Proportional ohne einen
Proportionalitätsfaktor.

∂Y
= − (u ⋅ ∇ )Y − k
∂t
Y neu = − k∆ t + Y *
T ~ 1− Y
Y
k
Reaktionskoordinate
Y*
Semi-Lagrang-Lösung der Advektion
T
Zeit
Konstante (=1)
Abbildung 13 Berechnung der Temperatur
6. Darstellung von Feuer
Feuer ist ein Medium das selber Licht erzeugt aber auch Absorbiert und Bricht. Es verhält
sich also wie eine leuchtende Wolke. Für die Darstellung von Wolken gibt es viele andere
Arbeiten, z.B. [6]. Besonders wichtig, ist das Ausstrahlen von Licht für die Darstellung.
Dabei verhält sich Feuer wie ein Schwarzkörper. Das bedeutet, dass die Farbe des
ausgestrahlten Lichtes von der Temperatur des Feuers abhängt. Abbildung 14 zeigt das
Verhalten eines solchen Schwarzkörpers. Die Grafik stellt die Intensität des Lichtes in
Abhängigkeit von der Wellenlänge und der Temperatur dar. C1 und C 2 sind Naturkonstanten.
Le ,λ ( x) =
2C1
λ 5 (eC2 /( λ T ) − 1)
T
C1 ≈ 3,7418 ⋅ 10 − 16 Wm 2
C2 ≈ 1,4388 ⋅ 10 − 2 mK
Abbildung 14 Schwarzkörperstrahlung
13
Will man die Farbe des Feuers berechnen, muss beachtet werden, dass sich das Auge an die
Helligkeit des Feuers anpasst. Um einen realistischen Effekt zu erhalten wird die von-KriesMethode verwendet die in [7] beschrieben wird. Dabei wird das ausgestrahlte Spektrum
verwendet, um die Tristumulus-Werte zu finden (Abbildung 15).
0
0   Xr
 Xa
 1 / Lw
 Y  = M −1 0
M Y 
1
/
M
0
a
w
 

  r
 Z a 
 0
0
1 / S w   Z r 
Abbildung 15 Berechnung der Tristimulus-Werte
Hat man die Farben der Raumpunkte bestimmt, kann das Feuer wie eine Wolke darstellen
(siehe z.B.[6]). Die im folgenden Kapitel gezeigten Bilder wurden durch eine Ray-Marching
–Methode berechnet. Dabei ist weder die Simulation noch die Darstellung des Feuers
echtzeitfähig.
14
7. Resultat
Abbildung 16 zeigt drei Beispiele der Simulation. Links zwei brennende Holzstücken. Hier
der Übergang von festen zu gasförmigen Brennstoff mit simuliert. Auf der rechten Seite wird
die Möglichkeit der Interaktion mit dem Feuer dargestellt. Eine Kugel bewegt sich durch die
Flamme und entzündet sich dabei.
Abbildung 16 Beispiele der Simulation
8. Zusammenfassung und Ausblick
Es wurde ein Modell und praktische Anleitung zur Simulation von Feuer vorgestellt. Dazu
werden nicht komprimierbare Flussgleichungen verwendet. Die Tatsache, dass Feuer
eigentlich ein sich ausdehnendes Medium ist, und damit nicht nicht-komprimierbar, wird
durch die Verwendung von zwei Simulationen gelöst. Eine für den sich erwärmenden
Brennstoff und eine für die heißen Reaktionsprodukte der Verbrennung. An der
Übergangsfläche der Simulationen wird Masse und Impuls erhalten. Die Position des
15
Überganges wird durch eine Level-Set-Methode beschrieben. Dargestellt wird das Feuer
durch Berechnung der Temperatur als Funktion von der Zeit. Anhand der Temperatur wird
die Farbe des Feuers bestimmt.
Die Simulation ist obwohl sie viele Vereinfachungen vornimmt nicht echtzeitfähig. Trotz der
physikalisch nicht korrekten Vereinfachungen ist das optische Resultat sehr ansprechend und
wirkt realistisch. Außerdem ist Interaktion mit dem Feuer möglich und feste Brennstoffe oder
sich entflammende Gegenstände können auch simuliert werden.
Ausblickend kann gesagt werden, dass die volumetrische Simulation von Feuer zwar sehr gut
aussieht, aber in naher Zukunft nicht echtzeitfähig werden wird. Ansätze über Partikel sind
sehr viel schneller aber wirken oft nicht realistisch. Neuere Paper, wie z.B. [8], beschreiben
wie man auch mit Partikelansätzen realistisch aussehendes echtzeitfähiges Feuer simulieren
kann.
16
Literaturverzeichnis
[1] Nguyen, Fedkiw, Jensen, 2002 Physically Based Modeling and Animation of Fire
[2] R. Fedkiw, R. Stam, H. W. Jensen. 2001 Visual Simulation of Smoke
[3] Stam 1999 Stable Fluids
[4] Steinhoff, Underhill, 1994 Modification of the Euler Equations for “Vorticity
Confinement”
[5] Sethian 1996 A Fast Marching Level Set Method for Monotonically Advancing Fronts
[6] Niniane Wang. 2003 Realistic and Fast Cloud Rendering
[7] Fairchild 1998 Color Appearance Models. Addison Wesley
[8] Bridault-Louchez, Leblond, Rousselle. 2006 Enhanced illumination of reconstructed
dynamic environments using a real-time flame model
Abbildungsverzeichnis
Abbildung 1 Beispiel für Nutz und Schadfeuer.....................................................................3
Abbildung 2 Simulation von Brand in einem Gebäude.........................................................4
Abbildung 3 Feuer in der Filmindustrie.................................................................................5
Abbildung 4 Feuer in Computerspielen..................................................................................5
Abbildung 5 Navier-Stokes-Gleichungen...............................................................................7
Abbildung 6 Aufbau einer Flamme.........................................................................................8
Abbildung 7 Temperatur des Brennstoffes abhängig von der Zeit......................................8
Abbildung 8 Stromlinien in der Flamme ...............................................................................9
Abbildung 9 Masse und Impulserhaltung an der Reakionsgrenze......................................9
Abbildung 10 Eulergleichungen............................................................................................10
Abbildung 11 Wirbelerhaltung..............................................................................................11
Abbildung 12 Berechnung der Übergangsfläche.................................................................11
Abbildung 13 Berechnung der Temperatur.........................................................................12
Abbildung 14 Schwarzkörperstrahlung...............................................................................12
Abbildung 15 Berechnung der Tristimulus-Werte..............................................................13
Abbildung 16 Beispiele der Simulation.................................................................................14
Herunterladen