Global Illumination
Computergraphik Seminar im Wintersemester 2004/05
beiProf. Dr. Elmar SchömervonStephan Wasshausen
Übersicht I
Einleitung Einführung der Begrifflichkeit Beschreibung des Lichts
RendergleichungPath Notation
Übersicht II
Anwendungsgebiete Techniken von Global Illumination
RadiosityRaytracing & PathtracingMonte Carlo Ansatz (Photon Maps)
Ausblick in die Zukunft
Ausblick auf Techniken
Was ist Global Illumination?
Es scheint schwer sich mit Hilfe dieser Beschreibung ein klaresBild über dieses Thema zu machen. Somit ergibt sich folgendeIntention in diesem Vortrag
Intention des Vortrags
Erklärung der Begrifflichkeit Beispiele für Methoden von GI Nachteile der jeweiligen Methoden
Bedeutung
Betrachtung einer Szene unter Berücksichtigung eines globalen Beleuchtungsmodells
Bedeutung II
Hier ist es völlig unerheblich,wie Lichtquellen dargestellt werdenwie das Bild erzeugt wirdwie sich Farbe und Licht berechnen
WICHTIG ist, dass es eine Interaktion der Einzelkomponenten gibt sich also ein globales Bild zusammensetzt
Rendergleichung
Diese Beschreibung der Lichtstärke für einen Punkt x einer Oberfläche wurde 1986 von Jim Kajiya aufgestellt
),( xxI ),( xxg ),( xx [ s
),,( xxx xdxxI ),( ]
Erläuterung der Gleichung
I(x,x‘) Beleuchtung von des Punktes x von x‘ ausg Sichtbarkeitsfunktion von x‘ nach x Eigenabstrahlung des Punktes x‘ Integral über alle anderen Punkte der Szenep Licht welches von x‘ nach x abgestrahlt wird aber
von x‘‘ kommt I(x‘,x‘‘) rekursiver Teil der Gleichung
),( xxI ),( xxg ),( xx [ s
),,( xxx xdxxI ),( ]
Darstellungsmöglichkeit II
Bi Strahlungsintensität Ei Eigenemission ri Reflektionseigenschaften Fji Formfaktor (Die Summe repräsentiert die
Rekursion) des Integrals der Rendergleichung
ij
jijiii BFrEB
Path Notation
Alternative zur Rendergleichung um Global Illumination zu beschreiben
spec
diff
eyelight
Erläuterung Path Notation
Global Illumination wird mit einem regulären Ausdruck beschrieben
L (D|S)* EEine beliebige Anzahl von
• Diffusen Interaktionen• Spekularen Interaktionen
Anwendungsgebiete
Simulationen jeglicher Art Computerspiele Darstellung von Modellen
Idee Radiosity
Jede Fläche (Patch) strahlt Licht ab Für jedes Patch wird das Licht von
allen anderen Patches berechnet Materialeigenschaften können leicht
berücksichtigt werden (Menge des diffus reflektierten, abgestrahlten Lichtes)
Radiosity ist blickpunktunabhängig
Wie funktioniert Radiosity?
PN: LD*E
1
2
Colour Bleeding
Radiosity Gleichung
Erinnerung an die vereinfachte Darstellung für Global Illumination
dAi Das Flächenstück (Patch)
j
jjijiiiii dAFBrdAEdAB
Formfaktor F
Fij = (Strahlungsenergie von Ai welche Aj direkt trifft) /
(Strahlungsenergie (gesamt) von Ai)
Ai Aj
ijji
iij dAdA
rAF 2
coscos1
Formfaktor II
Фj
Фi
Nj
Ni
Ai
Aj
r
dAj
dAiAi Aj
ijji
iij dAdA
rAF 2
coscos1
Aufwandsuntersuchung
Berechnung der Formfaktoren Sind genau n2 Stück O(n2) Lösung der Gleichungssystem (siehe
Ausarbeitung) O(n2) pro Iterationsschritt aber nach wenigen Schritten ist das Ergsbnis brauchbar
Gesamtaufwand ist O(n2) Beispiel mit 55.000 Patches
Ergebnis
Bei n2 Formfaktoren 4Byte pro Formfaktor55000*55000*4 Byte = 12,1 GbyteSelbst mit Optimierung immer noch
mehr als 2,5 GByteProblem Ergebnis erst sichtbar
wenn alles berechnet wurde!!! Lösung???
Nachteile bei Radiosity
Nachteil: zunächst nur direkt beleuchtete Flächen sichtbar
Lösungsansatz: Einführung eines ambienten Termes zur Abschätzung wie groß die Helligkeit der nicht verschossenen Energie ist + Berücksichtigung der Reflektion
Nachteile II
ambienter Term
allgemeiner Formfaktor nötig
AmbientRBB iii '
n
ii
jj
A
AF
1
*
Nachteile III
Reflektion im Durchschnitt
n
jjjglobal FBRAmbient
1* )(
n
ii
n
iii
mittel
A
ARR
1
1
Nachteile IV
Also Ergebnis ist
mittelmittelmittelmittelglobal RRRRR
11....1 32
n
jjj
mittelFB
RAmbient
1* )(
11
Progressive Refinement I
Progressive Refinement II
Progressive Refinement III
Progressive Refinement IV
Die Frage die sich jetzt stellt:
Wie teilt man die neuen Patches bzw. Dreiecke „effizient“ weiter auf?
Kommt drauf an!
Idee Raytracing
Idee ist einen Sichtstrahl der durch die Szene geschickt wird und verfolgt wird
Umgekehrte Denkweise wenn ein Strahl das Licht trifft wird der Punkt heller
!!!Wichtig!!! Schnitte mit Objekten Raytracing ist nur teilweise
blickpunktunabhängig
Wie funktioniert Raytracing?
reflektiert
gebrochen
PN: LDS*E
Probleme beim Raytracing
beruhen auf dem naiven Ansatz von Raytracing, nämlich jeden Strahl mit jeder Fläche zu schneidenhoher Rechenaufwand großer Speicherplatzbedarfin der Rekursion sinnloser Aufwand
Rekursion beim Raytracing
I(x) = Ilokal(x) + Iglobal(x) Erinnerung: Für jeden Schnitt in der
Szene haben wir einen gebrochenen und einen reflektierten Strahl
I(x) = Ilokal(x) + kr*I(xr)+kg*I(xg)
Lösung? ADC
Adaptive Depth Control
Minimalwert für die Intensität des Strahls wird festgelegt
Algorithmus wird abgebrochen, wenn dieser Wert erreicht ist
nachgewiesen, dass die durchschnittliche Tiefe selbst bei aufwendigen Szenen niedrig ist
Optimierungsmöglichkeiten
Bounding Volumes mitKugelnachsenorientieren Quadernobjektorientierten Quadern
Kombination von verschiedenen Ansätzen der Global Illumination
Idee Pathtracing
Verfolgung des Pfades eines Strahles und nicht des Strahles selbst
Zufallskomponente bestimmt, ob ein reflektierter oder ein gebrochener Strahl auf einer diffusen bzw. spekularen Fläche erzeugt wird
Es müssen mehrere Strahlen pro Pixel müssen betrachtet werden
Wie funktioniert Pathtracing?
PN: L[pro Path (D|S)]E
Idee Photon Maps
Technik beruht auf dem Monte Carlo Ansatz Annäherung zum Lösen von
Integralen wie z.B. der Rendergleichung
Anwendung von Stratified Sampling auf das Integral (aufteilen und finden von Teillösungen)
Photon Maps II
f(x)
Photon Maps III
betrachtet die Szene komplett von der Lichtquelle aus
Lichtbrechung und Wechselwirkungen von Licht werden untersucht
Versuch der Abbildung der Wirklichkeit mit Hilfe von Photonen und Wellenlängen bzw. Parametern
Back to the future
Distributed RaytracingBeim ersten Objektschnitt erzeugen
einer gerichteten Menge von mehreren Strahlen
Two-Pass RaytracingPass I betrachtet von den Lichtquellen
aus, Ansammlung von Licht auf den Flächen (Erzeugen einer LightMap)
Back to the Future II
Pass2: betrachtet vom Auge aus unter Berücksichtigung der Lightmap
Multi-Pass RaytracingPass1: wie bei Two-PassPass2: Anwendung eines Modells von
Radiosity für beispielsweise Colourbleeding
Pass3: vom Auge auf die Szene
Ende des Vortrags
Danke für die Aufmerksamkeit !!!