05.08.2013 Aufrufe

Beleuchtungsmodelle - Universität Ulm

Beleuchtungsmodelle - Universität Ulm

Beleuchtungsmodelle - Universität Ulm

MEHR ANZEIGEN
WENIGER ANZEIGEN

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

EINLEITUNG<br />

Dieses Skriptum soll einen Überblick über die in der Computergrafik<br />

verwendeten <strong>Beleuchtungsmodelle</strong> geben. Dabei werden<br />

zuerst grundlegende physikalische Eigenschaften des Lichts behandelt.<br />

Im folgenden werden dann die wichtigsten lokalen <strong>Beleuchtungsmodelle</strong><br />

und die dort verwendeten Schattierungsmodelle<br />

vorgestellt. Anschließend werden die beiden globalen <strong>Beleuchtungsmodelle</strong><br />

Raytracing und Radiosity erläutert und die Vor- und<br />

Nachteile der beiden Verfahren miteinander abgewogen.<br />

1. PHYSIKALISCHE GRUNDLAGEN<br />

1.1 Licht – Teilchen oder Welle ?<br />

Licht kann mit verschiedenen Frequenzen vorkommen. Dabei<br />

kann nur ein kleiner Teil des in der Natur vorkommenden Lichts<br />

vom menschlichen Auge wahrgenommen werden. Dieser Bereich<br />

bewegt sich zwischen ca. 400 nm (ultraviolett) und 800 nm (infrarot).<br />

Des weiteren hat man bis heute noch kein einzelnes Modell<br />

gefunden, welches die Eigenschaften des Lichts erklären kann. Es<br />

gibt Versuche mit Licht, deren Ergebnis nur damit erklärt werden<br />

kann, dass Licht aus Teilchen besteht, welche eine Energie von<br />

W = h ⋅ f (1)<br />

haben.<br />

Dabei ist h = 6,625*10 -34 Js das Planksche Wirkungsquantum und<br />

f die Frequenz des Lichts. Aus der Formel (1.1) ist auch zu erkennen,<br />

dass die Energie des Lichtes mit zunehmender Frequenz<br />

größer wird.<br />

Zum anderen gibt es auch Versuche wie z.B. das Doppelspaltexperiment,<br />

welches nur mit dem Modell des Lichts als Welle erklärt<br />

werden kann. Dieses Phänomen ist in der Literatur als Welle-<br />

Teilchen-Dualismus bekannt. Die Ausbreitungsgeschwindigkeit<br />

des Lichts c beträgt 3*10 8 m/s. Die Wellenlänge λ kann mittel<br />

folgender Formel in die Frequenz f des Lichts umgerechnet werden:<br />

c<br />

f = (2)<br />

λ<br />

1.2 Raumwinkel<br />

In der Ebene wird der Bogenwinkel als Verhältnis des Bogens B<br />

zum Radius R definiert. Analog dazu definiert man den Raumwinkel<br />

als Verhältnis der durch A überdeckten Fläche zum Quadrat<br />

des Kugelradius. Der Raumwinkel wird statt wie in der Ebene<br />

nicht in Grad, sondern in sr = steradiant „stereo radiant“ gemessen.<br />

<strong>Beleuchtungsmodelle</strong><br />

Ulrich Weidenbacher<br />

Medieninformatik<br />

<strong>Universität</strong> <strong>Ulm</strong><br />

Abert-Einstein-Allee 11<br />

89069 <strong>Ulm</strong><br />

uw1@informatik.uni-ulm.de<br />

Abb. 1 [1]<br />

A 2<br />

=<br />

r<br />

[ sr]<br />

Ω (3)<br />

1.3 Lichttechnische Größen<br />

Die Lichttechnischen Größten lassen sich grob in 2 Klassen unterteilen.<br />

Die raumwinkelunabhängigen Größen und die raumwinkelabhängigen<br />

Größen.<br />

Tabelle 1: Raumwinkelunabhängige Größen [1]<br />

Bezeichnung Formel Einheit<br />

Strahlungsenergie Q Joule [J]<br />

Strahlungsleistung = [ W ]<br />

Beleuchtungsstärke<br />

dQ<br />

Φ Lumen [lm]<br />

dt<br />

dΦ<br />

E = Lux [lx]<br />

dA<br />

Tabelle 2: Raumwinkelabhängige Größen [1]<br />

Bezeichnung Formel Einheit<br />

Strahlstärke<br />

Strahldichte<br />

dΦ<br />

I = Candela [cd]<br />

dΩ<br />

dΦ<br />

L =<br />

dA⋅<br />

cos<br />

( α ) ⋅dΩ<br />

Candela/m2<br />

[cd/m 2 ]


Die Strahlungsenergie beschreibt die Menge an Lichtenergie, die<br />

von einer Lichtquelle abgegeben wird. Die Strahlungsleistung<br />

bezieht sich dabei zusätzlich auf die Zeit, in der diese Lichtenergie<br />

abgegeben wurde. Die Strahlungsleistung wird in Lumen gemessen.<br />

Die Beleuchtungsstärke beschreibt, wie viel Strahlungsleistung<br />

auf eine bestimmte Fläche trifft. Dabei ist zu beachten,<br />

dass die Beleuchtungsstärke mit dem Quadrat der Entfernung zur<br />

Strahlungsquelle abnimmt (photometrisches Entfernungsgesetzt).<br />

Die Raumwinkelabhängigen Größen haben dagegen die Eigen-<br />

schaft, dass sie nicht abhängig von der Entfernung zur Lichtquelle<br />

sind. Die Strahlstärke gibt an wieviel Lumen pro Steradiant abgestrahlt<br />

werden. Sie wird in Candela gemessen. Candela kommt aus<br />

dem lateinischen und bedeutet Kerze. Die Flamme einer Kerze<br />

strahlt genau ein Candela in alle Richtungen ab. Diese Größe ist<br />

nur sinnvoll für punktförmige Lichtquellen. Die Strahldichte gibt<br />

den Beitrag des Flächenelements dA einer Lichtquelle unter dem<br />

Winkel α zur Strahlungsstärke I an. Mit der Strahldichte kann<br />

man z.B. angeben wieviel Licht von einer leuchtenden Kugeloberfläche<br />

auf das Auge des Betrachters fällt. Diese Größe wird später<br />

beim Radiosityverfahren wichtig.<br />

Tabelle 3: Strahldichten [2]<br />

Straßenbeleuchtung 2 cd/m 2<br />

Weißes Papier (400 Lux) 100 cd/m 2<br />

Mond 2500 cd/m 2<br />

Leuchtstofflampe 8000 cd/m 2<br />

Glühfaden 7 Mio cd/m 2<br />

Sonne 1650 Mio cd/m 2<br />

1.4 BRDF: Bidirectional Reflectance<br />

distribution Function<br />

Die BRDF wurde 1977 amtlich definiert vom National Bureau of<br />

Standards (USA) zur Vereinheitlichung von Reflexionsdarstellungen<br />

und –berechnungen. Sie beschreibt das Verhältnis<br />

aus der differenziellen Strahlungsdichte dL1 in<br />

Betrachtungsrichtung und der differentiellen Bestrahlungsstärke<br />

dE2, die aus der Beleuchtungsrichtung auf die Oberfläche wirkt.<br />

dL1<br />

( Θ2<br />

, Φ 2;<br />

Θ1,<br />

Φ1)<br />

( Θ2<br />

, Φ 2;<br />

Θ1,<br />

Φ1)<br />

=<br />

dE ( Θ , Φ )<br />

ρ (4)<br />

2<br />

2<br />

2<br />

Abb. 2: Geometrie der BRDF [1]<br />

Aus der BRDF sind mehrere für das Verständnis der <strong>Beleuchtungsmodelle</strong><br />

wichtige Eigenschaften abzuleiten. Zum einen ändert<br />

sich f nicht, wenn man Einfallswinkel und Ausfallswinkel<br />

Vertauscht (Reziprozität). Diesen Effekt macht man sich vor allem<br />

beim Raytracing zunutze. Zum anderen stellt man fest, dass<br />

sich zwei Lichtstrahlen, die im selben Punkt auf ein Material treffen,<br />

nicht stören. Des weiteren kann man drei weitere Begriffe im<br />

Zusammenhang mit der BRDF einführen. Bei anisotropen Materialien<br />

ändert sich f auch, wenn man das Material um seine Normale<br />

rotiert. Bei isotropen Materialien ist dies nicht der Fall. Falls<br />

einfallendes Licht in jede Richtung gleich stark reflektiert wird,<br />

nennt man das Material einen Lambert-Reflektierer.<br />

1.5 Lichtquellen<br />

Man unterscheidet grob vier verschiedene Arten von Lichtquellen.<br />

Die Simulation solcher Lichtquellen in der Computergrafik ist<br />

unterschiedlich komplex. Folgende Aufzählung ist nach<br />

aufsteigender Komplexität geordnet:<br />

1.5.1 Umgebungslicht (ambient light)<br />

Umgebungslicht ist im Gegensatz zu den anderen hier<br />

beschriebenen Lichtquellen eine indirekte Lichtquelle. D.h. das<br />

Licht hat keine Richtung, sondern es kommt aus allen Richtungen.<br />

Dieses Licht entsteht durch Reflexion des Lichts einer anderen<br />

Lichtquelle an matten Oberflächen und bewirkt eine gewisse<br />

Grundhelligkeit in Bereichen, die nicht direkt von anderen<br />

Lichtquellen beleuchtet werden.<br />

1.5.2 Entfernte Lichtquellen (distant lights)<br />

Entfernte Lichtquellen sind auch Punktlichtquellen, welche sich<br />

aber so weit vom Objekt entfernt befinden, das ihre Lichtstrahlen<br />

quasi parallel beim Objekt eintreffen. Ein Beispiel hierfür wäre<br />

das Sonnenlicht, welches die Erde beleuchtet.<br />

1.5.3 Punktlichtquellen (point lights)<br />

Punktlichtquellen zeichnen sich dadurch aus, dass die Lichtquelle<br />

selber relativ klein im Vergleich zum Objekt ist. Ein Beispiel<br />

hierfür wäre eine Glühlampe ohne Begrenzung des Lichtkegels.<br />

1.5.4 Spotlichter (spot lights)<br />

Eine Spotlichtquelle emitiert Licht nur in einem begrenzten Kegel<br />

mit abnehmender Intensität im Verhältnis zu den Rändern hin.


2. LOKALE BELEUCHTUNGMODELLE<br />

2.1 Strategien<br />

Um die im letzten Abschnitt genannten Lichtquellen in der<br />

Computergrafik zu modellieren gibt es nun verschiedene Ansätze.<br />

Umgebungslicht ist eine relativ einfach nachzubildende<br />

Lichtquelle, da hier nur die innewohnende Farbe des Objektes für<br />

jeden Punkt mit der Stärke des Umgebungslichts multipliziert<br />

wird.<br />

Entfernte Lichtquellen sind ebenfalls noch relativ leicht<br />

umzusetzen, da ihr Licht ja parallel einfällt und somit der Winkel<br />

zwischen Objektnormale und einfallendem Lichtstrahl nur durch<br />

die Objektnormale bestimmt wird und nicht durch die Position<br />

des Objekts. Ist also für ein Objekt die Beleuchtung berechnet, so<br />

kann die Beleuchtung für gleiche Objekte, die sich an einem<br />

anderen Ort im Raum befinden übernommen werden. Um<br />

Schattenbildung zu vermeiden, wird die Lichtquelle in diesem<br />

Fall immer genau in den Blickpunkt gesetzt. Dies bezeichnet man<br />

als „head light“. Da die Beleuchtungsstärke quadratisch mit der<br />

Entfernung abnimmt, simuliert man dies durch eine<br />

Abschwächung der Intensität des Objektes. Dieses Verfahren wird<br />

als „depth cueing“ bezeichnet.<br />

Um Punktlichtquellen nachbilden zu können muss ein etwas<br />

komplexeres Modell entwickelt werden. Die im nächsten Kapitel<br />

besprochenen lokalen <strong>Beleuchtungsmodelle</strong> sind in der Lage, eine<br />

solche Lichtquelle nachzubilden.<br />

Spotlichter erfordern einen höheren Aufwand um mit lokalen<br />

<strong>Beleuchtungsmodelle</strong>n nachgebildet zu werden. Globale<br />

<strong>Beleuchtungsmodelle</strong> wie Raytracing und Radiosity sind<br />

letztendlich in der Lage jede erdenkliche Lichtquellenart<br />

nachzubilden.<br />

2.2 Eigenschaften<br />

Da eine exakte Nachbildung der Beleuchtung wie sie in der Natur<br />

vorkommt leider zu rechenaufwendig für die CPU ist, hat man<br />

verschiedene Modelle entwickelt, die zum einen ein relativ<br />

realistisches Ergebnis liefern und zum anderen wenig<br />

Rechenleistung in Anspruch nehmen. Die stärkste Einschränkung<br />

macht man dadurch, dass man nur den Einfluss emittierender<br />

Lichtquellen in die Szene mit einbezieht. Es werden also Objekte,<br />

die Licht reflektieren nicht als eigene Lichtquellen behandelt, was<br />

man bei genauer Einhaltung der physikalischen Gesetze eigentlich<br />

tun müsste. Bei den globalen <strong>Beleuchtungsmodelle</strong>n (Kapitel 3)<br />

hingegen wird dies jedoch durchaus berücksichtigt. Des weiteren<br />

werden auch keine Schatten berücksichtig, indem man ein „head<br />

light“ verwendet. Die lokalen <strong>Beleuchtungsmodelle</strong> sind darauf<br />

abgestimmt, das sie in Echtzeit berechnet werden können und<br />

finden hauptsächlich in 3D Computerspielen ihre Anwendung.<br />

2.3 Ambiente Beleuchtung<br />

Ambiente Beleuchtung ist das einfachste Beleuchtungsmodell, das<br />

man sich vorstellen kann, da hier nur von einer indirekten Lichtquelle<br />

ausgegangen wird. Indirektes Licht kommt aus allen Richtungen,<br />

d.h. man musst die Richtung des einfallenden Lichtes<br />

nicht berechnen, sondern nimmt an, dass das Licht an jedem<br />

Punkt eines Objektes mit gleicher Intensität eintrifft. Man bezeichnet<br />

die Intensität des ambienten Lichtes mit I a. Da jedes Objekt<br />

verschieden stark reflektieren kann, wird jedem Objekt eine<br />

Konstante k a zugewiesen. Jetzt können wir eine sog. Beleuch-<br />

tungsgleichung für das Modell der ambienten Beleuchtung aufstellen:<br />

I I ⋅<br />

= (5)<br />

a a k<br />

Abb. 3: ambiente Beleuchtung [3]<br />

In Abb. 3 ist zu sehen, dass dieses Beleuchtungsmodell noch kein<br />

besonders realistisches Ergebnis liefert. Deshalb erweitern wir<br />

nun das Modell um eine weitere Komponente.<br />

2.4 Diffuse Reflexion<br />

Das Modell der diffusen Reflexion setzt nun statt einer indirekten<br />

Lichtquelle eine Punktförmige Lichtquelle voraus. Somit<br />

verändert sich die Helligkeit jedes Punktes des Objekts je nach<br />

Entfernung und Richtung zur Lichtquelle. Da bei diesem Modell<br />

alle Flächen als diffuse Lambert-Reflektierer angenommen sind,<br />

werde die eintreffenden Lichtstrahlen in alle Richtung gleichstark<br />

reflektiert. Das bedeutet, dass die Reflexion unabhängig vom<br />

Beobachtungspunkt ist, jedoch abhängig vom Winkel θ zwischen<br />

der Flächennormal und dem einfallenden Lichtstrahl.<br />

Abb. 4: Lambert-Reflektor [5]


Da ein unter dem Winkel θ zur Normale einfallender Lichtstrahl<br />

eine um den Faktor 1/cosθ größere differenzielle Fläche trifft als<br />

ein parallel zur Normale einfallender Lichtstrahl, nimmt die<br />

Lichtintensität der beleuchteten Fläche entsprechend um dem<br />

Faktor cosθ ab (Siehe Abb.5).<br />

Abb. 5: Lambertsches Kosinus Gesetz [3]<br />

Die Beleuchtungsgleichung zu diesem Modell lautet:<br />

⋅ ⋅cosθ<br />

I I (6)<br />

= p d k<br />

I p ist dabei die Intensität der Punktförmigen Lichtquelle, k d ist der<br />

diffuse Reflexionskoeffizient. Er hängt vom Material ab und muss<br />

zwischen 0 und 1 liegen. Wenn man davon ausgeht, dass die<br />

Vektoren N und L (Siehe Abb.4) normalisiert sind, so lässt sich<br />

cosθ leicht als Skalarprodukt von N und L berechnen. Damit lässt<br />

sich Formel (6) umschreiben in<br />

I p d<br />

= I ⋅ k ⋅(<br />

N ⋅ L)<br />

(7)<br />

Wendet man dieses Beleuchtungsmodell an, so stellt man fest,<br />

dass Bereiche, die nur sehr schwach von Lichtstrahlen getroffen<br />

werden fast schwarz erscheinen. Da diese Bereiche aber in<br />

Wirklichkeit durch indirektes Licht immer eine gewisse<br />

Grundhelligkeit besitzen, kombiniert man die beiden Modelle<br />

miteinander, indem man den ambienten und den diffusen Anteil<br />

zusammenaddiert:<br />

I a a p d<br />

= I ⋅k<br />

+ I ⋅k<br />

⋅(<br />

N ⋅ L)<br />

(8)<br />

Um dem Modell noch mehr Tiefeneindruck zu verschaffen, fügt<br />

man noch eine weitere Funktion hinzu:<br />

I a a<br />

p d<br />

= I ⋅k<br />

+ f ( d)<br />

⋅ I ⋅k<br />

⋅(<br />

N ⋅ L)<br />

(8)<br />

Wie schon in Kapitel 1 besprochen nimmt die Intensität einer<br />

beleuchteten Fläche mit dem Abstand zur Lichtquelle quadratisch<br />

ab. Deshalb verwende man häufig folgende Funktion:<br />

1<br />

f ( d)<br />

= (9)<br />

2<br />

r<br />

Abb. 6: Diffuse Reflektion [3]<br />

2.5 Spiegelnde Reflexion<br />

Die meisten Materialien sind, wie beim diffusen Modell<br />

angenommen, keine perfekten Lambert-Reflektoren. Dieses<br />

bedeutet, dass Licht eben nicht gleichmäßig in alle Richtungen<br />

reflektiert wird. Es gibt bestimmte Einfallswinkel, bei denen das<br />

reflektierte Licht nicht mehr nach allen Richtungen gestreut wird,<br />

sondern nur noch in einem bestimmten Bereich reflektiert wird<br />

(Abb. 9). Im Extremfall wird das Licht nur noch in eine Richtung<br />

reflektiert. Dieser Effekt kann bei einem Spiegel beobachtet<br />

werden (Abb. 8).<br />

Abb. 7+8: Diffuse und optimal spiegelnde Reflexion [6]<br />

Abb. 9: nicht optimal spiegelnde Reflexion [6]<br />

Abb.10: Kombination aus diffuser und nicht optimal<br />

spiegelnder Reflexion [6]


Viele Materialien reflektieren Licht nicht nur direkt an der<br />

Oberfläche, sonder auch noch in einer zweiten Schicht darunter.<br />

Die oberste Schicht verhält sich bei glänzendem Material wie ein<br />

nichtoptimaler Spiegeln. Die Schicht darunter verhält sich wie ein<br />

Lambert-Reflektor. Es liegt also nahe, die Modelle diffuse<br />

Reflexion und spiegelnde Reflexion zu kombinieren (Abb. 10).<br />

Zuerst müssen wir aber noch eine Möglichkeit finden, die<br />

spiegelnde Reflexion mathematisch umzusetzen. Phong Bui-<br />

Tuong ging davon aus, dass die Reflektion maximal wird, falls der<br />

Einfallswinkel gleich dem Ausfallswinkel ist. Weicht der<br />

Ausfallswinkel θ um den Winkel ψ ab, so nimmt die Reflektion<br />

rapide ab. Der Term cos α ψ approximiert laut Phong dieses<br />

Verhalten sehr gut. Dabei bestimmt α die stärke der Abnahme bei<br />

steigendem ψ (siehe Abb 11 und 12).<br />

Abb. 11: [5]<br />

Abb. 12 [5]<br />

Des weiteren benötigt man noch eine weitere Funktion ω(θ,λ),<br />

welche als Spiegelreflexionskoeffizient bezeichnet wird. Diese<br />

Funktion hängt vom Material ab und bestimmt die Stärke der<br />

Spiegelung in Abhängigkeit vom Einfallswinkel θ und der<br />

Wellenlänge λ des Lichts. Somit lässt sich nun folgende Formel<br />

aufstellen:<br />

α<br />

I I ⋅ω(<br />

θ , λ)<br />

⋅cos<br />

( ψ ) (10)<br />

S<br />

= L<br />

Wenn wird nun nach unserer o.g. Überlegung diffuse Reflexion<br />

und spiegelnde Reflexion noch kombinieren kommen wir zu<br />

folgendem Ergebnis:<br />

α<br />

[ k cosθ<br />

k cos ψ ]<br />

I ka<br />

I a + f ( d)<br />

I L d + s<br />

= (11)<br />

Den Spiegelreflexionskoeffizient ω(θ,λ) nimmt man als konstant<br />

k s an und legt ihn experimentell so fest, dass ästhetisch<br />

ansprechende Resultate entstehen.<br />

2.6 Schattierungsmodelle<br />

Wir haben nun eine Formel, mit der wir die Beleuchtung an einem<br />

Punkt des Objektes relativ gut approximieren können. Leider ist<br />

es zu rechenaufwendig für echtzeitgenerierte Bilder, die Normale<br />

an jedem Punkt zu bestimmen und dort das Beleuchtungsmodell<br />

anzuwenden. Stattdessen verwendet man Polygongitter und<br />

interpoliert die Beleuchtung zwischen den einzelnen Eckpunkten<br />

entsprechend. Dabei gibt es mehrere Verfahren, die ich nun im<br />

folgenden darstellen werde.<br />

2.7 Konstante Schattierung<br />

Das einfachste und schnellste Schattierungsmodell ist die<br />

konstante Schattierung. Hier bestimmt man die Normale des<br />

jeweiligen Polygons einmal, berechnet damit das<br />

Beleuchtungsmodell und färbt dann das komplette Polygon in der<br />

berechneten Intensität ein. Wie man sich leicht vorstellen kann,<br />

hat diese Methode auch einen gravierenden Nachteil: zwischen<br />

den einzelnen Polygonkanten gibt es starke Intensitätssprünge,<br />

welche vor allem bei einer kleinen Zahl von Polygonen sehr<br />

störend auf den Betrachter wirken.<br />

Abb. 13: konstante Schattierung [4]<br />

2.8 Gouraud-Schattierung<br />

Die starken Sprünge an den Kanten versucht man nun zu<br />

eliminieren, indem man zuerst aus den Flächennormalen neue<br />

Normalen berechnet, die genau an den Kreuzungspunkten der<br />

Polygone sitzen. Dazu summiert man einfach die Normalen der an<br />

den Kreuzungspunkt angrenzenden Polygone auf und Teilt durch<br />

ihre Anzahl (vorrausgesetzt, dass die Normalen normiert sind).


Abb. 14: Mittelung der normalisierten Polygonnormalen [5]<br />

E<br />

n<br />

+ n<br />

+ n<br />

4<br />

+ n<br />

a b c d<br />

= (12)<br />

Im nächsten Schritt berechnet man das <strong>Beleuchtungsmodelle</strong> mit<br />

den so gewonnenen Normalen und interpoliert die Intensität<br />

zunächst entlang der Kanten und dann zwischen den Kanten<br />

entlang jeder Rasterzeile (Abb. 15). Mit diesem Modell lassen<br />

sich schon wesentlich realistischere Ergebnis erzielen als mit<br />

konstanter Schattierung.<br />

Abb. 15: Gouraud-Schattierung [4]<br />

2.9 Phong-Schattierung<br />

Das folgende Phong Schattierungsmodell darf nicht mit dem<br />

Phong Beleuchtungsmodell verwechselt werden, es handelt sich<br />

hierbei um zwei komplett verschiedene Modelle.<br />

Der Unterschied zur Gouraud-Schattierung besteht hauptsächlich<br />

darin, dass nicht die Intensität zwischen den Normalen interpoliert<br />

wird, sonder die Normalen selber werden interpoliert.<br />

Anschließend wird für jede interpolierte Normale das<br />

Beleuchtungsmodell separat berechnet. Dies erfordert natürlich<br />

einen wesentlich höheren Rechenaufwand, liefert dafür aber auch<br />

bessere Ergebnisse als Gouraud.<br />

Abb.16: Phong-Schattierung [4]<br />

2.10 Vergleich Gouraud und Phong<br />

Die Unterschiede zwischen Phong und Gouraud machen sich vor<br />

allem beim Glanzpunkt bemerkbar. Fällt ein Glanzpunkt direkt in<br />

die Mitte eines Polygons, so wird er vom Gouraud Modell unterdrückt,<br />

da an dieser Stelle ja nur eine Interpolation der Randintensitäten<br />

stattfindet (Abb. 17C). Fällt ein Glanzpunkt direkt auf ein<br />

Polygoneck, so kommt bei Gouraud durch Interpolation zu einem<br />

Verschmiereffekt (Abb. 17A).<br />

Abb. 17: Vergleich Gouraud vs. Phong Schattierung [3]<br />

A: Gouraud B: Phong C: Gouraud D: Phong<br />

3. GLOBALE BELEUCHTUNGSMODELLE<br />

3.1 Eigenschaften<br />

Globale <strong>Beleuchtungsmodelle</strong> wie Raytracing und Radiosity<br />

berücksichtigen nicht nur emittierende Lichtquellen, sonder<br />

beziehen auch reflektiertes und transmittiertes Licht mit in ihre<br />

Berechnungen ein. Dadurch lassen sich qualitativ wesentlich<br />

bessere Ergebnisse erzielen als mit lokalen<br />

<strong>Beleuchtungsmodelle</strong>n. Jedoch wie schon erwähnt steigt der<br />

Rechenaufwand dadurch auch beträchtlich an. Dies hat zur Folge,<br />

dass ein einzelnes Bild bei entsprechender Größe und<br />

Komplexität schon mehrere Stunden Rechnzeit benötigt.<br />

3.2 Raytracing<br />

Die Grundidee des Raytracing beruht darauf, einen Lichtstrahl<br />

von der Lichtquelle aus bis zur Kamera bzw. zum Auge zu<br />

verfolgen. Dabei kann er auf seinem weg reflektiert, gebrochen<br />

und transmittiert werden (Abb. 18). Für diffuse Reflektionen ist<br />

Raytracing daher nicht geeignet, da in diesem Fall ein<br />

eintreffender Lichtstrahl in alle (also unendlich viele) Richtungen<br />

reflektiert wird und es dann nicht mehr möglich ist die Strahlen<br />

weiterzuverfolgen. Raytracing basiert also nur auf idealer<br />

Spiegelung, Brechung und Transmission.<br />

Abb. 18: Weg eines Lichtstrahls<br />

Da ein sehr großer Teil des Lichtes gar nicht im Auge ankommt<br />

kann man den Rechenaufwand etwas einschränken. Dabei nutzt<br />

man die Reziprozität (Kapitel 1.4) des Lichtes aus, welche einem<br />

erlaubt, die Richtung des Lichtstrahls umzukehren. Man verfolgt


also nicht mehr das Licht von der Quelle bis zum Auge, sondern<br />

man sendet vom Auge aus Lichtstrahlen durch jeden Pixel des<br />

Bildschirms in die Szene und verfolgt sie so lange, bis sie entweder<br />

kein Objekt mehr schneiden, oder die zurückgelegte Strecke<br />

eine gewisse Grenze erreicht. Diese Maßnahme hat allerdings zur<br />

Folge, dass Raytracing ein blickpunktabhängiges Verfahren ist,<br />

was bedeutet, dass bei einem Wechsel des Blickpunktes eine<br />

komplette Neuberechnung der Szene notwendig wird. Zur Berechnung<br />

der Schatten werden sog. Schattenstrahlen jeweils vom<br />

Schnittpunkt des Objekt mit dem Lichtstrahl zur Lichtquelle geschickt.<br />

Schneiden diese Strahlen auf ihrem Weg ein Objekt, so<br />

liegt der Ausgangspunkt im Schatten. Falls der Punkt nicht im<br />

Schatten liegt, wird an dieser Stelle das lokale Beleuchtungsmodell<br />

nach Phong (siehe Formel 11) mit einer Erweiterung um den<br />

Transmissions- und den Reflexionsanteil (I t und I r) berechnet.<br />

I = k I + k I cos θ + k I + k I (13)<br />

a<br />

a<br />

d<br />

L<br />

Dann werden die Vektoren für Reflektion und Brechung ermittelt<br />

und es werden in diese Richtungen neue Lichtstrahlen ausgesendet.<br />

Falls diese Lichtstrahlen wieder Objekte schneiden, beginnt<br />

der Prozess von neuem. Ist die Verfolgung eines Lichtstrahls<br />

komplett abgeschlossen, werden die durch das lokale Beleuchtungsmodell<br />

berechneten Intensitäten entsprechend gewichtet<br />

addiert und ergeben so die Gesamtintensität des Bildpunktes.<br />

Abb. 20: Umkehrung der Strahlen<br />

Abb. 21: Abtastung des Bildschirms und Verlauf<br />

Schattenstrahlen (schwarze Pfeile)<br />

Lichtquelle<br />

Dieses Verfahren lässt sich elegant mit einem rekursiven<br />

Algorithmus umsetzen:<br />

t<br />

t<br />

r<br />

r<br />

Pseudocode eines Raytracing Programms<br />

Für jede Zeile des Bildes<br />

Für jeden Pixel der Zeile<br />

Bestimme Strahl vom Auge zum Pixel<br />

Pixelfarbe = Raytrace(Strahl)<br />

Raytrace(Strahl)<br />

Für alle Objekte der Szene<br />

Wenn Strahl Objekt schneidet und Schnittpunkt ist<br />

bisher am nächsten<br />

notiere Schnitt<br />

Wenn kein Schnitt dann Ergebnis := Hintergrundfarbe<br />

sonst<br />

Ergebnis := Raytrace(reflektierten Strahl) +<br />

Raytrace(gebrochenem Strahl)<br />

Für alle Lichtquellen<br />

Für alle Objekte der Szene<br />

Wenn Strahl zur Lichtquelle Objekt schneidet<br />

Schleifenabbruch, nächste Lichtquelle<br />

Wenn kein Schnitt gefunden<br />

Ergebnis += lokale Beleuchtung<br />

Der Algorithmus bricht ab, falls eine gewisse Rekursionstiefe<br />

erreicht ist oder falls der Strahl kein reflektierendes bzw.<br />

transmitierendes Objekt mehr schneidet (meistens der<br />

Hintergrund).<br />

Abb. 22: Mit Raytracing erstellte Szene [3]<br />

3.3 Radiosity<br />

3.3.1 Grundidee<br />

Die Grundidee des Radiosity Modells beruht auf der Erhaltung<br />

der Lichtenergie in einer geschlossenen Szene. Dazu wird die


Szene in viele kleine Flächen zerlegt. Jede dieser Flächen kann<br />

nun Licht emittieren und Licht reflektieren.[3] Wenn wir nun jede<br />

dieser Flächen als opaken, diffusen Lambertschen Strahler betrachten,<br />

gilt für die Fläche i<br />

B = E +<br />

i<br />

i<br />

A<br />

n<br />

j<br />

i∑<br />

B j Fji<br />

j= 1 Ai<br />

ρ . (14)<br />

Bi bzw. Bj bezeichnen dabei die Strahlung der Flächenelemente i<br />

und j. Ei ist die Rate, mit der Fläche i Licht abstrahlt, ρi ist der<br />

Reflexionskoeffizient der Fläche i. Der Formfaktor Fji bezieht sich<br />

auf die gegenseitige Orientierung der beiden Flächen im Raum<br />

und berücksichtigt dabei auch eventuelle vorhandene<br />

Blockierungen durch andere Objekte.<br />

Da diese Gleichung für alle Flächenelemente gelöst werden muss,<br />

führt sie uns auf ein LGS, welches mittels dem Gauß-Seidel-<br />

Verfahren gelöst werden muss. Die Lösung gibt dann die<br />

Strahlungsintensität oder Radiosity jeder Fläche an, bei der ein<br />

Energiegleichgewicht in der Szene herrscht. Um eine glatte<br />

Schattierung der Flächen zu erreichen kann man aus den<br />

Intensitäten der Flächen Intensitäten für die Knoten berechnen<br />

und dann dazwischen ähnlich dem Schattierungsmodell von<br />

Gouraud interpolieren.<br />

Abb. 23: Aufteilung der Szene in Flächen [4]<br />

3.3.2 Berechnung der Formfaktoren<br />

Wie schon angesprochen beschreibt der Formfaktor die<br />

gegenseitige Orientierung zweier Flächenelemente zueinander.<br />

Auf die theoretische Herleitung möchte ich in diesem Kontext<br />

verzichten, sie kann in [3] nachgeschlagen werden. Nusselt<br />

entwickelte ein Verfahren zur Bestimmung der Formfaktoren,<br />

welche die gleichen Ergebnisse liefert wie das theoretische<br />

Modell, jedoch unter der Annahme, dass der Mittelpunkt eines<br />

Flächenelements die anderen Punkte charakterisiert.<br />

Abb. 23: Formfaktorbestimmung analytisch und numerisch<br />

K<br />

P<br />

Dazu projiziert man Aj auf eine Halbkugel mit Radius eins um den<br />

Mittelpunkt von Ai. Anschließend projiziert man diese Fläche<br />

orthogonal auf die Kreisfläche K. Der Formfaktor ergibt sich dann<br />

aus dem Quotienten von P und der Grundfläche K, welche in<br />

diesem Fall π wäre.<br />

Ein numerisches Verfahren zur Bestimmung des Formfaktors<br />

liefern Coen und Greenberg, indem sie statt der Halbkugel einen<br />

Halbwürfel „Hemicube“ um die Grundfläche Ai legen. Aj wird<br />

dann auf den Halbwürfel projiziert, welcher in einzelne Quadrate<br />

aufgeteilt ist. Die Anzahl der geschnittenen Quadrate im<br />

Verhältnis zur Anzahl der Quadrate auf der Grundfläche bestimmt<br />

dann den Formfaktor.<br />

Das Radiosity Verfahren hat einen entscheidenden Vorteil<br />

gegenüber dem Raytracing Verfahren: es ist<br />

blickpunktunabhängig, was bedeutet, dass eine Szene, die einmal<br />

mit Radiosity berechnet wurde ohne großen Aufwand aus<br />

verschiedenen Blickwinkeln dargestellt werden kann. Jedoch hat<br />

Radiosity den Nachteil, dass nur diffuse Reflexionen<br />

berücksichtigt werden und somit der spiegelnde Anteil fehlt. Eine<br />

Kombination aus Raytracing und Radiosity vereinigt die Vorteile<br />

beider Verfahren zu einem optimalen Ergebnis.<br />

3.3.3 Schrittweise Verfeinerung<br />

Das bisher besprochene Verfahren zur Berechnung des<br />

Energiegleichgewichts einer Szene hat jedoch noch einen<br />

weiteren praktischen Nachteil: es ist nicht möglich inkrementelle<br />

Zwischenlösungen zu berechnen, sonder man muss am Anfang<br />

zuerst alle Formfaktoren bestimmen, und anschließend das LGS<br />

per Gauß-Seidel lösen, welches sich aus Formel 14 ergibt.<br />

Wünschenswert wären jedoch Zwischenergebnisse, welche man<br />

sukzessive verbessern kann. Dazu gibt es folgende Idee: statt wie<br />

beim herkömmlichen Weg von einer Fläche die Summe des<br />

abgestrahlten Lichtes der anderen Flächen „einzusammeln“ kehrt<br />

man die Richtung um und „verteilt“ sozusagen das Licht von<br />

einer Fläche aus an alle anderen Flächen. Zusätzlich wird das<br />

Licht noch in kleine Pakete ∆B unterteilt, welche dann<br />

„häppchenweise“ an die umliegenden Flächen verteilt werden.<br />

Dies hat den Vorteil, dass im ersten Schritt nur die Lichtquelle<br />

selber Licht austeilt und somit nur die Formfaktoren für einen<br />

Halbwürfel berechnet werden müssen. Das Vorgehen lässt sich<br />

durch folgenden Algorithmus beschreiben:<br />

Programm 2:Pseudecode des inkrementellen Radiosity<br />

Verfahrens [3]<br />

Berechne Fij für jedes Flächenelement j<br />

Für (jedes Flächenelement j)<br />

∆Bi=0;<br />

∆Radiosity=ρi ∆BiFijAi/Aj;<br />

∆Bj= ∆Bj +∆Radiosity;<br />

Bj= Bj+ ∆Radiosity;


Im ersten Schritt leuchten in einer Szene also nur die Lichtquellen<br />

und der Rest ist schwarz. Nach den ersten Iterationen wird die<br />

Szene in Bereichen, wo das Licht nicht direkt eintrifft immer noch<br />

sehr dunkel bleiben, deshalb setzt man am Anfang einen<br />

zusätzlichen ambienten Term ein, welcher die dunklen Regionen<br />

etwas aufhellt, damit die Bilder realistischer werden. Mit<br />

steigender Zahl der Iterationen wird der ambiente Term kleiner<br />

und verschwindet schließlich ganz [3].<br />

Abb. 24: Schrittweise Verfeinerung mit Radiosity [3]<br />

4. ZUSAMMENFASSUNG<br />

Wir haben nun einige <strong>Beleuchtungsmodelle</strong> kennen gelernt, welche<br />

schrittweise zu immer komplexeren Berechnungen geführt<br />

haben. Welches Modell nun im einzelnen zum Einsatz kommt ist<br />

von Fall zu Fall abzuwägen. Bei sich verändernder Szenerie<br />

kommen zumindest mit herkömmlichen Rechnern momentan nur<br />

lokale <strong>Beleuchtungsmodelle</strong> in Betracht. Dort gibt es noch einige<br />

Erweiterungen, welche im Text nicht angesprochen wurden, wie<br />

z.B. Transparenzeffekte, echte Spiegelungen und Schatten. Diese<br />

Erweiterungen machen es möglich auch mit lokalen <strong>Beleuchtungsmodelle</strong>n<br />

sehr nahe an eine photorealistische Darstellung<br />

einer bewegten Szene heranzukommen. Anwendungsschwerpunkte<br />

sind hier sicherlich Computerspiele. Globale <strong>Beleuchtungsmodelle</strong><br />

finden ihre Anwendung eher in CAD Anwendungen und in<br />

der Architektur, da dort nur einzelne unbewegte Bilder generiert<br />

werden. Mit der Radiosity Methode wäre sogar ein virtueller Flug<br />

durch ein Gebäude realisierbar.<br />

5. REFERENCES<br />

[1] Foley James D., Grundlagen der Computergrafik<br />

[2] Domik G., <strong>Universität</strong> Paderborn, Skript Computergrafik<br />

[3] Godbersen, TFH Berlin, Skript Lokale <strong>Beleuchtungsmodelle</strong><br />

[4] Rothermel A., Skript Fernsehtechnik WS 2001/2002, <strong>Universität</strong><br />

<strong>Ulm</strong>, Abteilung Elektrotechnik und Mikroelektronik<br />

[5] Brill, M., FH Kl, <strong>Beleuchtungsmodelle</strong><br />

[6] S. Schäffner, D. Fellner, TU Braunschweig, Radiosity<br />

[7] http://www.gris.uni-tuebigen.de/gris/grdev/java/doc/ht<br />

ml/etc/AppletIndex.html<br />

[8] http://olli.informatik.uni-oldenburg.de/ilight/theorie.html<br />

[9] http://fuzzyphoton.tripod.com/whatisrt.htm<br />

[10] http://www.uni-giessen.de/~gc1087/schoenh/raytraci/fr<br />

ame1.html<br />

[11] http://www.irtc.org/<br />

[12] http://www.cs.wpi.edu/~matt/courses/cs563/talks/radio<br />

sity.html<br />

[13] http://www.siggraph.org/

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!