Licht und Schatten - Institut für Visualisierung und Interaktive Systeme

Transcription

Licht und Schatten - Institut für Visualisierung und Interaktive Systeme
Seminar
Algorithmen für Computerspiele“
”
Licht und Schatten
Oleg Martin
30. Juli 2010
Institut für Visualisierung und Interaktive Systeme
Universität Stuttgart
Inhaltsverzeichnis
1 Einführung
1.1 Über Licht und Schatten . . . . . . . . . . . . . . . . . .
1.2 Geschichtliche Entwicklung in Computerspielen . . . . .
1.3 Beleuchtungsmodelle im Überblick . . . . . . . . . . . .
1.4 Schattenmodelle im Überblick . . . . . . . . . . . . . . .
1.5 Licht- und Schattengenerierung im Bildsyntheseprozess .
.
.
.
.
.
2
2
3
5
7
8
2 Physikalische Erklärung von Licht
2.1 Was ist Licht? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.2 Was ist geometrische Optik? . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.3 Lichtquellentypen in Computerspielen . . . . . . . . . . . . . . . . . . . . . .
11
11
11
13
3 Beleuchtungsmodelle
3.1 Lokale Beleuchtungsmodelle . . . . . . . . . . . .
3.1.1 Allgemeine Beschreibung lokaler Modelle
3.1.2 Lambert-Modell . . . . . . . . . . . . . .
3.1.3 Phong- und Blinn-Phong-Modell . . . . .
3.1.4 Schlick-Modell . . . . . . . . . . . . . . .
3.2 Interpolationsverfahren . . . . . . . . . . . . . . .
3.2.1 Vertex-Lighting . . . . . . . . . . . . . . .
3.2.2 Per-Pixel-Lighting . . . . . . . . . . . . .
3.3 Globale Beleuchtungsmodelle . . . . . . . . . . .
3.3.1 Allgemeine Beschreibung globaler Modelle
3.3.2 Ray Tracing . . . . . . . . . . . . . . . . .
3.3.3 Radiosity . . . . . . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
14
14
14
17
18
22
23
23
24
26
26
28
29
4 Schattenmodelle
4.1 Lokale Schattenmodelle . .
4.1.1 Projektive Schatten
4.1.2 Schattenvolumen . .
4.1.3 Shadow Maps . . . .
4.2 Globale Schattenmodelle . .
4.2.1 Ray Tracing . . . . .
4.2.2 Radiosity . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
31
31
31
32
34
36
36
37
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
5 Zusammenfassung
38
Literatur
38
1 Einführung
1.1 Über Licht und Schatten
Wo viel Licht ist, ist auch viel Schatten. Diesen Satz hatte einst Johann Wolfgang von
Goethe gesagt. In seiner Zweideutigkeit besagt dieser, dass es zu vielen guten Dingen ebenso
viele schlechte gibt oder dass in der Tat immer ein Schatten existiert, wenn Licht auf ein
Objekt fällt. Durch dieses betrachtungsabhängige Beispiel wird deutlich, dass Licht und
Schatten seit je her eine große Rolle in der Kunst gespielt haben und immer noch spielen.
Der gezielte Schattenwurf ist daher ein wichtiges Stilmittel der Kunst. Dieses Stilmittel wird
häufig verwendet, um Atmosphäre, räumliche Wahrnehmung und intuitive Orientierung im
Bild oder der Szene zu erzeugen. Erst der Schatten ermöglicht dem Betrachter Bildabstände
und -entfernungen richtig wahrzunehmen und sogar Material und Aussehen von Objekten
zu erahnen. Da sich Computerspiele seit den frühen 80er Jahren neben den bekannten
Kunstformen wie Literatur, Musik und Film als die Kunstform des 21. Jahrhunderts
etablieren, finden auch hier die Stilmittel Licht und Schatten eine massive Verwendung.
Abbildung 1.1: Berufung des Matthäus - Michelangelo Merisi da Caravaggio [6].
1.2 Geschichtliche Entwicklung in Computerspielen
3
Abbildung 1.2: Beleuchtetes Glas - Fotografie
Abbildung 1.3: Splinter Cell - Conviction [18].
1.2 Geschichtliche Entwicklung in Computerspielen
Die Licht- und Schattendarstellung hat seit Entstehung der Computergrafik in den 50er Jahren
des 20. Jahrhunderts einen fortlaufenden Entwicklungsprozess hinter sich. Seit die benötigte
Hardware in den 1970er Jahren erschwinglich geworden war, konnten die ersten kommerziellen
Computerspiele entwickelt werden. So spielen in den 1980er Jahren die Beleuchtung und
der Schattenwurf aufgrund von leistungsschwacher Hardware eine sehr geringe bis gar keine
Rolle in Computerspielen. Im unteren Bild sieht man dann deutlich, dass Beleuchtung und
Schattenwurf zur Zeit der 2D Computerspiele scheinbar keinen Platz hatten.
4
Einführung
Abbildung 1.4: Computerspiele in den 1980er Jahren [11], [2], [10], [8].
In den 1990er Jahren nimmt die Notwendigkeit von korrekter Beleuchtung und der daraus
resultierenden Beschattung aufgrund steigendem Realismus in Computerspielen zu. Da die
Spiele zunehmend in 3D entwickelt werden und es eine Atmosphäre zu schaffen gilt, werden
Licht und Schatten immer wichtiger für den eigentlichen Designprozess eines Computerspiels.
Abbildung 1.5: Computerspiele in den 1990er Jahren [13], [12], [19], [15].
1.3 Beleuchtungsmodelle im Überblick
5
In den 2000er Jahren ist hardwareseitig der Leistungsbereich moderner Grafikkarten enorm
gestiegen. Nun wurde es möglich auch komplizierte Effekte in Computerspielen in Echtzeit
zu verwirklichen. So sind Licht und Schatten zentraler Bestandteil im Spieledesign geworden
und werden massiv in jedem high-end Computerspiel zur Realismussteigerung eingesetzt.
Abbildung 1.6: Computerspiele in den 2000er Jahren [17], [1], [4], [5].
1.3 Beleuchtungsmodelle im Überblick
Beleuchtungsmodelle lassen sich im Groben in zwei Klassen unterteilen. Einmal in die Klasse der lokalen Beleuchtungsmodelle, welche lokale Reflexionseigenschaften von Materialien
beschreiben. Sowie in die Klasse der globalen Beleuchtungsmodelle, welche die globale Ausbreitung von Licht in einer Szene beschreiben.
Es folgt ein zeitlich geordneter Überblick der am häufigsten eingesetzten Beleuchtungsmodelle. Damit wird es möglich die im weiteren Verlauf näher vorgestellten Beleuchtungsmodelle
in den Entwicklungsprozess einzuordnen.
• Lokale Beleuchtungsmodelle
– Lambert-Modell (1760):
Das Lambert Modell ist ein relativ einfaches Beleuchtungsmodell und stellt die
Grundlage fast aller anderen lokalen Beleuchtungsmodelle dar. Es beschreibt im
Groben Oberflächen, die auftreffendes Licht diffus, also in alle Richtungen gleich
stark, reflektieren.
– Phong- und Blinn-Phong-Modell (1975/77):
Das Phong- und Blinn-Phong-Modell ist das bekannteste und auch heute noch
6
Einführung
häufig verwendete Beleuchtungsmodell der Computergrafik. Es baut auf dem
Lambert-Modell auf und beschreibt vorwiegend matt-glänzende Oberflächen, die
Licht auch spekular, also punktuell, reflektieren.
– Cook-Torrance-Modell (1982):
Das Cook-Torrance-Modell ist das heute am häufigsten in high-end Computerspielen eingesetzte Beleuchtungmodell. Es basiert teilweise auf physikalisch korrekten
Modellen und ist daher eine Mischung aus theoretischen und empirischen, an die
Physik angenäherten, Beleuchtungsmodellen. Das Modell beschreibt Materialoberflächen grob durch viele winzige Facetten, welche das einfallende Licht jeweils anders reflektieren. So eignet es sich in der Praxis sehr gut zur Beschreibung von
Metallen und Plastik mit verschiedener Rauheit.
– He-Torrance-Modell (1991):
Das He-Torrance-Modell ist eines der umfassendsten lokalen Beleuchtungsmodelle
in der Computergrafik. So berücksichtigt es zum Beispiel Lichtstreuung unterhalb
der Oberfläche, das sog. “subsurface scattering“. Folgendermaßen ist es sehr rechenintensiv und aufwendig zu berechnen. Es eignet sich gut für die Modellierung
der verschiedensten Materialarten.
– Schlick-Modell (1994):
Das Schlick-Modell ist ein weiteres physikalisch motiviertes und effizientes Beleuchtungsmodell. Es baut auf dem Cook-Torrance-Modell auf und ist wie dieses
ein Mittel zwischen empirischem und theoretischem Modell, welches die Möglichkeit bietet, Reflexionen möglichst physikalisch korrekt durch wenige Parameter zu
beschreiben.
• Globale Beleuchtungsmodelle
– Ray Tracing (1968):
Das Ray Tracing ist ein globales Beleuchtungsmodell zur Verdeckungs- und Lichtverteilungsberechnung in einer 3D-Szene. Durch Aussenden von Strahlen, die den
Weg von Lichtstrahlen in einer Szene simulieren, wird eine physikalisch korrekte und real wirkende Beleuchtung der Szene erzeugt. Ray Tracing ist eines der
wichtigsten globalen Beleuchtungsmodelle in der Computergrafik.
– Path Tracing (1986):
Das Path Tracing, als Erweiterung des ursprünglichen Ray Tracing Modells, löst
die sogenannte Rendering Gleichung, welche mathematisch eine globale Beleuchtung beschreibt, annähernd durch Anwendung der Monte-Carlo-Simulation aus der
mathematischen Statistik. Solche, den Zufall benützenden, Modelle heißen auch
Monte-Carlo-Ray Tracing-Modelle.
– Photon Mapping (1995):
Das Photon Mapping ist eines der aktuellsten und heute oft in Software Rendering Systemen eingesetztes Verfahren zur Berechnung globaler Beleuchtung in 3DSzenen. Das Photon Mapping, als Erweiterung des Ray Tracing Modells, simuliert
Licht durch Photonen und nicht durch Lichtstrahlen. Es zählt zu den ParticleTracing-Methoden.
– Radiosity (1984):
Das Radiosity Modell ist nach Ray Tracing eins der bekanntesten globalen Be-
1.4 Schattenmodelle im Überblick
7
leuchtungsmodelle. Das Modell löst die Rendering Gleichung unter Einhaltung des
Energieerhaltungssatzes für Strahlung. Anders als beim Ray Tracing wird keine
Lichtausbreitung durch Lichtstrahlen simuliert, sondern es wird angenommen, dass
alle Oberflächen ideal diffuse Reflektoren und alle Lichtquellen ideal diffuse Strahler sind. Dadurch wird es möglich eine hochrealistische globale Beleuchtung zu
erzeugen.
1.4 Schattenmodelle im Überblick
Wie auch die Beleuchtungsmodelle lassen sich die Schattenmodelle in zwei Klassen unterteilen. Die erste Klasse besteht aus den lokalen Schattenmodellen, welche sich in der 3D-Szene
auf isolierte Oberflächenpunkte beziehen. Die globalen Modelle der zweiten Klasse dagegen
beziehen alle Oberflächenpunkte der Szene in die Schattenberechnung mit ein.
Es folgt ein zeitlich geordneter Überblick der bekanntesten Beleuchtungsmodelle. Damit wird
es möglich die im weiteren Verlauf näher vorgestellten Schattenmodelle in den Entwicklungsprozess einzuordnen.
• Lokale Schattenmodelle
– Projektive, bzw. Planare Schatten (1978):
Projektive Schatten sind ein einfaches und effizientes Schattenmodell. Die Modellgrundlage ist die Transformation eines Objekts, das die Schattenquelle darstellt,
zum eigentlichen Schatten. So erzeugt diese Transformation ein planes Objekt und
projiziert dieses auf eine Ebene.
– Schattenvolumen (1977):
Die Schattenvolumen (engl. Shadow Volumes) sind eines der am häufigsten verwendeten Schattenmodelle in aktuellen Spielen. Das Prinzip ist relativ einfach und lässt
sich effektiv implementieren. All diejenigen Bereiche liegen im Schatten, die sich
im Schatten-Volumen der Schattenquelle befinden. Zur Ermittlung dieses Schattenvolumens werden im Groben die Silhoutten-Kanten der Schattenquelle zum
Schattenvolumen extrudiert.
– Shadow-Maps (1978):
Die Shadow-Maps sind neben den Schattenvolumen ein weit verbreitetes Schattenmodell in aktuellen high-end Computerspielen. Es ist ein texturbasiertes Schattenmodell, das in einer separaten Textur, der sogenannten “Shadow Map“, alle
Schatten-Informationen der 3D-Szene speichert.
– Lightmaps:
Lightmaps sind Texturen, welche statische Schatten speichern. Da hier die Schatten einer nicht dynamischen Szene vorberechnet werden und dann mit der Szene
zusammengefügt werden, ist es aufwendig eine Echtzeit-Berechnung für real wirkende Szenen zu erreichen. Lightmaps wurden Mitte der 1990er Jahre sehr häufig
in Computerspielen eingesetzt.
• Globale Schattenmodelle
– Ray Tracing (1968):
Ray Tracing ist nicht nur eines der meistverwendeten globalen Beleuchtungsmodelle, sondern auch ein viel verbreitetes globales Schattenmodell. Da es die
8
Einführung
Verdeckungs- und Lichtverteilungsberechnung in einer 3D-Szene durchführt, liegt
es nahe, dass eine globale Schattenberechnung ebenfalls möglich ist. Da Lichtstrahlen nicht nur vom Betrachter, sondern von jedem beliebigen Punkt in der Szene,
ausgesendet werden können, wird die Simulation von Schatten möglich.
– Diffuses Raytracing (1984):
Das Diffuse Raytracing ist eine Erweiterung des ursprünglilchen Ray Tracing Modells. Durch Aussenden von mehreren zufälligen Strahlen wird aus den Farben
der jeweiligen Auftreffpunkte der Mittelwert gebildet. Dies führt zur möglichen
Darstellung von weichen Schatten.
– Radiosity (1984):
Das Radiosity Schattenmodell simuliert Schatten durch die globale Wechselwirkung jeder, in der 3D-Szene vorhandenen, Oberfläche mit jeder anderen. Werden
Oberflächen verdeckt, ergibt sich eine geringerer Austausch von Strahlung und es
entsteht Schatten. Das Radiosity-Verfahren ist sehr rechenintensiv und eignet sich
daher kaum für Echtzeitanwendungen.
1.5 Licht- und Schattengenerierung im Bildsyntheseprozess
Wo wird die Beleuchtung und Schattengenerierung im Bildsyntheseprozess eingeordnet?
Um diese Frage richtig beantworten zu können, müssen zuerst die Bildsynthese und dessen
Realisierung auf der Grafikkarte, bzw. der CPU näher betrachtet werden.
Die Bildsynthese (engl. Rendering) wird in zwei Bereiche unterteilt. Einmal dem Echtzeitrendering und dem photorealistischem Rendering.
• Echtzeitrendering:
Das Echtzeitrendering orientiert sich an der Grafikkartenhardware und damit direkt am
Grafik-Pipeline-Ansatz von OpenGL. Die Grafikpipeline beschreibt hierbei den Weg von
einer 3D-Szene bis zum fertigen Bild. Da unter diesem Ansatz keine komplexen mathematischen Beschreibungen von Beleuchtung und Schattenwurf effizient berechnet werden können, genügt das Echtzeitrendering dem Grundsatz, dass das Ergebnis stimmen
muss. Dieser Grundsatz bedeutet nichts anderes als das traditionell kein Photorealismus
möglich ist und dadurch Verfahren gebraucht werden, die die physikalischen Eigenschaften von Licht und Schatten simulieren ohne jedoch physikalisch korrekt zu sein.
Die Beleuchtung an sich findet während der Geometrieverarbeitung und den ProFragment Operationen in der Grafikpipeline statt (siehe Abb. 1.7).
Abbildung 1.7: Echtzeitrendering - Grafikpipeline.
1.5 Licht- und Schattengenerierung im Bildsyntheseprozess
9
Abbildung 1.8: Echtzeitrendering - Beispiel [5].
• Photorealistisches Rendering:
Das photorealistische Rendering basiert auf der physikalischen Simulation von Geometrien, Animationen und Beleuchtung. Daher ist das Grafikpipeline-Modell einer GPU
auf Modelle wie Ray Tracing und Radiosity nicht direkt anwendbar. Photorealistisches
Echtzeitrendern auf der GPU, unter Anwendung der Grafikpipeline, ist nur mit “Tricks“
möglich, welche vorwiegend über Shaderprogrammierung realisiert werden. Folglich wird
das realistische Rendering größtenteils auf der CPU von Software-Rendering-Systemen,
wie z.B. Mental Ray, ausgeführt. Hierbei ist das große Ziel einen möglichst physikalisch
korrekten Photorealismus zu erreichen.
c Beispiel.
Abbildung 1.9: Photorealistisches Rendering - Mental Ray
10
Einführung
Wie man sieht haben beide Teilbereiche Vor- und Nachteile bezüglich ihrer Umsetzung auf
der Grafikkarte oder der CPU. Zum einen lassen sich relativ realistische Licht- und Schatteneffekte hoch-parallelisiert auf moderner Grafikhardware in Echtzeit berechnen. Was nicht auf
der CPU in der Form möglich wäre. Und zum anderen werden photorealistische Licht- und
Schatteneffekte mit Hilfe komplexen mathematischen Modellen auf der CPU berechnet. Was
wiederum nicht, bzw. nicht im vollen Umfang, in Echtzeit auf der GPU möglich wäre.
2 Physikalische Erklärung von Licht
2.1 Was ist Licht?
Licht, als sichtbarer Bereich der elektromagnetischen Strahlung, besitzt Wellen- sowie
Teilcheneigenschaften. Die Welleneigenschaften von Licht wurden aufbauend auf Christiaan
Huygens begründeter Wellenoptik 1802 im Doppelspaltexperiment von Thomas Young
gezeigt. Die Teilcheneigenschaften von Licht wurden Anfang des 20. Jahrhunderts von
Arthur Compton in Experimenten zu Beobachtungen des Compton-Effekts gezeigt. Der
daraus hervorgegangene Welle-Teilchen-Dualismus wurde durch die, von Albert Einstein
begründete, Quantenphysik aufgeklärt in dem Sinne, dass Licht sowohl Wellen- als auch
Teilcheneigenschaften besitzt [23]. So bringt der Welle-Teilchen-Dualismus die oben erwähnte
Wellenoptik, Quantenoptik und Strahlenoptik (auch geometrische Optik genannt) zusammen.
• Wellenoptik:
Die Wellenoptik beschreibt die Beugung, Interferenz, Farbe sowie die Polarisation von
Licht.
• Quantenoptik:
Die Quantenoptik dagegen beschreibt Licht als Lichtteilchen, das sogenannte “Photon“,
welches ein lokalisiertes Wellenpaket ist.
• Strahlenoptik:
Die Strahlenoptik (geom. Optik) beschreibt Licht idealisiert als eine Zusammensetzung
von Lichtstrahlen und ist in heutiger Computergrafik das Standardmodell zur Lichtbeschreibung.
2.2 Was ist geometrische Optik?
Die geometrische Optik ist eine Näherung der Optik, in der die Welleneigenschaften des Lichtes vernachlässigt werden. In der geometrischen Optik setzt sich Licht aus Lichtstrahlen zusammen. Demnach senden Lichtquellen oder reflektierende Objekte Lichtstrahlen aus, welche
reflektiert, gebrochen oder aufgespaltet werden (siehe Abb. 2.1 bis 2.3). Diese Eigenschaften
bilden unter anderem die Grundlage für Ray Tracing.
12
Physikalische Erklärung von Licht
In Abb. 2.1 sieht man die spekulare Reflexion eines Lichtstrahls, wobei Einfallswinkel α
gleich dem Reflexionswinkel β, in Abhängigkeit zur Normalen, ist.
Abbildung 2.1: Spekulare Reflexion [28].
In Abb. 2.2 sieht man das Snelliussches Brechungsgesetz, welches besagt in welche Richtung
eine Welle, hier das Licht, abgelenkt wird, wenn es von einem transparenten Medium auf
eine anderes Medium mit unterschiedlichen Materialeigenschaften trifft.
Abbildung 2.2: Snelliussches Brechungsgesetz [27].
In Abb. 2.3 sieht man die Lichtspaltung durch ein Prisma. Hierbei wird das Licht in seine
verschiedenen Bestandteile, den Spektralfarben, zerlegt. Da sich rotes Licht im Prisma
schneller ausbreitet als blaues Licht wird es weniger gebrochen. Diese Tatsache wird durch
das oben erwähnte Snelliussche Brechungsgesetz beschrieben.
Abbildung 2.3: Lichtspaltung [24].
2.3 Lichtquellentypen in Computerspielen
13
2.3 Lichtquellentypen in Computerspielen
In Computerspielen gibt es unterschiedliche Lichtquellentypen. Um die reale Beleuchtung einer
Szene simulieren zu können, braucht man mehrere und verschiedene Lichtquellen. Nachfolgend
werden einige Typen näher betrachtet (siehe dazu Abb. 2.4).
a) Diffuse Flächenlichtquelle:
Diffuse Flächenlichtquellen strahlen ein “weiches“ Licht aus. Die beleuchtete Szene wirkt
daher kontrast- und schattenarm. Da es sich um eine gleichmäßige Beleuchtung handelt,
gibt es keine spekularen Reflexionen auf den Oberflächen. Diffuse Flächenlichtquellen
lassen sich z.B. mit einem bedeckten Himmel vergleichen.
b) Punktlichtquelle:
Punktlichtquellen senden Lichtstrahlen sternförmig von einem bestimmten Punkt aus
und haben dadurch eine geringe räumliche Ausdehnung. Dies führt dazu, dass die Intensität mit der Entfernung abnimmt. Das Licht einer Punktlichtquelle kann man mit
dem einer Glühbirne vergleichen.
c) Richtungslichtquelle:
Eine Richtungslichtquelle sendet parallele Lichtstrahlen in eine bestimmte Richtung und
beleuchtet so eine Szene großflächig. Es entsteht dadurch eine Beschattung der Objekte
in der Szene. Sonnenlicht ist z.B. annähernd ein Richtungslicht.
d) Strahler (Spot-Light):
Ein Strahler oder auch Spot-Light erzeugt einen gerichteten Lichtkegel mit einer Abstrahlungscharakteristik cosn θ. Dieser Lichtkegel beleuchtet einen bestimmten Bereich
einer Szene. Hierbei wird punktuell ein Objektschatten erzeugt. Eine Schreibtischlampe
wäre z.B. ein Spot-Light.
Abbildung 2.4: Lichtquellentypen.
3 Beleuchtungsmodelle
3.1 Lokale Beleuchtungsmodelle
3.1.1 Allgemeine Beschreibung lokaler Modelle
Im Allgemeinen entsteht ein Bild durch die Simulation der Wechselwirkung von Licht und
Materie. Dabei gibt es zwei Kategorien von Wechselwirkungen. Einmal die Wechselwirkung
im Volumen (siehe Abb. 3.1), welche im Volume Rendering eine Rolle spielt. Und zum
anderen die Wechselwirkung an Oberflächen (siehe Abb. 3.1), bei der Reflexionen und
Refraktionen entstehen.
Da bei Oberflächengrafik, die vorwiegend im Echtzeit-Rendering eingesetzt wird, zwischen
den einzelnen Oberflächen ein Vakuum ohne Wechselwirkungen existiert, entsteht nur an
den Oberflächen und nicht im Objektvolumen eine Streuung von Licht.
Abbildung 3.1: Zwei Kategorien von Wechselwirkungen.
Die in der Szene vorhandene Geometrie benötigt daher eine Oberflächenbeschreibung in Form
von Reflexionseigenschaften. Solche Reflexionseigenschaften von Oberflächen können durch eine sogenannte Bidirektionale Reflektanzverteilungsfunktion (engl. BRDF) beschrieben werden.
Um genauer auf die Funktionsweise der BRDF eingehen zu können, müssen noch einige in
der BRDF vorkommenden Größen und Bezeichnungen erklärt werden.
Raumwinkel
Analog zum Bogenwinkel in der Ebene wird der Raumwinkel ω im Raum definiert. Er beschreibt das Verhältnis einer Kugelfläche A zum Quadrat des Radius dieser Kugel:
ω=
A
[sr]
r2
3.1 Lokale Beleuchtungsmodelle
15
Seine Einheit wird in sr = steradiant angegeben. Der volle Raumwinkel ist die Fläche der
Einheitskugel und hat also die Größe 4π sr.
Weil es nicht wirklich Sinn macht, anzugeben, wieviel Licht von einer genauen Richtung
kommt, da es als eine Art Fluss durch den Raum gemessen wird, verwendet man den differentialen Raumwinkel, der angibt, wieviel Licht aus einer kleinen Menge von Richtungen
kommt. Wenn nun eine Richtung in sphärischen Koordinaten (θ, φ) gegeben ist, und eine kleine Winkelabweichung dθ, dφ, dann ist der differentiale Raumwinkel dω. Abb. 3.2 verdeutlicht
dies. [20, 29]
A
r2
dω = (heigth)(width)
dω =
dω = (dθ)(sin θdφ)
dω = sin θdθdφ
Abbildung 3.2: Der differentielle Raumwinkel ist die fett umrahmte Fläche auf der Einheitskugel.
Bidirektionale Reflektanzverteilungsfunktion (BRDF)
Eine bidirektionale Reflektanzverteilungsfunktion (engl. Bidirectional Reflectance Distribution Function, kurz BRDF) beschreibt die lokalen Reflexionseigenschaften von Materialien
unter beliebigem Einfallswinkel vom Licht. Die BRDF kann je nach gewählter Genauigkeit
dieser Reflexionseigenschaften sehr komplex werden.
Es existieren ferner zwei Ansätze zur Repräsentation der BRDF-Werte. Zum Einen wären
dies explizite Messwerte von Reflexionen auf verschiedenen Materialen oder jeweilige
Simulationsergebnisse basierend auf vorhergehenden Messungen. Und zum Anderen die
Approximierung der Werte durch analytische Funktionen, also durch theoretische Modelle,
wie den lokalen Beleuchtungsmodellen.
Außerdem existieren zwei Klassen von BRDFs. Zum Einen BRDFs für isotrope Oberflächenstrukturen, wo sich die Lichtintensität des reflektierten Lichtes bei Drehung der Oberfläche
16
Beleuchtungsmodelle
nicht ändert. Und zum Zweiten BRDFs für anisotrope Oberflächenstrukturen, wo sich die
Lichtintensität des reflektierten Lichtes bei der Drehung der Oberfläche ändert, z.B. wie bei
gebürstetem Aluminium.
Die BRDF setzt sich aus folgenden Teilen zusammen...
• x = betroffener Oberflächenpunkt:
Ist der Oberflächenpunkt auf den das Licht in einem bestimmten Winkel trifft und
wieder reflektiert wird.
• L = Strahlungsdichte (Radiance):
Die Strahlungsdichte gibt die ankommende und gesendete Lichtenergie bei Punkt x an
und ist im wesentlichen vom Raumwinkel abhängig.
• E = Bestrahlungsstärke (Irradiance):
Die Bestrahlungsstärke gibt an wieviel Strahlungsleistung auf Punkt x auftrifft. Diese
Größe ist ebenfalls vom Raumwinkel abhängig.
• ω = Raumwinkel:
Der Raumwinkel definiert die Lichteinfalls- und Reflexionsrichtung.
• dω = differentielle Raumwinkel:
Der differentielle Raumwinkel gibt eine Fläche auf der Einheitskugel an. Unter diesem
differentiellen Raumwinkel trifft die Lichtstrahlung auf.
• cos θi = Verminderungsfaktor:
Der Verminderungsfaktor der Leuchtintensität durch Einfallswinkel des Lichtes.
...und lautet im vollen Umfang:
BRDF = fr (ωi, x, ωo) =
dLr (x,ωi )
dEi (x,ωi )
=
dLr (x,ωo )
Li (x,ωi ) cos θi dωi
In Abb. 3.3 sieht man die Darstellung aller BRDF-Parameter im groben Zusammenspiel.
Abbildung 3.3: Links die Radiance, Irradiance sowie der Ein- und Ausfallswinkel. Rechts die
definierten Raumwinkel der Lichteinfalls- und Reflexionsrichtung.
3.1 Lokale Beleuchtungsmodelle
17
Wie man anhand der BRDF-Formel sieht, beschreibt diese die Reflexivität eines Materials
als Verhältnis von ausgehender Strahlungsdichte zu eingehender Bestrahlungsstärke und
liefert so für jeden auftreffenden Lichtstrahl die Reflexivität des austretenden Lichtstrahls.
Damit bidirektionale Reflektanzverteilungsfunktionen physikalisch korrekt sind, müssen
diese zwei grundlegende Eigenschaften erfüllen:
1.) Der BRDF-Wert darf sich nicht ändern, wenn Einfalls- und Ausfallswinkel vertauscht
werden. Diese Eigenschaft wird auch als Helmholz-Reziprozität bezeichnet.
2.) Die BRDF muss den Energieerhaltungssatz erfüllen. D.h. die Summe des reflektierten
Lichtes muss gleich der Menge des einstrahlenden Lichtes sein.
Mit der Erfüllung oder Nichterfüllung dieser Eigenschaften entscheidet sich, ob die BRDF
und damit das lokale Beleuchtungsmodell empirischer oder theoretischer Natur ist. Empirische
Beleuchtungsmodelle sind zwar nicht physikalisch korrekt, aber schnell zu berechnen, während
sich dies bei theoretischen Modellen genau andersherum verhält: Es zahlt sich meist nicht aus,
sie in Renderern einzusetzen, wenn sie zu komplex und rechenaufwendig sind. Der wichtigste
Punkt hierbei aber ist: Sie sind meist unnötig präzise im Vergleich zu anderen Vorgängen in
einer Renderingpipeline. Daher liegt es nahe, solche Modelle durch einfachere zu ersetzen [9].
3.1.2 Lambert-Modell
Das Lambert Modell ist ein empirisches Beleuchtungsmodell, das die BRDF eines bestimmten
Materials approximiert. Es stellt die Grundlage fast aller anderen lokalen Beleuchtungsmodelle dar und beschreibt im Groben Oberflächen, die auftreffendes Licht diffus, also in alle
Richtungen gleich stark, reflektieren. D.h. die Strahlungsdichte, bzw. -intensität ist in alle
Richtungen konstant und nur vom Einfallswinkel θ des Lichtes abhängig.
Die Parameter des Lambert-Modells lauten:
• Idif f us = Strahlungsdichte/-intensität der ideal diffusen Reflexion.
• kd = Diffuser Reflexionskoeffizient gibt den Anteil des diffus gestreuten Lichtes an.
• IL = Strahlungsdichte/-intensität des einstrahlenden Lichtes.
• cos θ = Verminderungsfaktor der Leuchtintensität durch Einfallswinkel des Lichtes.
Die Lambert-Modell-Funktion lautet im Ganzen:
Idif f us = ILkd cos(θ) = ILkd(hN , Li)
Je größer der Einfallswinkel des Lichtes ist, desto geringer wird die Strahlungsintensität der
ideal diffusen Reflexion, da sich die bestrahlte Fläche mit zunehmendem Einfallswinkel vergrößert (siehe Abb. 3.4).
A⊥ = A cos(θ) , mit A⊥ = Lichtstrahlbreite
18
Beleuchtungsmodelle
Abbildung 3.4: Links die Abhängigkeit von A vom Einfallswinkel θ. Rechts die als Halbkreis
abgebildeten Funktionswerte der Intensität der Reflexion bei verschiedenen Einfallswinkeln.
Abbildung 3.5: Beispiel einer perfekt diffusen Kugel nach dem Lambert-Modell.
3.1.3 Phong- und Blinn-Phong-Modell
Das Phong- und Blinn-Phong-Modell ist das bekannteste und oft benutzte Beleuchtungsmodell der Computergrafik. Es ist ein einfaches, nicht rechenintensives lokales
Beleuchtungsmodell, dass eine Erweiterung des Lambert-Modells ist. Es beschreibt vorwiegend matt-glänzende Materialien, welche das Licht spekular reflektieren. Da die Parameter
des Phong- und Blinn-Phong-Modells keinerlei physikalischer Grundlage unterliegen, wird
das Energieerhaltungsgesetz nicht eingehalten. D.h. es kann passieren, dass mehr Licht
von einem Objekt reflektiert wird, als auf das Objekt eingestrahlt wurde. Das reflektierte
Licht wird als Kombination aus ambienter, ideal diffuser und ideal spiegelnder Reflexion
beschrieben.
3.1 Lokale Beleuchtungsmodelle
19
Phong-Modell
Die Bestandteile der Phong-Reflexion sind folgende:
• Ambiente Komponente des reflektierten Lichtes:
– Iambient = Ia kambient , mit
Ia = Intensität des Umgebungslichtes.
kambient = Materialkonstante.
• Diffuse Komponente des reflektierten Lichtes:
– Idif f us = IL kdif f us cos(θ) = IL kdif f us (hN , Li) , mit
IL = Intensität des einfallenden Punktlichtstrahls.
kdif f us = empirischer Reflexionsfaktor für die diffuse Komponente.
• Spekulare Komponente des reflektierten Lichtes:
– Ispekular = IL kspekular cosn (α) = IL kspekular (hR, V i)n , mit
IL = Intensität des einfallenden Punktlichtstrahls.
kspekular = empirischer Reflexionsfaktor für spiegelnde Komponente.
n = konstanter Faktor zur Beschreibung der Oberflächenbeschaffenheit. Hierbei
wäre rau n < 32, glatt n > 32 und n = ∞ ein perfekter Spiegel.
Die Phong-Modell-Funktion, welche die Strahlungsdichte/-intensität der Phong Reflexion angibt, lautet dann im Ganzen (siehe Abb. 3.6):
Iphong = Iambient + Idif f us + Ispekular
Abbildung 3.6: Zusammensetzung der obigen Komponenten zum Phong-Modell [25].
Um die Auswirkungen der oben vorgestellten Parameter zu veranschaulichen, wird in Abb.
3.7 gezeigt, wie sich der empirische Reflexionsfaktor der spiegelnden Komponente und der
konstante Faktor zur Beschreibung der Oberflächenbeschaffenheit auf das mit dem PhongModell gerenderte Bild auswirkt.
20
Beleuchtungsmodelle
Abbildung 3.7: Phong-Modell - Auswirkung der Parameter.
Man sieht, dass links unten die gerenderte Kugel nur eine diffuse Reflexion und ein relativ
mattes Material aufweist. Wohingegen die Kugel oben rechts spekulare Reflexionen aufgrund
des sehr glatten, bis hin zum spiegelnden, Materials aufweist. So werden der spekulare Reflexionsanteil über den Parameter ks und die “Glattheit“ der Oberfläche über den Parameter n
gesteuert.
Blinn-Phong-Modell
Was ist nun der Unterschied vom Phong-Modell zum Blinn-Phong-Modell? Nun der einzige
Unterschied besteht in der spekularen Komponente. Im Phong-Modell wurden der Reflexionsvektor R und der Betrachtungsvektor V benötigt, um den spekularen Anteil der Reflexion
Ispekular bestimmen zu können (siehe Abb. 3.8).
Ispekular = IL kspekular cosn (α) = IL kspekular (hR, V i)n
Abbildung 3.8: Phong-Modell - Berechnung der spekularen Komponente.
3.1 Lokale Beleuchtungsmodelle
21
Da das Skalarprodukt beider Vektoren und damit der Winkel α umständlicher zu berechnen
ist, wird anstelle des tatsächlichen Reflexionsvektors R die Winkelhalbierende H der Vektoren
V und L genommen. Mit diesem Vektor H und dem Normalenvektor am betreffenden Punkt,
wird durch ein Skalarprodukt der Winkel β, welcher annähernd dem Winkel α entspricht,
berechnet (siehe Abb. 3.9) [7]. Damit enfällt die aufwendige und langsame Berechnung des
Reflexionsvektors, was das Blinn-Phong-Modell schneller bei gleichem Ergebnis macht (siehe
Abb. 3.10).
Ispekular = IL kspekular cosn (β) = IL kspekular (hH, N i)n , mit
H=
L+V
kL+V k
= Half way − V ektor
Abbildung 3.9: Blinn-Phong-Modell - Berechnung der spekularen Komponente.
Abbildung 3.10: Vergleich von Blinn-Phong-Modell und Phong-Modell [21].
22
Beleuchtungsmodelle
3.1.4 Schlick-Modell
Das Schlick-Modell ist ein weiteres physikalisch motiviertes, effizient berechenbares Beleuchtungsmodell. Es ist wie das Cook-Torrance-Modell ein Mittel zwischen empirischem
und theoretischem Modell und eine effiziente Zusammenführung des Phong-Modells und
des Cook-Torrance-Modells. Beim Schlick-Modell werden Reflexionen physikalisch plausibel
unter Einhaltung des Energieerhaltungssatzes beschrieben. Außerdem wird der sogenannte
Fresnel-Effekt, welcher den Reflexionsgrad von Licht, sowie die Verteilung des einfallenden
Lichtes auf den reflektierten und den transmittierten Strahl beschreibt, durch eine einfachere
Approximation ersetzt.
Im Unterschied zu nahezu allen anderen lokalen Beleuchtungsmodellen verwendet das
Schlick-Modell keine Aufspaltung des Reflexionslichtes in ambiente, diffuse und spekulare
Komponente. Stattdessen wird von einem Schichtmodell ausgegangen. So wird zwischen
Oberflächen mit homogenen, und solchen mit heterogenen optischen Eigenschaften unterschieden. Hierbei bestehen heterogene Materialien aus zwei Schichten, wobei die obere
Schicht etwas transparent ist. Ein solches Material wäre z.B. lackiertes Holz. Homogene
Materialien bestehen dagegen nur aus einer Schicht.
Ferner benötigt das Schlick-Modell drei weitere Parameter zur Oberflächenbeschreibung.
So beschreiben der Reflexions-, Rauheits- und Isotropie-Faktor die wichtigsten optischen
Materialeigenschaften.
In der Abb. 3.11 sieht man jeweils das classic Phong-Modell und das Cook-TorranceModell. Wobei die gerenderten Bilder jeweils abhängig von ihren Reflexionen unecht und
“plastikhaft“ aussehen. Das mit dem Schlick-Modell gerenderte Bild in Abb. 3.12 dagegen
vereinigt die optischen Vorzüge beider oben erwähnten Modelle und sieht dementsprechend
realistischer aus.
Abbildung 3.11: Classic Phong-Modell und Cook-Torrance-Modell zusammengeführt...
3.2 Interpolationsverfahren
23
Abbildung 3.12: ...ergeben das effiziente Schlick-Modell.
3.2 Interpolationsverfahren
Wie werden eigentlich Polygone gefüllt? Diese einfache Frage lässt sich mit den Schattierungsalgorithmen, den sogenannten Shading-Verfahren, beantworten. Es gibt zwei Klassen
von Schattierungsalgorithmen: das vertexbasierte Vertex-Lighting und das pixelbasierte PerPixel-Lighting.
3.2.1 Vertex-Lighting
Beim Vertex-Lighting wird für jeden Vertex der Geometrie entsprechend einem Beleuchtungsmodell ein Farbwert berechnet. Anschließend wird ein neuer Farbwert zwischen den zwei
Vertex-Farbwerten interpoliert und jedes Pixel zwischen den Vertices erhält den interpolierten Farbwert. Bekannte Vertex-Lighting Algorithmen sind das Flat- und Gouraud-Shading.
Flat-Shading
Das Flat-Shading ist ein sehr einfacher und schneller Schattierungsalgorithmus. Hierbei bekommt jedes Pixel eines Polygons anhand der Flächennormale den gleichen Farbwert, bzw. den
gleichen Lichtwert zugewiesen. Aufgrund dieser Vorgehensweise entsteht der größte Nachteil
des Flat-Shadings. Bei gekrümmten Oberflächen sieht die Beleuchtung aufgrund von Facettenbildung unrealistisch aus. Da dieser Nachteil nur durch sehr viele kleine Polygone, einhergehend mit hohem Rechenaufwand, beseitigt werden kann, eignet sich das Flat-Shading nur
bedingt für eine effiziente und realistische Darstellung.
24
Beleuchtungsmodelle
Abbildung 3.13: Flat-Shading.
Gouraud-Shading
Das Gouraud-Shading berechnet durch Mittelung aller anliegenden Flächennormalen den
Richtungsvektor eines jeden Vertices. Anschließend wird entsprechend einem Beleuchtungsmodell der Vertex-Farbwert berechnet. Danach werden aus diesen Vertex-Farbwerten über
eine Scanline-Interpolation die Farbwerte der Pixel auf den Polygonkanten berechnet. In
einer zweiten Scanline-Interpolation werden aus den Farbwerten auf den Polygonkanten die
Pixel-Farbwerte auf der Scanline selber berechnet. Nach beiden Scanline-Interpolationen
wurde für jedes Pixel im Polygon ein neuer Farbwert bestimmt. Die facettierte Oberfläche
eines schattierten Objekts erscheint durch die Interpolation der Flächennormalen weich.
Das Gouraud-Shading braucht weniger Polygone bei einem viel besseren Ergebnis als das
Flat-Shading.
Abbildung 3.14: Gouraud-Shading.
3.2.2 Per-Pixel-Lighting
Das Per-Pixel-Lighting ist eine pixelbasierte Beleuchtung, bei der ein Farbwert entsprechend
einem Beleuchtungsmodell nicht für jeden Vertex berechnet und dann interpoliert wird, sondern für jeden einzelnen Pixel separat berechnet wird. Das Per-Pixel-Lighting wird von
Hardware-Shadern unterstützt und ermöglicht die realistische Darstellung von bliebig großen
Licht- und Reflexionseffekten. Das Phong-Shading ist hier ein bekannter Per-Pixel-Lighting
Algorithmus. Die meisten high-end Game-Engines, wie die CryEngine3, Doom3-Engine, Source Engine, Dunia Engine und viele weitere unterstützen das Per-Pixel-Lighting.
3.2 Interpolationsverfahren
25
Abbildung 3.15: Per-Pixel-Lighting - Beipiel [16].
Phong-Shading
Das Phong-Shading interpoliert aus den Vertex-Normalen Normalen für jeden Pixel im
Polygon und berechnet für diesen anhand einem entsprechenden Beleuchtungsmodell den
Farbwert aus der Pixel-Normale (siehe Abb. 3.16). Qualitativ ist das Phong-Shading besser
als das Gouraud-Shading (siehe Abb. 3.17). Im Vergleich ist es aber um einiges rechenaufwendiger.
Abbildung 3.16: Interpolation der Normale für jeden Pixel im Polygon.
26
Beleuchtungsmodelle
Abbildung 3.17: Flat-Shading vs. Phong-Shading.
3.3 Globale Beleuchtungsmodelle
3.3.1 Allgemeine Beschreibung globaler Modelle
Um eine globale Beleuchtung physikalisch korrekt beschreiben zu können, benötigt man
richtige theoretische Modelle. Da das erklärte Ziel ist ein photorealistisches Bild zu rendern,
muss die globale Wechselwirkung von Licht und Materie physikalisch korrekt beschrieben
werden. Dazu wird die in Kapitel 2 beschriebene geometrische Optik als Basis des globalen
Beleuchtungsmodells gewählt und die sogennante Rendering Gleichung näherungsweise
gelöst.
Es gibt drei verschiedene Ansätze globaler Beleuchtungsmodelle [22]:
1.) Inversion:
• In der Praxis nicht angewendet.
2.) Expansion:
• Schussartiger Ansatz: Ray Tracing, Light Ray Tracing.
• Sammlungsartiger Ansatz: Path Tracing.
• Bidirektionaler Ansatz: Photon Mapping und Diffuses Ray Tracing.
3.) Iteration:
• Radiosity-Verfahren.
Rendering Gleichung
Bei der Rendering Gleichung handelt es sich um eine Integralgleichung, die die Energieerhaltung bei der Ausbreitung von Lichtstrahlen beschreibt und somit die mathematische Basis
für alle Algorithmen zur globalen Beleuchtung bildet. Jim Kajiya zeigte 1986, dass alle bis
3.3 Globale Beleuchtungsmodelle
27
dato verbreiteten Rendertechniken direkt aus der Rendering Gleichung hergeleitet werden
können. Damit gab es erstmals einen gemeinsamen mathematischen Unterbau, auf dem die
globalen Beleuchtungsmodelle verglichen werden konnten [26].
Die Rendering Gleichung lautet:
L(x, ωr ) = Le(x, ωr ) +
R
Ω+
fr (ωi, x, ωr )Li(x, ωi) cos θidωi
Die einzelnen Teile haben im wesentlichen die unten erklärten Bedeutungen und sind Richtungsabhängig:
• L(x, ωr ) = Der Energiefluss:
Gibt an wieviel Licht von Punkt x aus in Richtung ωr abgestrahlt wird. Ist die Radiance
oder auch Strahldichte.
• Le (x, ωr ) = Der Emissionsterm:
Gibt an wieviel Licht von x aus in Richtung ωr ausgestrahlt wird, falls der Punkt selbst
eine Lichtquelle darstellt.
• fr (ωi , x, ωr ) = Der Streuungsterm:
Ist eine BRDF mit Einfallswinkel ωi und Reflexionswinkel ωr in Abhängigkeit von Punkt
x.
• Li (x, ωi ) = Einfallende Radiance:
Beschreibt, wieviel Licht aus Richtung ωi den Punkt x erreicht.
• Ω+ = positiven Hemisphäre:
Ist die Gesamtheit aller Winkel der positiven Hemisphäre über der Oberfläche.
• cos θi = Einfallsrichtung des Lichtes.
Abbildung 3.18: Rendering Gleichung - Grobes Prinzip.
28
Beleuchtungsmodelle
Die Lösungsansätze für die Werte innerhalb des Integrals sind einmal die Monte-CarloTechniken. Hier lassen sich die Werte z.B. durch Ray Tracing, also durch das Aussenden eines
Lichtstrahls in Richtung ωi , berechnen. Und zum Anderen die Finite-Elemente-Techniken.
Hier lassen sich die Werte z.B. durch Radiosity, also dem globalen Lichtaustauch von Oberflächenpatches und dem Lösen von Gleichungssystemen, berechnen.
3.3.2 Ray Tracing
Das Ray Tracing ist eines der wichtigsten globalen Beleuchtungsmodelle zur Verdeckungsund Lichtverteilungsberechnung in einer 3D-Szene. Durch Aussenden von Strahlen, die den
Weg von Lichtstrahlen in einer Szene simulieren, wird das Mehrfachintegral der Rendering
Gleichung annähernd bestimmt. Somit wird eine physikalisch korrekte und real wirkende
Beleuchtung der Szene erzeugt.
In Abb. 3.19 wird schematisch von der Betrachterposition, die den Start darstellt, der
rekursive Rückwärts-“Licht“-Transport verdeutlicht. So wird der Pfad eines ausgesendeten
Lichtstrahls, welcher beim Betrachter ankommt, rekursiv nachverfolgt bis ein letztes Objekt
“getroffen“ wird. Anschließend werden alle, durch entsprechende lokale Beleuchtungsmodelle
berechneten, Farbwerte an den betroffenen Trefferpunkten auf dem “Lichtpfad“ rekursiv
aufaddiert und im Pixel der Bildebene ausgegeben (siehe Abb. 3.20).
Abbildung 3.19: Ray Tracing - Rekursives Zurückverfolgen des Lichtstrahls.
3.3 Globale Beleuchtungsmodelle
29
Abbildung 3.20: Ray Tracing - Bildaufbau durch Algorithmus.
Abbildung 3.21: Ray Tracing - Rendering Beispiel.
3.3.3 Radiosity
Das Radiosity Modell ist nach Ray Tracing eins der bekanntesten globalen Beleuchtungsmodelle. Das Modell löst annähernd die Rendering Gleichung unter Einhaltung des
Energieerhaltungssatzes für Strahlung. Anders als beim Ray Tracing wird keine Lichtausbreitung durch Lichtstrahlen simuliert, sondern es wird angenommen, dass alle Oberflächen ideal
diffuse Reflektoren und alle Lichtquellen ideal diffuse Strahler sind. Dadurch ist die globale
Beleuchtung der Szene Blickpunktunabhängig, bzw. unabhängig von der Kameraposition.
Aber auch sehr rechenintensiv durch hohen Zeit- und Speicherbedarf.
Das grobe Funktionsprinzip des Algorithmus:
Die Geometrie der 3D-Szene wird in bestimmte Patches unterteilt (siehe Abb. 3.22). Die
Patches beeinflussen den Radiosity-Wert eines anderen Patches und umgekehrt. D.h. einzelne
Patches tauschen untereinander Strahlung aus. Dieser Austausch wird durch die Berechnung
der sogenannten Formfaktoren beschrieben. Anschließend werden die Radiosity-Werte der
einzelnen Patches durch das iterative Lösen eines linearen Gleichungssystems berechnet. Da
die iterative Lösung des LGS gegen die exakte Lösung der Rendering Gleichung konvergiert
30
Beleuchtungsmodelle
und damit gegen ein photorealistisches Bild, kann nach einer genügend exakten Lösung mit
den vorhandenen Radiosity-Werten z.B. Gouraud-Shading auf die Polygone angewendet
werden (siehe Abb. 3.22), um das fertige Bild zu erzeugen. Die Blickpunktabhängige
Verdeckungsberechnung erfolgt in einem unabhängigem Schritt.
Abbildung 3.22: Radiosity - Grobes Prinzip.
4 Schattenmodelle
4.1 Lokale Schattenmodelle
4.1.1 Projektive Schatten
Projektive Schatten sind ein einfaches und effizientes Schattenmodell das am besten für
Schatten auf Ebenen geeignet ist. Das Prinzip zur Erzeugung von projektiven Schatten ist
denkbar einfach.
Das Objekt, welches die Schattenquelle darstellt, wird zum eigentlichen Schatten transformiert. Diese Transformation erzeugt eine planes Objekt von der Schattenquelle, welches
dann als Schatten auf die Ebene projiziert wird. Anschließend werden das Objekt und der
Schatten gezeichnet (siehe Abb. 4.1).
Bei dem Erzeugen der projektiven Schatten treten aber auch Probleme auf. So ist die
Schattenprojektion weitgehend “starr“. D.h. die Schatten sind nur für planare Empfängerflächen geeignet und sehen auf gekrümmten Oberflächen nicht korrekt aus. Ein weiterer
Nachteil besteht in der Projektion auf die Oberflächenebene. Hierbei kann das sogenannte
Z-Buffer-Fighting auftreten. Dabei haben die Ebene und der projizierte Schatten den gleichen
Tiefenwert und die Grafikpipeline weiß nicht welcher Pixel mit seinem Z-Buffer-Wert als
erstes gezeichnet werden soll. In der Folge entstehen zerfranste, halb überlagerte Texturen.
Einer der größten Nachteile der projektiven Schatten ist die nicht vorhandene Selbstbeschattung (siehe Abb. 4.2).
Abbildung 4.1: Schattenwerfendes Objekt auf die Ebene projiziert.
32
Schattenmodelle
Abbildung 4.2: Links gibt es keine Selbstbeschattung. Rechts ragt der Schattens aus der
Oberflächenebene heraus.
4.1.2 Schattenvolumen
Die Schattenvolumen (engl. Shadow Volumes) sind eines der am häufigsten verwendeten
Schattenmodelle in aktuellen Spielen. Das Prinzip ist relativ einfach und lässt sich effektiv
implementieren. Das Verfahren ist ein Objektraum-Verfahren und bietet korrekt geworfene
Schatten auf allen Oberflächenstrukturen und eine Selbstbeschattung. Außerdem sind die
Schattenvolumen unabhängig von der Betrachterposition. Das grobe Prinzip wird im weiteren
näher eläutert.
Zuerst wird das schattenwerfende Objekt, welches die Schattenquelle darstellt bestimmt.
Anschließend werden von der Lichtquelle aus die Silhouetten-Kanten der Schattenquelle zum Schattenvolumen ins “unendliche“ extrudiert. All diejenigen Bereiche liegen im
Schatten, die sich nun im Schatten-Volumen der Schattenquelle befinden. Daraufhin erfolgt ein Clipping der erzeugten Volumen am Viewing-Frustum (siehe Abb. 4.3 und Abb. 4.4).
Abbildung 4.3: Schattenwerfendes Objekt erzeugt Schattenvolumen.
4.1 Lokale Schattenmodelle
33
Abbildung 4.4: Schattenvolumen - Beispiel NVIDIA-Demo.
Wie wird aber festgestellt, ob ein Punkt im Schattenvolumen liegt? Die grobe Lösung dieser Frage ist eine Strahlverfolgung vom Betrachter zum Oberflächenpunkt mit ergänzenden
Stencil-Buffer Operationen (siehe Abb. 4.5). Schneidet der ausgesendete Strahl die Seite
des Schattenvolumens, welche zum Betrachter zeigt, wird der Stencil-Buffer um eins erhöht.
Schneidet der ausgesendete Strahl die Rückseite des Schattenvolumens wird der Stencil-Buffer
um eins erniedrigt. Anschließend ist der Oberflächenpunkt im Schatten, wenn der StencilBuffer größer 0 ist.
Abbildung 4.5: Wann liegt ein Punkt im Schatten? - Das Prinzip.
34
Schattenmodelle
Das verfahren der Schattenvolumen hat aber auch Nachteile zu bieten. So ist die Füllrate bei
vielen Schattenquellen sehr hoch, da viele Volumen gezeichnet werden müssen. Das Verfahren
eignet sich gut für harte Schatten, weiche Schatten dagegen lassen sich nur mit “Tricks“
erzeugen [3]. So werden mehrere Volumen gezeichnet und dann das Ergebnis zu einem
weichen Schatten gemittelt. Außerdem hat das klassische Verfahren der Schattenvolumen
ein Problem, wenn die Kameraposition innerhalb des Schattenvolumens liegt. Die Lösung
hier ist die sogenannte Depth-fail-Methode, auch Carmack’s Reverse-Methode genannt, zur
modifizierten Berechnung des Stencil-Buffers.
Abbildung 4.6: Schattenvolumen - Bekanntestes Beispiel Doom 3 [14].
4.1.3 Shadow Maps
Die Shadow-Maps sind neben den Schattenvolumen ein weit verbreitetes Schattenmodell
in aktuellen high-end Computerspielen. Es ist ein texturbasiertes Schattenmodell, das in
einer separaten Textur, der sogenannten “Shadow Map“, alle Schatten-Informationen der
3D-Szene speichert. Diese Shadow-Map wird perspektivisch auf die 3D-Szene Projiziert.
Das Shadow-Map Verfahren ermöglicht weiche Schatten, sowie Selbstbeschattung. Es ist
recht effizient bei großen Geometrien und damit schneller als das Schattenvolumen-Verfahren.
Das grobe Prinzip (siehe Abb. 4.7):
Die Schattenberchnung erfolgt in einem 2-Pass-Rendering (siehe Abb. 4.8). Die Szene wird
zunächst aus Sicht der Lichtquelle gerendert. Hierbei wird der Z-Buffer ausgelesen und
in die Shadow Map gespeichert. Im zweiten Pass wird die Szene aus der Kameraposition
gerendert. Hierbei wird jedes sichtbare Fragment in das Lichtquellensystem transformiert.
Ein anschließender Vergleich des Tiefenwertes von jedem Fragment mit dem gespeicherten
Tiefenwert aus der Shadow Map zeigt, ob das Fragment im Schatten liegt oder nicht.
4.1 Lokale Schattenmodelle
35
Abbildung 4.7: Shadow Maps - Grobes Prinzip.
Abbildung 4.8: Shadow Maps - Veranschaulichung des 2-Pass-Rendering.
Wie die vorhergehenden Schattenmodelle bieten auch die Shadow Maps Nachteile. So sind
die Resultate, also die Schattendarstellung, weniger genau wie bei den Schattenvolumen.
Bei Dynamischen Szenen muss die Shadow Map immer wieder neu berechnet werden, was
Performance kostet. Die Schattenqualität hängt stark von der Auflösung der Shadow Map
ab, da eine gleichförmige Verteilung des Texturraumes vorliegt. D.h. dass die Schattentextur
36
Schattenmodelle
bei einer weiten Ausdehnung des Schattens in Richtung der Kamera immer grobaufgelöster
wird (siehe Abb. 4.9 links). Zusätzlich kann auch sogenannte Surface Acne entstehen, wenn
Ungenauigkeiten bei dem Z-Test erfolgen (siehe Abb. 4.9 rechts).
Abbildung 4.9: Shadow Maps Probleme - Rechts die geringe Auflösung der Schattentextur.
Links das Surface Acne.
4.2 Globale Schattenmodelle
4.2.1 Ray Tracing
Das Ray Tracing ist nicht nur eines der meistverwendeten globalen Beleuchtungsmodelle, sondern auch ein viel verbreitetes globales Schattenmodell. Da es die Verdeckungs- und Lichtverteilungsberechnung in einer 3D-Szene durchführt, liegt es nahe, dass eine globale Schattenberchnung ebenfalls möglich ist. Die Idee der Schattenberechnung mit Ray Tracing ist folgende. Lichtstrahlen können nicht nur vom Betrachter, sondern von jedem beliebigen Punkt
in der Szene, ausgesendet werden. Damit wird die Schattensimulation möglich.
So befindet sich ein Oberflächenpunkt im Schatten, wenn sich zwischen ihm und der Lichtquelle ein anderes, schattenwerfendes, Objekt befindet. Um dies herauszufinden sendet der
Oberflächenpunkt einen Schattenstrahl in Richtung Lichtquelle aus. Gibt es einen Schnittpunkt mit einem anderen Objekt, so liegt der Oberflächenpunkt im Schatten des geschnittenen
Objekts und der Helligkeitswert an diesem Punkt nimmt den Wert 0 an (siehe Abb. 4.10).
4.2 Globale Schattenmodelle
37
Abbildung 4.10: Ray Tracing - Schattenberechnung.
4.2.2 Radiosity
Das Radiosity Schattenmodell simuliert Schatten durch die globale Wechselwirkung jeder, in
der 3D-Szene vorhandenen, Oberfläche mit jeder anderen. Die Oberfläche wird in Patches
unterteilt. Diese Patches nehmen Strahlung auf und tauschen diese gegenseitig aus. Sind nun
bestimmte Patches verdeckt von anderen, nehmen und senden diese weniger Licht an andere
Patches. In Folge dessen haben die verdeckten Patches einen kleineren Radiosity-Wert und
werden dadurch dunkler gezeichnet, bzw. gerendert. So entsteht bei verdeckten Oberflächen
der Szene ein Schatten. Im Ganzen wird dann eine globale Schattensimulation möglich.
Abbildung 4.11: Radiosity - Beispiel für Schattenberechnung.
5 Zusammenfassung
Es wurden drei lokale Beleuchtungsmodelle vorgestellt. Mit Ray Tracing und Radiosity zwei globale Beleuchtungsmodelle und dazu die in der Computergrafik gebräulichen
Interpolations-Verfahren. Da zur korrekten Beleuchtung auch eine physikalisch korrekte
Beschattung gehört, wurden die drei am häufigsten verwendeten lokalen Schattenmodelle
vorgestellt und erklärt. Abschließend wurde noch kurz auf die globalen Schattenmodelle
eingegangen.
Auffallend ist, dass real wirkende Beleuchtung und Beschattung bei heutiger Komplexität
nicht mehr per Hand zu modellieren sind. Solch ein Unterfangen wäre zu zeitaufwendig oder
sogar unmöglich. Um dies aber trotzdem realisieren zu können, werden aufwendige Texturen
mit Hilfe von Beleuchtungs- und Schattenmodellen prozedural erzeugt. Erst dadurch wurde
es Ende der 1990er Jahre möglich Licht und Schatten als Designmittel in Computerspielen
einzusetzen.
Im Bereich der Schattenmodelle werden immer mehr “Feinheiten“ entwickelt und so werden
z.B. Soft Shadow-Methoden immer besser. Im Bereich Beleuchtung wird versucht indirekte
globale Beleuchtung durch lokale Mittel im echtzeit Rendering nachzuahmen. Hierzu macht
das Unternehmen Crytek mit dem Light Propagation Volumes Verfahren die ersten Schritte
in die richtige Richtung. Im Allgemeinen bewegt sich daher die gesamte Entwicklung der
Computergrafik in Richtung photorealistisches Rendering in Echtzeit.
Literaturverzeichnis
[1] 2K. Bioshock. Screenshot, 2007.
[2] Atari. Paperboy. Screenshot, 1984.
[3] D. Cohen-Or and P. Slavik. High-Quality Adaptive Soft Shadow Mapping. EUROGRAPHICS 2007, Volume 26 (2007), Number 3, 2007.
[4] Crytek. Crysis. Screenshot, 2007.
[5] Crytek. Crysis 2. Screenshot, 2010.
[6] Michelangelo Merisi da Caravaggio. Bildtitel: Berufung des Matthäus. http://
de.wikipedia.org/wiki/Datei:Caravaggio_-_La_vocazione_di_San_Matteo.jpg,
1599. (online, 5.05.2010).
[7] Wolfgang Engel and Jack Hoxley. D3dbook. http://wiki.gamedev.net/index.php/
D3DBook:Book_Cover, 2004.
[8] LucasFilms Games. The Eidolon. Screenshot, 1984.
[9] Nikolaus Gebhardt. Einige BRDF Modelle. http://www.irrlicht3d.org/papers/
BrdfModelle.pdf.
[10] LucasArts. Maniac Mansion. Screenshot, 1987.
[11] Nintendo. Super Mario Bros. Screenshot, 1985.
[12] Nintendo. Super Mario 64. Screenshot, 1996.
[13] Id Software. Doom. Screenshot, 1993.
[14] Id Software. Doom 3. Screenshot, 2004.
[15] Looking Glass Studios. System Shock 2. Screenshot, 1999.
[16] Ubisoft. Dunia Engine - Far Cry 2. http://www.pcgameshardware.de/screenshots/
original/2008/01/Far_Cry_2_new_screenshots_02.jpg, 2008.
[17] Ubisoft. Assassin’s Creed 2. Screenshot, 2009.
[18] Ubisoft. Splinter Cell - Conviction. Screenshot, 2010.
[19] Valve. Halflife. Screenshot, 1998.
[20] Ulrich Weidenbacher. Beleuchtungsmodelle. Technical report. Universität Ulm, 2002.
40
Literaturverzeichnis
[21] Wikipedia.
Blinn-Beleuchtungsmodell.
http://de.wikipedia.org/w/index.php?
title=Datei:Blinn_phong_comparison.png&filetimestamp=20091031225822. (online, 20.05.2010).
[22] Wikipedia.
Globale Beleuchtung.
Beleuchtung. (online, 7.11.2009).
http://de.wikipedia.org/wiki/Globale_
[23] Wikipedia. Licht. http://de.wikipedia.org/wiki/Licht. (online, 8.07.2010).
[24] Wikipedia. Lichtspaltung. http://de.wikipedia.org/wiki/Brechungsgesetz. (online, 9.06.2010).
[25] Wikipedia. Phong-Beleuchtungsmodell. http://de.wikipedia.org/w/index.php?
title=Datei:Phong_components_version_4.png&filetimestamp=20060807180513.
(online, 20.05.2010).
[26] Wikipedia. Rendergleichung. http://de.wikipedia.org/wiki/Rendergleichung. (online, 14.02.2010).
[27] Wikipedia.
Snelliussches Brechungsgesetz.
http://de.wikipedia.org/wiki/
Snelliussches_Brechungsgesetz. (online, 9.06.2010).
[28] Wikipedia.
Spekulare Reflexion.
(Physik). (online, 15.07.2010).
http://de.wikipedia.org/wiki/Reflexion_
[29] Chris Wynn. An Introduction to BRDFBased Lighting. Technical report. NVIDIA
Corporation, 2000.
Erklärung
Ich versichere, dass ich die Arbeit ohne fremde Hilfe und ohne Benutzung anderer als
der angegebenen Quellen angefertigt habe, und dass die Arbeit in gleicher oder ähnlicher
Form noch keiner anderen Prüfungsbehörde vorgelegen hat und von dieser als Teil einer
Prüfungsleistung angenommen wurde. Alle Ausführungen, die wörtlich oder sinngemäß
übernommen wurden, sind als solche gekennzeichnet.
Stuttgart, den 30. Juli 2010
(Oleg Martin)