DOC - TUM

Werbung
Lighting
Beleuchtung, Reflexion und
Transparenz
Ziel der Grafikprogrammierung ist die fotorealistische Grafik, d.h. die Erzeugung
möglichst wirklichkeitsgetreuer Bilder. Dabei müssen viele physikalische
Gesetzmäßigkeiten der Lichtausbreitung nachgebildet werden, was zum Teil zu
hoher Rechenzeit führt. Ein Ansatz für echtzeitfähige Grafik - bei noch guter
Wirkung - ist die lokale Beleuchtung. Im folgenden setzen wir uns mit den
physikalischen Grundlagen von Licht, ambientem Licht, Licht das idealisiert von
einer oder mehreren punktförmigen Lichtquellen ausgeht, der Reflexion von Licht
und dem Durchgang von Licht durch transparente Objekte auseinander und
schneiden zum Abschluss noch kurz die beiden „großen“ Verfahren der globalen
Beleuchtung an.
Physikalische Grundlagen des Lichts
Licht ist der Teil der elektromagnetischen Strahlung der vom menschlichen Auge
wahrgenommen werden kann. Dies sind die elektromagnetischen Wellen im Bereich
von etwa 380-780 Nanometer (nm) Wellenlänge.
Die Farbwirkung entsteht durch die Absorption einzelner Wellenlängen durch z.B.
einen Gegenstand. Erscheint dieser Gegenstand rot, so absorbiert er alle Wellen im
Wellenlängenbereich von grün und blau und es entsteht der rote Farbeindruck für
das menschliche Auge.
Lichtquellen
Es existieren verschiedene Lichtquellen, deren Eigenarten beachtet werden müssen.





Ambiente Lichtquellen, deren Ursprung und Richtung nicht definiert ist und die
einen gleichmäßigen Lichteinfall von allen Seiten zufolge haben.
Gerichtete Lichtquellen, die eine definierte Richtung, parallele Lichtstrahlen
und konstante Einfallswinkel haben
Punktlichtquellen, die ihr Licht gleichmäßig in alle Richtungen emittieren und
deren Lichtintensität auch entfernungsabhängig sein kann.
Spotlichtquellen (erweiterte Punktlichtquellen), deren Lichtemission nur
innerhalb eines Lichtkegels stattfindet.
Flächenlichtquellen, die eine konstante Emissionsdichte über eine Fläche
haben und die Lichtemission in Richtung des Normalenvektors erfolgt.
Lokale Beleuchtung
Unter lokaler Beleuchtung versteht man die Lichtverhältnisse in einem Punkt einer
Szene. Die Intensität bzw. Farbe eines Objektpunkts ist nur vom direkten Lichteinfall
abhängig. Hierbei sind die folgenden Arten interessant.
Seite 1 von 5
Ambientes Licht
Beim ambienten Licht kommt das Licht nicht von einer definierten Quelle, sondern
aus allen Richtungen. Es handelt sich also um ein gleichmäßiges Hintergrundlicht,
das alle Objekte einer Szene beleuchtet. Alle sichtbaren Flächen werden mit der
gleichen Lichtintensität beleuchtet, was zufolge hat, dass die Szene nicht realistisch
und alle Objekte nur zweidimensional erscheinen.
Die Intensität einer Fläche „i“ errechnet sich aus dem Kreuzprodukt der ambienten
Lichtintensität und des materialabhängigen Reflexionskoeffizienten.
Vai  : I a  R i 
Reflexion
Die Farbe eines Gegenstandes entsteht durch die Kombination von Absorption und
Reflexion des einfallenden Lichts. Die Reflexion ist durch die Rauhigkeit der
Oberfläche bestimmt.
Gesetz von Lambert
Die Lichtintensität einer Fläche „i“ ist proportional zum Kosinus des Einfallswinkels.
Der Kosinus ist durch das Skalarprodukt von „l“ und „n“ definiert, wobei „l“ der
normierte Lichteinfallsvektor und „n“ der Normalenvektor der Fläche „i“ ist. Dieses
Skalarprodukt berücksichtigt dabei die Abhängigkeit der Intensität bei Punktquellen
vom Einfallswinkel
des Lichts.


cos   l ,n
Diffuse Reflexion
Bei der diffusen Reflexion wird ein einfallender Strahl gleichmäßig in alle Richtungen
gestreut. Neben dem ambienten Licht berücksichtigt man dabei nun noch zusätzlich
eine oder mehrere punktförmige Lichtquellen. Diese Lichtquellen sind idealisiert auf
einen Punkt reduziert (Bsp.: Sonne) und senden gerichtete Lichtstrahlen aus. Ihre
Eigenschaften kann man nun nutzen um die Intensität eines Punktes auf einer
Fläche von der Position und der Orientierung der Fläche in Bezug auf die Lichtquelle
abhängen zu lassen.
Die Intensität eines Punktes, die aus der Punktquelle P j (Licht) resultiert, errechnet
sich aus dem Kreuzprodukt der Intensität der Lichtquelle und dem Reflexionskoeffizienten der Fläche und dem Faktor des Skalarprodukts aus „l“ und „n“.
V ji  : I j  R i   l j , n
Für die Intensität einer Fläche „i“ unter zusätzlicher Berücksichtigung des ambienten
Lichts als auch von „m“ punktförmigen Lichtquellen ergibt sich folgende
Berechnungsformel („C“ ist die Entfernungskomponente).
m
m
j 1
j 1
V i  : Vai   V ji   I a  R i    I j  R i   l j , n  C ji 
Spiegelnde Reflexion
Bei der spiegelnden Reflexion liegt die Erkenntnis zugrunde, dass Licht, das auf eine
glatte bzw. glänzende Oberfläche trifft, nicht diffus in alle Richtungen, sondern
hauptsächlich in eine bestimmte Richtung geworfen wird. Hierbei ist sowohl der
Winkel des einfallenden Lichts als auch der Standpunkt des Betrachters von
Seite 2 von 5
Bedeutung, da sich die Richtung, in die das Licht bei perfekter Spiegelung reflektiert
wird aus der Beziehung „Ausfallswinkel = Einfallswinkel“ ergibt.
Das Modell von Phong
Das Beleuchtungsmodell von Phong Bui-Tong ist einfach und weit verbreitet. Es ist
ein rein empirisch/heuristisches Modell, hat also keine physikalische Grundlage.
Dieses Modell geht von der Erkenntnis aus, dass die spiegelnde Reflexion dann am
stärksten ist, wenn der perfekt reflektierte Strahl genau ins Auge des Betrachters
trifft.
Zur Berechnung der Intensität eines Punktes werden hier der materialabhängige
Spiegelreflexionskoeffizient R Si  und der Spiegelreflexionsexponent k eingeführt.
Für die Intensität eines Punktes einer Fläche „i“ bei einer punktförmigen Lichtquelle
P j und spiegelnder Reflexion ergibt sich folgende Berechnungsformel.
V j,ir : I j  RSi   r j , a  C ji 
k
Die spiegelnde Reflexion hängt sehr vom Spiegelreflexionsexponent k ab. Für ein
kleines k entsteht eine Spiegelung für einen relativ großen Sichtbereich. Bei einem
großen k, muss der Betrachter schon fast in Winkel des reflektierten Strahls stehen
um die Spiegelung sehen zu können.
Transparenz
Lichtstrahlen können nicht nur diffus oder spiegelnd reflektiert, bzw. absorbiert,
sondern von manchen Materialien auch durchgelassen werden. Dabei muss man
zwei Arten von Materialien berücksichtigen. Zum einen durchsichtige (transparente)
Materialien, zum anderen lichtdurchlässige (translucente) Materialien. Durch erstere
können Gegenstände trotz eventueller Brechung klar gesehen werden (z.B. durch
Glas). Letztere lassen zwar Licht durch, machen ein Erkennen von Gegenständen
aber unmöglich (z.B. Milchglas). Wir gehen hier kurz auf die transparenten Objekte
ein.
Geht Licht von einem Material/Medium in ein anderes über so ändert sich seine
Geschwindigkeit. Je optisch dichter ein Material/Medium ist, desto langsamer breitet
sich das Licht darin aus. Daher werden Lichtstrahlen am Übergang zwischen den
Materialien/Medien gebrochen, und zwar umso stärker, je flacher sie auftreffen.
Einfache Modelle zur Realisierung von Transparenz ignorieren die Brechung des
Lichts. Es gibt dafür verschiedene Ansätze, von denen zwei im Folgenden erläutert
werden (man geht hier immer von einem transparenten Polygon (1), das ein nicht
transparentes Polygon (2) verdeckt aus).

Interpolierte Transparenz: Man berechnet die interpolierte Intensität I P
indem man die Intensitätswerte des betroffenen Pixels in Polygon 1 und 2 mit
1  k t  bzw. k t multipliziert und anschließend addiert. k t ist hierbei der
Transmissionskoeffizient, der angibt wie durchsichtig das Material von
Polygon 1 ist (für k=1: völlig durchsichtig, für k=0: lichtundurchlässig)
I p : 1  k t   I 1  k t  I 2
Seite 3 von 5

Gefilterte Transparenz: Polygon 1 kann hier als Filter wirken und Licht
bestimmter Wellenlängen bevorzugt durchlassen. Der
Transmissionskoeffizient k t   hängt hier von der Wellenlänge ab. Dadurch
können z.B. Objekte, wie farbiges Glas modelliert werden.
I p , : 1  k t    I 1  k t    I 2
Soll die Brechung des Lichts mitmodelliert werden, ist zu berücksichtigen, dass ein
Lichtstrahl beim Übergang von einem Medium mit Brechungsindex 1 in ein anderes
mit Brechungsindex  2 gebrochen wird und sich somit seine Richtung ändert. Der
Ausfallswinkel  kann hier mit Hilfe des Snelliusschen Gesetzes aus dem
Einfallswinkel  und den Brechungsindizes der beiden Materialien berechnet
werden.
sin  1

sin   2
Außerdem muss auch der Effekt der totalen inneren Reflexion berücksichtigt werden,
der beim Übergang vom optisch dickeren ins optisch dünnere auftreten kann. Hierbei
kann sich dasselbe Verhalten wie bei lichtundurchlässigen Materialien ergeben.
Globale Beleuchtung
Bei den lokalen Beleuchtungsmodellen wurden bis jetzt nur die Lichtverhältnisse an
einem bestimmten Punkt der Szene berücksichtigt. Für die Erzeugung möglichst
realistischer Bilder ist aber auch die Modellierung der globalen Beleuchtung, also der
Licht-Wechsel-Wirkungen aller Objekte einer Szene miteinander vonnöten. Es gibt
zwei etablierte Verfahren in der globalen Beleuchtung.
Ray-Tracing
(=“Strahlverfolgung“) Bei diesem Verfahren wird die Ausbreitung von Lichtstrahlen
simuliert, wobei das Licht als eine Gruppe von Strahlen verstanden wird. Dieses
Verfahren kann spiegelnde Reflexion perfekt wiedergeben, diffuse Beleuchtung bzw.
ambientes Licht dagegen überhaupt nicht. Die resultierenden Bilder wirken
synthetisch und zu perfekt.
Radiosity
Radiosity beruht auf dem Engergieerhaltungssatz: alles Licht, das eine Fläche
empfängt und nicht absorbiert, muss sie wieder reflektieren. Außerdem kann eine
Fläche auch selbstleuchtend sein. Dieses Verfahren, quasi das „Gegenstück“ zum
Ray-Tracing, gibt die diffuse Beleuchtung perfekt wieder, spiegelnde Reflexionen
sind allerdings nicht möglich. Die resultierenden Bilder wirken schon natürlicher, aber
immer noch nicht realistisch, weil Glanz- und Spiegeleffekte fehlen.
Um diese Probleme der globalen Beleuchtung zu lösen wurden zahlreiche Ansätze
zur Kombination der beiden Verfahren entwickelt.
Seite 4 von 5
Quellen






Bungartz/Griebel/Zenger: Einführung in die Computergrafik (Vieweg Verlag
2002)
http://www.informatik.fh-muenchen.de/~schieder/opengl-ss99/05-pieningbeleuchtung/index.html
http://www.informatik.uniaugsburg.de/lehrstuehle/dbis/pmi/lectures/ss05/graphikprogrammierung/script/
http://www-gs.informatik.tu-cottbus.de/~wwwgs/cg3_home.htm
http://de.wikipedia.org/wiki/Kategorie:Computergrafik
http://www.vrvis.at/vr/cgr4/slides/
(Alle Stand vom 29.10.2005)
Seite 5 von 5
Herunterladen