Beleuchtung und Schattierung

Zurück zu Vorlesungsübersicht

In dieser Einheit werden die Grundlagen einfacher Beleuchtungstechniken erklärt und eingeordnet.


Nach dieser Lehreinheit solltest du…

  • …die Bedeutung von Beleuchtung für die Computergrafik kennen,
  • …die Unterschiede zwischen lokalen und globalen Beleuchtungsmodellen erklären können, (shading und shadowing),
  • …die Bestandteile des Phong-Beleuchtungsmodells kennen.

Vorwissen

  • …Verständnis für Grundlagen der Vektorrechnung und Anwendungen des Skalarprodukts (wie in der Vorlesung besprochen)

Weiterführendes zu physikalischen Grundlagen

Motivation und Problemstellung

Ziel dieser Einheit soll es sein, zu verstehen, welche Rolle Beleuchtung in der Computergrafik spielt und wie grundlegende Beleuchtungsverfahren funktionieren. Bevor wir uns jedoch genauer mit der Umsetzung beschäftigen, müssen wir uns zunächst erarbeiten, welche Eigenschaften virtuelle Beleuchtung auszeichnen.

Wir wollen uns dafür ein paar Aufnahmen aus verschiedenen Spielen ansehen. Welche Eigenschaften, die ein Beleuchtungsmodell charakterisieren, kannst du daraus ableiten?

goosealyx cyberwitness

Wie auch auf den Screenshots zu erkennen, ist Beleuchtung ein zentrales Ausdrucksmittel und für 3D-Wahrnehmung wichtig. Sie vermittelt Betrachter*innen Informationen über Oberflächenbeschaffenheit und Form von Objekten und trägt dadurch signifikant dazu bei, einen räumlichen Eindruck zu erzeugen.

Um diese Informationen zu vermitteln, muss die Belechtung der Szene also in irgendeiner Form von der Oberfläche abhängen, also insbesondere ihrer Ausrichtung sowie ihrem Material und ihrer Struktur. So würde z.B. ein Ball aus Gummi bei gleicher Beleuchtung anders aussehen als eine Kugel aus Metall.

Dabei sind verschiedene Beleuchtungseffekte zu beobachten: Zum einen sind Flächen stärker erleuchtet, je mehr sie dem Licht zugewandt sind, unabhängig von der Kameraposition. Dieser Bestandteil der Beleuchtung nennt sich diffuse Beleuchtung. Zum anderen sind auch Glanzpunkte zu erkennen, deren Position sich in Abhängigkeit von der Blickrichtung verändert. Diese highlights sind der spekulare Anteil der Beleuchtung.

Wie sich die Stärke der Beleuchtung in Abhängigkeit von z.B. Lichteinfallswinkel und Betrachtungswinkel verhält, kann allgemmein durch Bidirectional Reflectance Distribution Functions (BRDFs) beschrieben werden. In dieser Einheit soll es um eine bestimmte BRDF gehen, welche die Effekte der diffusen und spekularen Beleuchtung einbezieht.

In der Computergrafik I möchten wir zunächst darauf eingehen, wie diese beiden Effekte umgesetzt werden können, um grundlegend plausible Beleuchtung zu erzeugen, die von Oberflächenausrichtung und -material abhängig ist. Natürlich gehört für eine realistische Beleuchtung aber noch einiges mehr dazu. Weiterführende Effekte, die in den Screenshots zu erkennen sind, sind z.B. indirekte Beleuchtung und Schattenwurf.

Direkte vs. Indirekte Beleuchtung
Direkte Beleuchtung bezeichnet alle Beleuchtungseffekte, die nur Licht berücksichtigen, das auf direktem Wege auf die Oberfläche trifft. Unter anderem werden Reflexion oder Refraktion von Licht durch andere Objekte zwischen der Oberfläche und der Lichtquelle nicht berücksichtigt. Wird beispielsweise eine weiße Wand angestrahlt, würde mit einer physikalisch korrekten Darstellung ein Teil des reflektierten Lichts andere Objekte der Szene erleuchten. Dieser Effekt kann durch Beleuchtungsmodelle mit rein direkter Beleuchtung nicht abgebildet werden.

camera-model
Der Einfluss indirekter Beleuchtung ist z.B. an der linken Seite des Quaders zu erkennen.

Schattierung vs. Schattenwurf
Während es bei der Schattierung darum geht, die Oberflächenfarbe gemäß Material und Ausrichtung gegenüber Lichtquelle und Kamera anzupassen, meint Schattenwurf das Entstehen von Schatten durch Hindernisse zwischen Oberfläche und Lichtquelle.

camera-model
Shading/Shadowing

Aber was macht diese Effekte so viel schwieriger umzusetzen als direkte Beleuchtung ohne Schattenwurf? Das liegt daran, welche Informationen jeweils benötigt werden, um das Ergebnis zu berechnen. Für direkte Beleuchtung ohne Schatten reicht es aus, die Oberflächennormale und die Positionen von Lichtquellen, Kamera und dem aktuellen Punkt auf der Oberfläche zu kennen. Für indirekte Beleuchtung und Schattenwurf hingegen wird Information über alle Objekte der Szene benötigt, die sich in irgendeiner Weise auf die Beleuchtung der aktuellen Oberfläche auswirken könnten. Zwischen all diesen Objekten kann das Licht zudem potenziell beliebig oft hin und her reflektiert werden, was die Beleuchtungsberechnung deutlich komplexer und rechenintensiver macht.

Es gibt natürlich viele clevere Ansätze, um auch mit weniger Rechenkapazität einige Aspekte komplexerer Beleuchtung umzusetzen. Einige davon, insbesondere Techniken zum Annähern von Schatten, werden in Computergrafik II thematisiert.

Zusammenfassung:

  • Beleuchtung ist ein wichtiger Bestandteil der räumlichen Wahrnehmung einer Szene.
  • Dabei vermittelt sie Informationen wie die Ausrichtung und Material von Oberflächen sowie die Position von Lichtquellen.
  • Es gibt diffuse und spekulare Beleuchtung.
  • Die Berechnung von direkter Beleuchtung und Schattierung lässt sich leichter in Echtzeit realisieren als indirekte Beleuchtung und Schattenwurf.

Physikalische Grundlagen

Für eine detailliertere Einführung in die physikalischen Grundlagen des Lichts empfehlen wir die Seite von Bartosz Ciechanowski. Für diese Einheit werden wir jedoch ein einfaches Strahlenmodell annehmen.

Wir nehmen die Welt um uns darüber wahr, wie Licht mit ihr interagiert. Wir können Objekte nur sehen, wenn sie mit Licht in Kontakt kommen und dieses entweder in Richtung Betrachter*in zurückwerfen (Reflexion), durchlassen (Transmission) oder verschlucken (Absorption). Diese Erscheinungen nehmen Einfluss darauf, wie hell oder dunkel ein Objekt wahrgenommen wird, und bewirken dadurch Schattierung und Schattenwurf. Damit bilden sie auch die Grundlage für unser Beleuchtungsmodell.

Alle Bestandteile dieses Modells sind im folgenden beispielhaft illustriert.

camera-model

Weitere Phänomene, die bei der Interaktion von Licht mit Objekten einer Szene auftreten können, sind z.B. Lichtbeugung und -brechung sowie Interferenzerscheinungen -- diese spielen jedoch in den Lichtausbreitungsmodellen der Computergrafik in der Regel eine untergeordnete Rolle. Den Hauptfaktor bildet die Reflexion.

Im Folgenden werden wir die Intuition hinter den Hauptbestandteilen des Phong-Beleuchtungsmodells erarbeiten.

Reflexion

Wie bereits erwähnt unterscheiden wir zwischen diffuser und spekularer Reflexion, die zusammen unser (sehr simples) Beleuchtungsmodell bilden. Welche physikalischen Grundlagen bzw. welche Modellannahmen stecken dahinter?

Diffuse Reflexion

Als diffuse Reflexion wird der Effekt bezeichnet, dass Flächen heller wirken, je mehr sie dem Licht zugewandt sind. Sie ist vollständig unabhängig vom Betrachtungswinkel und nur von Oberflächenausrichtung und Lichtposition bzw. Lichtrichtung abhängig.

Es steht die Modellannahme dahinter, dass das auf die Oberfläche auftreffende Licht gleichmäßig in alle Richtungen reflektiert wird. Dieses Phänomen ist stärker, je rauer die Oberfläche ist.

camera-model
Diffuse Reflexion - modelliertes Verhalten

Physikalisch lässt sich dieses Phänomen damit begründen, dass raue Flächen viele kleine Unebenheiten beinhalten. Wir können uns die Wirkung einer Lichtquelle als viele dicht nebeneinanderliegende Lichtstrahlen vorstellen. Treffen diese auf die Fläche, werden sie in praktisch zufällige Richtungen reflektiert. Durch dieses Verhalten der einzelnen Lichtstrahlen wird das Licht insgesamt annähernd gleichmäßig (isotrop) in alle verschiedenen Richtungen reflektiert.

camera-model
Reflexion an Unebenheiten in der Oberfläche

Wie viel Licht genau in Abhängigkeit vom Lichteinfallswinkel reflektiert wird, lässt sich mithilfe des Lambertschen Gesetzes berechnen. Dieses besagt, dass die reflektierte Lichtmenge, also die Lichtintensität II, proportional zum Kosinus des Winkels zwischen der Einfallsrichtung des Lichtes und der Flächennormale ist. Dafür verwenden wir die technische Lichtrichtung L~\tilde{L}, die von der Oberfläche zur Lichtquelle verläuft (statt von der Lichtquelle zur Oberfläche), um korrekt mithilfe des Skalarprodukts den eingeschlossenen Winkel berechnen zu können.

camera-model
Lambertsches Gesetz

Dieser Zusammenhang lässt sich auch aus folgender Überlegung über das Strahlenmodell herleiten. Wir können uns das Licht als ein Bündel paralleler Lichtstrahlen mit gleichem Abstand vorstellen. Je größer der Winkel der Lichtstrahlen zur Flächennormale ist, umso größer ist der Abstand, mit dem die Lichtstrahlen auf der Oberfläche aufkommen. Die gleiche Fläche wird also bei einem größeren Winkel von weniger Lichtstrahlen getroffen.

Nach links und rechts ziehen, um Winkel zu ändern

Mit dieser Intuition können wir nun auch die Abhängigkeit vom Skalarprodukt zwischen Lichtrichtung und Normale erklären:

camera-model

Je größer der Abstand dd der auftreffenden Lichtstrahlen auf der Oberfläche ist, umso schwächer ist die reflektierte Lichtintensität. Dadurch gilt

I1d. I\sim \frac{1}{d}.
Diesen Abstand dd wiederum können wir in Abhängigkeit des Winkels zwischen Oberflächennormale und (technischer) Lichtrichtung beschreiben. Dafür können wir wie in der obigen Skizze eingezeichnet die Zusammenhänge am rechtwinkligen Dreieck nutzen und erhalten
cos(α)=kd. \cos(\alpha) = \frac{k}{d}.
Dabei bezeichnet kk den konstanten kürzesten Abstand der Lichtstrahlen zueinander. Aus dieser Gleichung können wir
d=kcos(α) d = \frac{k}{\cos(\alpha)}
ableiten, wodurch wir den Zusammenhang d1cos(α)d\sim \frac{1}{\cos(\alpha)} und damit Icos(α)I\sim \cos(\alpha) erhalten. Dieser Kosinus lässt sich mithilfe des Skalarprodukts beschreiben, womit wir den gesuchten Zusammenhang
IN,L~ I\sim\langle N, \tilde{L}\rangle
erhalten.

Damit können wir also die Abhängigkeit der diffusen Reflexion von sowohl der Oberflächenbeschaffenheit als auch von der Lichtrichtung begründen.

Spekulare Reflexion

camera-model
Spekulare Reflexion -- modelliertes Verhalten

Im Gegensatz zur Diffusen Reflexion ist die Spekulare Reflexion (auch spiegelnde Reflexion oder Spiegellicht) nicht nur von der Oberflächenbeschaffenheit und Lichtrichtung, sondern auch der Blickrichtung abhängig.

Hier ist die Modellannahme, dass sich das Licht (im Gegensatz zur gleichmäßigen diffusen Reflexion) ungleichmäßig und besonders konzentriert in eine Richtung RR spiegelt. Daraus ergibt sich auch die Abhängigkeit von der Blickrichtung: Der Punkt erscheint umso heller, je ähnlicher Blick- und Spiegelrichtung sind.

Spekulare Reflexion ist stärker auf sehr glatten (z.B. polierten) Oberflächen. Die Oberflächenbeschaffenheit bestimmt dabei sowohl, wie stark die spekulare Reflexion ist, als auch wie schnell die Helligkeit mit zunehmender Abweichung zwischen Blick- und Spiegelrichtung abnimmt.

camera-model
Spekulare Reflexion

Sei α\alpha der Winkel zwischen Blick-und Reflexionsrichtung. Dann ist in dem hier betrachteten Modell die Intensität der Spekularen Reflexion proportional zu cosnαcos^n \alpha, wobei nn materialspezifisch ist.

camera-model
Berechnung der Spiegelrichtung

Die Spiegelrichtung RR liegt in einer Ebene mit L~\tilde{L} und NN. Außerdem ist der Winkel zwischen L~\tilde{L} und NN identisch zu dem Winkel zwischen NN und RR. Mit diesen Informationen können wir eine Berechnungformel für die Spiegelrichtung herleiten:

Sei PP die auf die Normale NN projizierte Lichtrichtung L~\tilde{L}. Dann entspricht der Vektor SS aus der folgenden Darstellung der Differenz aus PP und L~\tilde{L}.

S=L~+P=PL~S = -\tilde{L} + P = P - \tilde{L}

Wie auch in der Abbildung gut erkennbar ist, entspricht der Reflexionsvektor RR der Summe aus der technischen Lichtrichtung L~\tilde{L} und zwei Mal SS.

R=L~+2SR = \tilde{L} + 2\cdot S
Damit gilt
R=L~+2(PL~)=2PL~.R = \tilde{L} + 2\cdot (P-\tilde{L}) = 2\cdot P - \tilde{L}.
Der Vektor PP lässt sich wiederum durch Projektion von L~\tilde{L} auf NN bestimmen. Den Kosinus von Theta können wir dabei mit dem Skalarprodukt aus NN und L~\tilde{L} bestimmen.
P=Ncosθ=NN,L~P = N\cdot \cos \theta = N \cdot \langle N, \tilde{L}\rangle
Wir erhalten also als Formel für die Reflexionsrichtung
R=2(NN,L~)L~R = 2\cdot(N\cdot\langle N, \tilde{L}\rangle) - \tilde{L}

Implementierungsaspekte

Diese Überlegungen bilden die Theorie hinter grundlegenden Beleuchtungstechniken. Für die Implementierung sind noch weitere Aspekte zu beachten, die wir im folgenden beleuchten wollen.

Farben

Bisher war lediglich von Lichtintensitäten die Rede – doch wenn wir Objekte nicht nur in Graustufen darstellen wollen, benötigen wir eine Möglichkeit um aus Licht- und Objektfarbe sowie Intensitätsinformationen die resultierende sichtbare Farbe zu bestimmen. Klassischerweise werden die Lichtintensität, die Objektfarbe und die Lichtfarbe durch Multiplikation zur resultierenden Gesamtfarbe kombiniert.

Half Vector

Die bisherige Berechnung der spekularen Reflexion im Phong-Beleuchtungsmodell ist vergleichsweise intuitiv, da direkt der Zusammenhang zwischen dem Winkel zwischen Reflexions- und Blickrichtung klar ist. Sie besitzt jedoch zum einen den Nachteil, dass sie relativ komplexe Berechnungen benötigt - allein um den Reflexionswinkel zu bestimmen, müssen zwei Skalarprodukte berechnet werden. Zum anderen weichen die Ergebnisse teils noch von realitätsgetreuen Bildern ab.

Eine Technik, die diese Probleme adressiert, ist Blinn-Phong-Beleuchtung. Hier wird die spekulare Beleuchtung anders berechet: Statt jedes Mal den Reflexionsvektor zu bestimmen, um anschließend den Winkel zur Blickrichtung zu berechnen, wird stattdessen ein sogenannter Half-Vector HH verwendet. Dieser liegt bei der Hälfte zwischen technischer Lichtrichtung L~\tilde{L} und Blickrichtung VV und kann dementsprechend mit

H=L~+V2H = \dfrac{\tilde{L}+V}{2}
bestimmt werden. Statt für α\alpha in der Spekularitätsberechnung den Winkel zwischen dem Reflexionsvektor und der Blickrichtung zu verwenden, wird für Blinn-Phong-Beleuchtung der Winkel zwischen Half-Vector und der Oberflächennormale genutzt.

In der folgenden Demo wird visualisiert, wie für verschiedene Licht- und Blickrichtungen in beiden Varianten der entsprechende Winkel und die daraus resultierende Helligkeit aussehen.

N
R
V
=
123
°
N
V
H
=
123
°

Es ist zu erkennen, dass der Winkel bei Blinn-Phong immer halb so groß ist wie im Phong-Modell. Wer möchte, kann diesen Zusammenhang gerne für sich als Übung beweisen.

Die folgende Demo zeigt den Unterschied zwischen Phong-Beleuchtung und Blinn-Phong-Beleuchtung am Beispiel einer von drei verschiedenen Lichtquellen beleuchteten Kugel. Mit dem Slider kann zwischen Phong (links) und Blinn-Phong (rechts) gewechselt werden. Zu beachten ist, dass bei Blinn-Phong ein höherer Spekularitäts-Exponent verwendet wurde, um die Ergebnisse anzugleichen.

Ausblick

Mit diesen Überlegungen haben wir die Grundlagen des Phong-Beleuchtungsmodells hergeleitet. Dieses ist verhältnismäßig eingeschränkt und in den Ergebnissen kaum realistisch, weshalb es heutzutage auch im Real-Time-Rendering größtenteils von anderen Modellen abgelöst wurde. Viele davon basieren auf der Idee von Physically Based Rendering (PBR). Dieses hat zum Ziel, Beleuchtung basierend auf realweltlichen Oberflächeneigenschaften (z.B. metalness oder roughness) möglichst realistisch zu modellieren.

Die Ideen des Phong-Beleuchtungsmodells sind aber auch in den moderneren Ansätzen wiederzufinden -- damit bietet es einen guten Einstieg, um grundlegende Konzepte von Echtzeit-Beleuchtungsmodellen zu verstehen.