26
Masterstudiengang Informatik Fachseminar Wintersemester 2011/2012 Shadow Mapping Vorgelegt von Florian Feuerstein am 03.01.2012 Dozent Prof. Dr. Christoph Schulz

Shadow Mapping - Florian Feuerstein · 1 Einleitung Abbildung 1.1: Auˇer einem gesteigerten Grad an Realismus, wirken sich Schatten positiv auf die r aumliche Einsch atzung der Szene

  • Upload
    lytuyen

  • View
    217

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Shadow Mapping - Florian Feuerstein · 1 Einleitung Abbildung 1.1: Auˇer einem gesteigerten Grad an Realismus, wirken sich Schatten positiv auf die r aumliche Einsch atzung der Szene

Masterstudiengang Informatik

Fachseminar

Wintersemester 2011/2012

Shadow Mapping

Vorgelegt von Florian Feuerstein

am 03.01.2012

Dozent Prof. Dr. Christoph Schulz

Page 2: Shadow Mapping - Florian Feuerstein · 1 Einleitung Abbildung 1.1: Auˇer einem gesteigerten Grad an Realismus, wirken sich Schatten positiv auf die r aumliche Einsch atzung der Szene
Page 3: Shadow Mapping - Florian Feuerstein · 1 Einleitung Abbildung 1.1: Auˇer einem gesteigerten Grad an Realismus, wirken sich Schatten positiv auf die r aumliche Einsch atzung der Szene

Inhaltsverzeichnis

1 Einleitung 1

2 Shadow Mapping 5

2.1 Simple Shadow Mapping . . . . . . . . . . . . . . . . . . . . . . . . 5

2.2 Verschiedene Lichttypen mit Shadow Mapping . . . . . . . . . . . . 8

2.3 Probleme beim Shadow Mapping . . . . . . . . . . . . . . . . . . . 9

2.4 Percentage Closer Filter . . . . . . . . . . . . . . . . . . . . . . . . 12

2.5 Practical Shadow Mapping . . . . . . . . . . . . . . . . . . . . . . . 14

2.6 Parallel-Split Shadow Maps . . . . . . . . . . . . . . . . . . . . . . 15

2.7 Weitere Verfahren . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

3 Zusammenfassung und Ausblick 19

Page 4: Shadow Mapping - Florian Feuerstein · 1 Einleitung Abbildung 1.1: Auˇer einem gesteigerten Grad an Realismus, wirken sich Schatten positiv auf die r aumliche Einsch atzung der Szene
Page 5: Shadow Mapping - Florian Feuerstein · 1 Einleitung Abbildung 1.1: Auˇer einem gesteigerten Grad an Realismus, wirken sich Schatten positiv auf die r aumliche Einsch atzung der Szene

1 Einleitung

Abbildung 1.1: Außer einem gesteigerten Grad an Realismus, wirken sich Schatten

positiv auf die raumliche Einschatzung der Szene aus. Wahrend man im linken

Bild davon ausgeht, dass beide Kugeln die gleiche Distanz zum Betrachter haben,

erkennt man im rechten Bild eine andere Situation. Abbildung angelehnt an [EE09].

Die Anwesenheit von Schatten in einer dreidimensionalen, virtuellen Szene ist fur un-

sere visuelle Wahrnehmung außerst entscheidend. Zum Ersten wirkt die Umgebung

dadurch deutlich realistischer und zum Zweiten wird das Bewusstein der raumlichen

Verhaltnisse gesteigert. Da heutzutage in den meisten Fallen eine dreidimensionale

Szene auf einem zweidimensionalen Medium angezeigt wird, gehen automatisch wich-

tige Informationen zur raumlichen Einschatzung verloren. So ist es beispielsweise ohne

einen Schattenwurf schwer, die Tiefe eines Objekts im Vergleich zu einem zweiten ein-

zuschatzen. Zur Behebung dieses Nachteils reicht es sogar aus einen Schattenwurf zu

erzeugen, der in Bezug zu den ursprunglichen Objekten vollig unrealistisch ist (sie-

he Abbildung 1.1) [EE09]. Umso realistischer die Darstellung von Schatten in einer

virtuellen Welt sind, desto positiver wirken sich die Effekte auf die Wahrnehmung aus.

Die deutlichen Vorteile machen dieses Thema zu einem großen Forschungsgebiet der

Computergrafik. In den letzten Jahren wurden viele wichtige Beitrage entwickelt,

Page 6: Shadow Mapping - Florian Feuerstein · 1 Einleitung Abbildung 1.1: Auˇer einem gesteigerten Grad an Realismus, wirken sich Schatten positiv auf die r aumliche Einsch atzung der Szene

2 Einleitung

welche oft von den enormen Leistungen und technischen Moglichkeiten heutiger Gra-

fikkarten vorangetrieben werden. Es wurden große Fortschritte bezuglich der visuellen

Qualitat sowie der Geschwindigkeit erzielt, die es ermoglichen hochqualitative Schat-

ten sogar in Echtzeit zu berechnen. Obwohl eine große Auswahl an Verfahren zur

Schattengenerierung besteht, gibt es noch keine allgemeingultige Losung fur das Pro-

blem [EE09]. Vielmehr mussen die Vor- und Nachteile der verschiedenen Methoden

fur jede Anwendung individuell abgewagt werden. Dabei wird man an den beiden

grundlegenden Verfahren namens Shadow Mapping [Wil78] und Shadow Volumes

[Cro77] nicht vorbeikommen. Shadow Volumes erzeugen einen pixelgenauen Schat-

ten, sind aber im Vergleich wesentlich aufwandiger zu berechnen. Auch das aktuellste

Verfahren [MS07] erreicht mit einer vorberechneten Datenstruktur, welche die Sze-

ne raumlich aufteilt und zur Beschleunigung dient, nur interaktive Bildraten [EE09].

Shadow Mapping leidet unter Aliasingproblemen, dagegen dauert die Berechnung der

Schatten fur vollstandig dynamische Umgebungen nicht langer als das Rendern der

Szene selbst. Zusatzlichen ist diese Technik einfach zu verstehen sowie zu implemen-

tieren, weshalb Shadow Mapping heutzutage das am meisten eingesetzte Verfahren

zur Schattengenerierung fur interaktive Echtzeitanwendungen ist.

Bevor Kapitel 2 das Verfahren von Shadow Mapping behandelt und mogliche Ver-

besserungen vorstellt, wird zunachst genauer auf den Schattenwurf in der Realitat

eingegangen. Schatten wird oftmals als die Abwesenheit von Licht definiert [TAM08].

Er entsteht, wenn sich ein Objekt, der Verdecker, zwischen der Lichtquelle und ei-

nem anderem Objekt, dem Empfanger, befindet, wobei der Verdecker die direkten

Lichtstrahlen zum Empfanger blockiert. Abbildung 1.2 verdeutlicht diesen Zusammen-

hang. In der wirklichen Welt bestehen alle Lichtquellen aus einer Flache, was dazu

fuhrt, dass jeder Punkt im Raum von mehreren unterschiedlich gerichteten Licht-

strahlen getroffen wird (siehe Abbildung 1.2 links). In Folge dessen bildet sich ein

Schatten, dessen Rander umso weicher auslaufen, desto weiter sie vom Verdecker

entfernt sind. Es wird hierbei von Soft Shadows gesprochen und zwischen dem Voll-

schatten (Umbra) und dem Halbschatten (Penumbra) unterschieden [TAM08]. In der

Echtzeit-Computergrafik werden Lichtquellen oft auf eine Punktlichtquelle oder ein

direktionales Licht, bei dem alle Lichtstrahlen exakt parallel verlaufen, vereinfacht,

um wertvolle Rechenzeit einzusparen. Dadurch verschwindet die weiche Penumbra

und ein Punkt im Raum kann entweder nur im Schatten oder außerhalb davon liegen

(siehe Abbildung 1.2 rechts). Diese Art wird aufgrund ihrer harten Rander Hard Sha-

Page 7: Shadow Mapping - Florian Feuerstein · 1 Einleitung Abbildung 1.1: Auˇer einem gesteigerten Grad an Realismus, wirken sich Schatten positiv auf die r aumliche Einsch atzung der Szene

3

Abbildung 1.2: Schatten in der Realitat (links) und in der Echtzeit-Computergrafik

(rechts).

dows genannt. Da diese Typen von Lichtquellen sowie der betreffende Schatten nicht

in der Realitat vorkommen, ist das Ergebnis im Vergleich zu Soft Shadows qualitativ

minderwertiger. So konnen Hard Shadows manchmal als Erhebung bzw. Vertiefung

der Geometrie missinterpretiert werden. Jedoch ist die benotigte Rechenzeit fur das

entsprechende Verfahren geringer.

Page 8: Shadow Mapping - Florian Feuerstein · 1 Einleitung Abbildung 1.1: Auˇer einem gesteigerten Grad an Realismus, wirken sich Schatten positiv auf die r aumliche Einsch atzung der Szene
Page 9: Shadow Mapping - Florian Feuerstein · 1 Einleitung Abbildung 1.1: Auˇer einem gesteigerten Grad an Realismus, wirken sich Schatten positiv auf die r aumliche Einsch atzung der Szene

2 Shadow Mapping

Dieses Kapitel geht zuerst auf das ursprungliche Verfahren von Shadow Mapping

[Wil78] ein und wie es fur Echtzeitanwendungen beispielsweise mittels OpenGL1 um-

gesetzt werden kann. Danach werden die Probleme, unter welchen Shadow Mapping

leidet, genauer erlautert, um anschließend drei mogliche Verbesserungen vorzustellen.

Diese versuchen auf unterschiedliche Art und Weise die sichtbaren Nachteile zu redu-

zieren. Zuletzt werden weitere Verfahren zusammengefasst, welche sich dem gleichen

Thema widmen.

2.1 Simple Shadow Mapping

Mit Simple Shadow Mapping [Wil78] bezeichnet man das erste Verfahren, welches

1978 von Lance Williams eingefuhrt wurde und dessen Idee bis heute die Basis fur

viele Weiterentwicklungen ist. Es generiert harte Schattenrander mit einem linearen

Aufwand bezuglich der Szenengeometrie. Außerdem kann jede Beschreibungsform von

Geometrie damit gerendert werden und nicht ausschließlich geschlossene Polygonnetz-

te, wie es bei Shadow Volumes der Fall ist. Das Schlusselelement des Algorithmus

ist der Tiefenpuffer. Er speichert die Tiefe des sichtbaren Objekts in jedem Pixel.

Zur Veranschaulichung wird hier immer von einem Spotlicht gesprochen, dass Licht-

strahlen von einem Punkt aus in einen begrenzten Bereich wirft und somit ahnliche

Eigenschaften wie eine Kamera hat. Das Prinzip von Shadow Mapping ist fur andere

Lichttypen bis auf wenige Details, welche spater beschrieben werden, das selbe.

Schatten, die von einem Punktlicht auf eine Oberflache geworfen werden, reprasentieren

eine Projektion der Szene auf diese Flache, analog zu einer perspektivischen Transfor-

1http://www.opengl.org/

Page 10: Shadow Mapping - Florian Feuerstein · 1 Einleitung Abbildung 1.1: Auˇer einem gesteigerten Grad an Realismus, wirken sich Schatten positiv auf die r aumliche Einsch atzung der Szene

6 Shadow Mapping

Abbildung 2.1: Die Grundidee von Shadow Mapping. Links unten ist das Bild aus

der Sicht des Lichtes. Rechts unten ist das Bild aus der Sicht des Betrachters.

Abbildung ubernommen aus [TAM08][RF03].

mation. Die Grundidee von Shadow Mapping besteht darin jede Lichtquelle als eine

(perspektivische) Kamera anzusehen. Diese projiziert die Szene von ihrem Standpunkt

aus wieder auf den Raum. Dadurch entsteht an allen Punkten ein Schatten, welche

die Kamera nicht sieht, weil diese Punkte hinter der projizierten Szene liegen. Da die

Kamera das Licht reprasentiert liegen damit anschaulich alle Punkte im Schatten, die

nicht vom Licht getroffen werden (siehe Abbildung 2.1). Eine mit Schatten gerenderte

Welt enthalt somit zwei Ansichten in einem Bild, namlich die Ansicht des Betrach-

ters selbst und die der Lichtquelle. Der Algorithmus kann also wie folgt beschrieben

werden. Zuerst wird die Szene aus dem Blickwinkel des Lichtes gerendert. Dabei

werden nur die Tiefenwerte und keine Beleuchtungsintensitaten berechnet sowie im

Page 11: Shadow Mapping - Florian Feuerstein · 1 Einleitung Abbildung 1.1: Auˇer einem gesteigerten Grad an Realismus, wirken sich Schatten positiv auf die r aumliche Einsch atzung der Szene

2.1 Simple Shadow Mapping 7

Tiefenpuffer gespeichert. Das entstandene Bild wird auch Depth Map genannt (sie-

he Abbildung 2.1 links unten). Als Zweites wird die Szene vom Betrachterstandpunkt

aus gerendert. Hierbei wird fur jedes Pixel uberpruft, ob die dazugehorige 3D-Position

von der Lichtquelle gesehen wurde oder nicht und somit im Schatten liegt. Um die-

sen Test auszufuhren transformiert man die (x, y, z)-Koordinaten, die auf ein Pixel

abgebildet wurden und sich im Koordinatensystem der Betrachterkamera befinden, in

den Koordinatenraum des Lichtes. Jetzt kann die Tiefe zL der transformierten Ko-

ordinaten (xL, yL, zL) im Lichtraum mit der gespeicherten Tiefe ZD in der Depth

Map verglichen werden. Das Tupel (xL, yL) gibt die gesuchte Position des Pixels in

der Depth Map an. Ist ZL großer als ZD, liegt der zu rendernde Punkt aus Sicht

der Lichtquelle hinter einem anderem und folglich im Schatten. Falls ZL gleich ZD

ist, sieht der Betrachter den gleichen Punkt wie das Licht zuerst und der Punkt wird

beleuchtet. In der Praxis kann es auch passieren, dass ZL kleiner als ZD ist, worauf

Abschnitt 2.3 genauer eingeht.

Um die Transformationsmatrix T vom Betrachterraum in den Lichtraum zu berechnen

mussen die Transformationsmatrix der Betrachterkamera TK , die Transformationsma-

trix des Lichtes TL sowie dessen Projektionsmatrix PL bekannt sein [RF03]. Daraus

ergibt sich folgende Formel:

T = PL ∗ TL ∗ T−1K

So werden die (x, y, z)-Koordinaten erst vom Betrachterraum in Weltkoordinaten um-

gewandelt plus anschließend in das Koordinatensystem der Lichtquelle transformiert

und perspektivisch in das kanonische Sichtvolumen projiziert. Da sich ZL sowie ZD

nun im selben Raum befinden, lassen sich die Werte problemlos miteinander verglei-

chen. Hierbei ist zu beachten, dass sich beide Werte auch im gleichen Wertebereich

befinden [SB05]. Die Standardpipeline von OpenGL produziert einen nicht-linearen

Tiefenpuffer, da sie davon ausgeht, dass im vorderen sichtbaren Bereich eine hohere

Genauigkeit benotigt wird als im hinteren. Diese Annahme trifft bei der Erstellung der

Shadow Map nicht zu, weil sie nicht die Sicht des Betrachters darstellt. Ein weit ent-

fernter Punkt zur Lichtquelle kann durchaus sehr nahe am Betrachter liegen. Um die

Genauigkeit der Depth Map global auf einer Stufe zu halten sowie den Wertebereich

von ZL und ZD anzupassen, sollte man auf eine lineare Depth Map zuruckgreifen. Mit-

hilfe heutiger Grafikkarten, welche die Programmierung eigener Shader ermoglichen,

Page 12: Shadow Mapping - Florian Feuerstein · 1 Einleitung Abbildung 1.1: Auˇer einem gesteigerten Grad an Realismus, wirken sich Schatten positiv auf die r aumliche Einsch atzung der Szene

8 Shadow Mapping

Abbildung 2.2: Die Standardlichtypen der Echtzeit-Computergrafik mit Shadow Map-

ping. Links: Spotlicht. Mitte: omnidirektionales Punktlicht. Rechts: direktionales

Licht.

lasst sich dies einfach realisieren. Weiterhin ist zu berucksichtigen, dass alle Berech-

nungen im Bildraum ausgefuhrt werden. Die Schattenbestimmung basiert auf der

Transformation zwischen zwei Bildern. Es muss folglich sichergestellt werden, dass

alle Objekte, die einen Schatten in das Bild des Betrachters werfen konnten, sich im

Sichtfeld des Lichtquellenbildes befinden [Wil78].

Das Verfahren von Shadow Mapping benotigt zwei Render Passes, wobei ein Render

Pass die Berechnung eines Bildes ist. Da man das Ergebnis des ersten Passes, die

Erstellung der Depth Map, dem Benutzer nicht darstellt und daher auf unnotige Be-

rechnungen der Beleuchtung verzichten kann, dauert die Erzeugung der Depth Map

nicht langer als die des Endbildes. Außerdem hangt der Aufwand der Schattenbestim-

mung nur von der Auflosung des finalen Bildes ab. Dadurch kann die Auflosung der

Depth Map unabhangig von der des Bildes gewahlt und die Genauigkeit angepasst

werden.

2.2 Verschiedene Lichttypen mit Shadow Mapping

Fur die drei Standardlichtypen der Echtzeit-Computergrafik muss das Shadow Mapping-

Verfahren jeweils angepasst werden. Im einfachsten Fall besitzt das Licht die gleichen

Eigenschaften wie eine Kamera, wie es oben beschrieben bei einem Spotlicht der

Fall ist. Somit kann die Lichtrichtung und Ausbreitung direkt auf das Kamerafrustum

ubertragen werden und keine weiteren Veranderungen sind notig (siehe Abbildung 2.2

links). Bei einem Punktlicht, welches von einem Punkt aus Licht in alle Richtungen

ausstrahlt, reicht eine Shadow Map aufgrund des maximales Sichtfeldes einer Kamera

Page 13: Shadow Mapping - Florian Feuerstein · 1 Einleitung Abbildung 1.1: Auˇer einem gesteigerten Grad an Realismus, wirken sich Schatten positiv auf die r aumliche Einsch atzung der Szene

2.3 Probleme beim Shadow Mapping 9

von 180 Grad nicht mehr aus. Die ubliche Methode besteht darin sechs verschiedene

Shadow Maps zu erstellen, die zusammen den ganzen Raum abdecken. Dazu richtet

man die Lichtkamera mit einem Blickwinkel von 90 Grad jeweils in die negativen und

positiven Richtungen der drei Koordinatenachsen [EE09]. Anschaulich wird hierbei

die gesamte Szene auf einen Wurfel um die Lichtquelle projiziert (siehe Abbildung

2.2 mitte). Beim Test, ob ein 3D-Punkt im Schatten liegt oder nicht, muss dann

zuerst gepruft werden in welches der sechs Frustums der Punkt fallt, bevor ein Tie-

fenvergleich mit der entsprechenden Depth Map gemacht werden kann. Eine weitere

Moglichkeit ist eine parabolische Abbildung [SB02], welche mit lediglich zwei Shadow

Maps auskommt. Allerdings sind diese Abbildungen schwer zu erstellen, da Linien zu

Kurven transformiert werden mussen, was inkompatibel mit der normalen Rasteri-

sierungspipeline ist [EE09]. Aus diesem Grund ist die erste Methode heutzutage die

effizientere. Bei einem direktionalen Licht laufen alle Lichtstrahlen parallel zueinan-

der, wodurch statt einer perspektivischen Projektion eine Parallelprojektion entsteht

und das Kamerafrustum analog dazu angepasst werden muss (siehe Abbildung 2.2

rechts).

2.3 Probleme beim Shadow Mapping

Die zwei großen Probleme von Shadow Mapping sind Quantisierungsfehler und Aliasing-

Effekte [Wil78]. Quantisierungsfehler treten immer dann auf, wenn ein stufenloser

Wertebereich in einen gestuften Wertebereich konvertiert wird. Hier ist das bei der

Ubertragung der stufenlosen Tiefenwerte im Raum in die Depth Map der Fall, die

nur eine begrenzte Anzahl an Bits pro Eintrag zur Verfugung hat. Von Aliasing wird

allgemein gesprochen, sobald ein Signal mit einer zu geringen Frequenz abgetastet

wird und damit wichtige Informationen verloren gehen. Dies passiert bei einer gerin-

gen Auflosung der Depth Map, welche nicht alle Informationen besitzt, die aus Sicht

des Betrachters benotigt werden. Wahrend man heutzutage die Quantisierungsfeh-

ler durch Verwendung von Float-Texturen mit einer Genauigkeit von 32 Bit klein

halten kann, ist Aliasing ein großeres Problem, welches alle Verfahren im Bildraum

betrifft [Wil78]. Die Idee generell riesige Shadow Maps einzusetzen reduziert zwar das

Problem, jedoch wird der Grafikkartenspeicher uberlastet und nicht jede Grafikkarte

unterstutzt hochauflosende Texturen.

Page 14: Shadow Mapping - Florian Feuerstein · 1 Einleitung Abbildung 1.1: Auˇer einem gesteigerten Grad an Realismus, wirken sich Schatten positiv auf die r aumliche Einsch atzung der Szene

10 Shadow Mapping

Abbildung 2.3: Die zwei großen Probleme von Shadow Mapping. Links: Quantisie-

rungsfehler. Rechts: Aliasing-Effekte.

Abbildung 2.3 links zeigt den entstehenden Fehler, welcher von der Quantisierung

ausgeht. Man sieht, dass Stellen, die eigentlich direkt von der Lichtquelle angestrahlt

werden trotzdem im Schatten liegen. Dies hat den Grund, dass bei der Transforma-

tion eines beleuchteten Punktes vom Betrachterraum in den Lichtraum der Tiefen-

wert ZL nicht exakt gleich dem Wert ZD aus der Depth Map ist [Wil78]. Aufgrund

von Rechenungenauigkeiten sowie den Quantisierungsfehlern des Tiefenpuffers ist ZL

manchmal großer oder kleiner als ZD. Um das Problem zu beheben wird ein Bias auf

die Werte der Depth Map addiert, der die Schattenlinie etwas nach hinten verschiebt.

Dieser muss handisch angepasst werden, sodass alle Artefakte verschwinden (siehe

Abbildung 2.3 rechts).

Auf der rechten Seite von Abbildung 2.3 erkennt man den Aliasing-Effekt. Man sieht

deutlich die projizierten Pixel der Depth Map auf der Oberflache, da hier ein Pixel

des Tiefenpuffers auf mehrere Pixel im Betrachterbild abgebildet werden. Eine ver-

einfachte Analyse der Abtastfehler stellt Abbildung 2.4 dar [MW04]. Hier wird von

einem direktionalen Licht ausgegangen, welches orthogonal zum Betrachter steht und

bereits auf dessen Kamerafrustum angepasst ist, sodass keine Pixel des Tiefenpuffers

verschwendet werden. Ein Pixel der Shadow Map wird durch ein Lichtstrahlenbundel

reprasentiert, welches das Pixel traversiert und eine Große ds × ds bezuglich der lo-

kalen Parametrisierung der Shadow Map hat. Es wird eine lokale Parametrisierung

Page 15: Shadow Mapping - Florian Feuerstein · 1 Einleitung Abbildung 1.1: Auˇer einem gesteigerten Grad an Realismus, wirken sich Schatten positiv auf die r aumliche Einsch atzung der Szene

2.3 Probleme beim Shadow Mapping 11

Abbildung 2.4: Der Aliasing-Effekt beim Shadow Mapping. Abbildung entnommen

aus [MW04].

von 0 bis 1 zwischen der Near- und Far-Plane des Betrachters angenommen (siehe

Abbildung 2.4). In Weltkoordinaten besitzt das Bundel eine Lange dz = (zf−zn)∗ds.

Dabei trifft es die Kante eines Szenenobjekts mit der Lange dz/cosβ. Nun gilt es her-

auszufinden, wie viele Pixel diese Kante im Bild des Betrachters einnimmt. Fallt der

Flachenabschnitt auf mehr als ein Pixel, so wurde die Szene unterabgetastet und die

Depth Map Auflosung sollte erhoht werden. Die Lange der Kante bezuglich des Be-

trachters ist dy = dz∗cosα/cosβ. Unter Annahme einer Near-Plane mit einer Distanz

von 1 besitzt die Projektion der Kante eine Lange von dp = dy/z im Betrachterbild.

Das Verhaltnis von dp und ds gibt nun den Aliasing-Fehler an und berechnet sich wie

folgt:

dp

ds=

1

z∗ dzds

∗ cosαcosβ

Eine Unterabtastung tritt dann auf, wenn dp großer als ein Pixel der Shadow Map in

Weltkoordinaten wird. Dies kann aufgrund von zwei verschiedenen Situationen passie-

ren, wie die obige Formel zeigt. Perspektivisches Aliasing tritt auf, wenn dzz∗ds groß ist

und wird durch die perspektivische Projektion der Betrachterkamera verursacht. Ob-

jekte die naher am Betrachter liegen, mussen im Idealfall mit einer hoheren Auflosung

Page 16: Shadow Mapping - Florian Feuerstein · 1 Einleitung Abbildung 1.1: Auˇer einem gesteigerten Grad an Realismus, wirken sich Schatten positiv auf die r aumliche Einsch atzung der Szene

12 Shadow Mapping

Abbildung 2.5: Das Ergebnis von PCF. Links: ohne PCF. Rechts: mit PCF.

abgetastet werden als entfernte Objekte, wo bereits eine geringe Auflosung ausreicht.

Hierfur wird jedoch eine Shadow Map benotigt, die nicht einheitlich ist. Das Ver-

fahren namens Parallel-Split Shadow Maps [FZ06], welches spater genauer erlautert

wird, nahert sich dieser Idee an. Projektives Aliasing ereignet sich, wenn cosα/cosβ

groß ist, also bei Oberflachen, die fast parallel zur Lichtquelle gerichtet sind [MW04].

Sie werden von der Lichtquelle kaum gesehen, nehmen aber im Betrachterbild eine

umso großere Flache ein. Die Reduzierung dieser Art von Fehler benotigt eine Anpas-

sung der Abtastrate basierend auf der Szenenanalyse, was vergleichsweise schwerer

zu realisieren ist.

2.4 Percentage Closer Filter

Die erste Optimierung des Shadow Mapping Verfahrens wendet sich nicht den eben

analysierten Ursachen der Aliasingfehler zu, sondern den dadurch auftretenden Sym-

ptomen. Der Percentage Closer Filter (PCF) [WTR87] ist ein Anti-Aliasing-Filter, wel-

cher die luckenhaften Schattenkanten mit neuen interpolierten Werten schließt. Ein

netter Nebeneffekt sind dabei weichere Schattenubergange. Diese sind jedoch global

konstant und damit nicht physikalisch korrekt. Die optische Qualitat der Schatten

steigt trotzdem. Es ist zu bemerken, dass softe Ubergange nicht mit einem Weich-

zeichnen der Shadow Map erzeugt werden konnen [EE09]. Die Shadow Map speichert

Tiefenwerte und nicht die Schattenbereiche selbst. Das Ergebnis beim Vergleich von

durchschnittlichen Tiefenwerten ist genauso binar wie zuvor. Ein Pixel kann entweder

im Schatten liegen oder außerhalb davon. Das Ergebnis eines Anti-Aliasing-Filters soll-

te allerdings mehrere Werte annehmen konnen, um weiche Ubergange zu garantieren.

Aus dem selben Grund lasst sich kein bilinearer Filter einsetzen, wie es bei Texturen

Page 17: Shadow Mapping - Florian Feuerstein · 1 Einleitung Abbildung 1.1: Auˇer einem gesteigerten Grad an Realismus, wirken sich Schatten positiv auf die r aumliche Einsch atzung der Szene

2.4 Percentage Closer Filter 13

Abbildung 2.6: Eine bilineare Filterung (oben) wurde fur Depth Maps nicht funktio-

nieren, da nur Tiefenwerte interpoliert werden. Im Gegensatz dazu vergleicht PCF

(unten) zuerst die Werte und filtert dann das Ergebnis. Abbildung entnommen aus

[WTR87].

ublich ist. Er wurde zusatzlich die Geometrie der Szene nicht korrekt wiedergeben.

Die Losung von PCF vertauscht die Reihenfolge der Filter- und Vergleichsphase (sie-

he Abbildung 2.6) [WTR87]. Die Tiefe der zu rendernden Oberflache wird zuerst

mit allen Werten einer Region um das entsprechende Pixel der Shadow Map ver-

glichen. Es entsteht ein binares Bild dieser Region, wobei jedes Pixel angibt, ob es

sich im Schatten befindet oder nicht. Anschließend wird dieses Bild gefiltert, sodass

daraus ein Verhaltnis der im Schatten liegenden Pixel resultiert. Das Ergebnis sind

weiche, geglattete Kanten (siehe Abbildung 2.5). Den Unterschied zwischen einer

gewohnlichen Filterung und PCF zeigt Abbildung 2.6 anhand einer Beispielsituation.

Die Distanz der Lichtquelle zur Oberflache, welche beleuchtet werden soll, betragt

z = 49.8. Die dazugehorige 3× 3 Region wird links im Bild dargestellt. Ein bilinearer

Filter wurde den Wert 22.9 berechnen, ihn mit 49.8 vergleichen und daraus wieder

eine 1 ziehen, was bedeutet, dass 100% der Oberflache im Schatten liegt. PCF da-

Page 18: Shadow Mapping - Florian Feuerstein · 1 Einleitung Abbildung 1.1: Auˇer einem gesteigerten Grad an Realismus, wirken sich Schatten positiv auf die r aumliche Einsch atzung der Szene

14 Shadow Mapping

Abbildung 2.7: Anpassung des Lichtfrustums an das Betrachterfrustum und an die

Szene. Links: mit einer achsenparallelen Bounding-Box. Rechts: mit einer optimalen

Bounding-Box.

gegen vergleicht jeden Wert der Depth Map Region mit 49.8 und filtert das binare

Bild um auf einen Wert von 0.55 zu kommen, was bedeutet, dass 55% der Ober-

flache im Schatten liegt. Je nachdem, wie weich die Kanten auslaufen sollen, kann

die Große der Filterregion gewahlt werden. Umso großer die Region, desto weicher

die Schattenrander.

2.5 Practical Shadow Mapping

Eine der einfachsten Methoden, die Abtastrate zur verbessern, nennt sich Fitting

[SB05]. Die Idee dahinter ist abzusichern, dass kein Platz der Shadow Map ver-

schwendet wird. Diese Situation kommt auf, wenn das Lichtfrustum nicht auf das

Betrachterfrustum angepasst wird. Vor allem in großen Außenszenen, fur die man

eine einzige Shadow Map benutzt, wird nur ein kleiner Teil der Shadow Map fur das

Betrachterfrustum relevant sein. Folglich kann das Lichtfrustum auf den relevanten

Teil verkleinert werden, wodurch sich die Abtastrate erhoht. Um Schatten nur fur

den sichtbaren Bereich zu berechnen, identifiziert man zuerst alle Objekte, die sich

im Frustum des Betrachters oder des Lichtes befinden und berechnet zweitens ih-

re Bounding-Box (siehe Abbildung 2.7). Es ist wichtig auch Objekte innerhalb des

Lichtfrustums mit einzubeziehen, auch wenn diese gar nicht vom Betrachter gesehen

Page 19: Shadow Mapping - Florian Feuerstein · 1 Einleitung Abbildung 1.1: Auˇer einem gesteigerten Grad an Realismus, wirken sich Schatten positiv auf die r aumliche Einsch atzung der Szene

2.6 Parallel-Split Shadow Maps 15

Abbildung 2.8: Das Lichtfrustums wird in kleinere Frustums Li gespalten, sodass je-

der Teil die entsprechende Schicht Ki des Betrachterfrustums bedeckt. Durch die

verschieden große Schichten wird die Abtastrate pro Schicht angepasst. Abbildung

angelehnt an [FZ06].

werden. Trotzdem werfen sie einen Schatten auf Objekte, die wiederum vom Betrach-

ter sichtbar sind. Im letzten Schritt kann das Lichtfrustum auf die Bounding-Box

der identifizierten Objekte angepasst werden. Generell ist die Wahl einer optimalen

Bounding-Box eine bessere Losung, als die einer achsenparallelen Bounding-Box, da

sie mit den kleinstmoglichen Ausmaßen alle Objekte enthalt. Einen beispielhaften

Vergleich stellt Abbildung 2.7 dar.

2.6 Parallel-Split Shadow Maps

Das Verfahren von Parallel-Split Shadow Maps (PSSM) [FZ06] wendet sich den Ursa-

chen der Aliasing-Probleme zu und zwar der Tatsache, dass bei einer perspektivischen

Betrachterkamera Punkte in unterschiedlichen Distanzen auch unterschiedliche Ab-

tastdichten benotigen. Umso weiter weg sich ein Punkt von der Kamera befindet,

desto kleiner kann die Abtastdichte der Shadow Map gewahlt werden, ohne einen

sichtbaren Qualitatsunterschied zu bemerken. Umgekehrt bedeutet dies naturlich, dass

im vorderen Bereich des Kamerafrustums eine hohe Abtastrate notig ist. Die Idee von

PSSM ist nun das Betrachterfrustum in verschiedene Tiefeschichten einzuteilen, die

parallel zur Bildebene sind, und dann eine individuelle Shadow Map fur jede einzelne

Page 20: Shadow Mapping - Florian Feuerstein · 1 Einleitung Abbildung 1.1: Auˇer einem gesteigerten Grad an Realismus, wirken sich Schatten positiv auf die r aumliche Einsch atzung der Szene

16 Shadow Mapping

Teilschicht zu rendern (siehe Abbildung 2.8). Die Shadow Maps sind unabhangig von-

einander, wodurch in unterschiedlichen Tiefenbereichen je nach Anforderungen auch

unterschiedliche Abtastdichten gewahlt werden konnen. Außerdem wird die Shadow

Map durch mehrere kleinere Tiefenpuffer ersetzt, was in der Regel zu einem geringe-

ren Speicherverbrauch fuhrt. Die benotigte Rechenzeit im Vergleich zu einer Shadow

Map ist jedoch hoher.

Es stellt sich die Frage, in welcher Distanz die Schnittebenen nun gesetzt werden sol-

len, wenn man von Shadow Maps mit gleicher Auflosung fur jede Teilschicht ausgeht.

Dabei stellt sich heraus, dass bei einem einheitlichen Schnittschema es in nahen Be-

reichen und bei einem logarithmischen Schnittschema es in entfernteren Bereichen zu

einer Unterabtastung kommt. Ein praktisches Schnittschema ist also der Mittelwert

aus den beiden Distanzwerten fur jeweils eine Teilschicht. Ist das Betrachterfrustum

in seine Tiefeschichten Ki eingeteilt, muss darauf das Lichtfrustum in ebenfalls i ver-

schiedene kleinere Frustums Li so partitioniert werden, dass Li den gesamten Raum

von Ki abdeckt (siehe Abbildung 2.8). Anschließend kann man das bekannte Verfah-

ren von Shadow Mapping anwenden, mit dem Unterschied, dass statt einer Shadow

Map i verschiedene Tiefenpuffer gerendert werden mussen.

2.7 Weitere Verfahren

Da die in diesem Kapitel beschriebenen Optimierungen von Shadow Mapping das

Aliasing-Problem auf unterschiedliche Arten reduzieren, lassen sie sich beliebig mit-

einander kombinieren, um ein noch besseres Ergebnis zu erreichen. Die Literatur bietet

mehr Verfahren, die sich diesem Thema widmen. Eine weitere Kategorie nennt sich

Warping und basiert auf der Idee, das Licht- sowie das Betrachterfrustum in einen an-

deren perspektivischen Raum zu transformieren und dort die Schattenberechnungen

durchzufuhren [MS02] [MW04]. Der perspektivische Raum wird dabei so gewahlt,

dass Objekte, die nahe am Betrachterfrustum liegen, großer skaliert werden. Dadurch

nehmen sie mehr Platz in der Shadow Map ein und werden hoher abgetastet. Ein kost-

spieliger Nachteil des PCF sind die vielen Vergleiche mit der Shadow Map, die pro

Pixel gemacht werden mussen. In das Verfahren von Variance Shadow Maps [WD06]

gehen deshalb die statistischen Informationen fur den Mittelwert und die Varianz ein,

Page 21: Shadow Mapping - Florian Feuerstein · 1 Einleitung Abbildung 1.1: Auˇer einem gesteigerten Grad an Realismus, wirken sich Schatten positiv auf die r aumliche Einsch atzung der Szene

2.7 Weitere Verfahren 17

was die Vergleiche pro Pixel auf einen einzigen reduziert. Eine Alternative zu PSSM ist

ein adaptives Shadow Mapping Verfahren [RF01], welches die benotigte Abtastdichte

nicht fur mehrere festgelegte Schichten, sondern fur jedes Pixel anpasst. Der Ansatz

ist auf eine hierarchische Datenstruktur fur die Shadow Map angewiesen, die Bereiche

nach Bedarf verfeinern oder grober strukturieren kann. Da diese Struktur nur schwer

auf heutige Grafikkarten ubertragen werden kann, erreicht man hiermit noch keine

nutzbaren Bildraten.

Page 22: Shadow Mapping - Florian Feuerstein · 1 Einleitung Abbildung 1.1: Auˇer einem gesteigerten Grad an Realismus, wirken sich Schatten positiv auf die r aumliche Einsch atzung der Szene
Page 23: Shadow Mapping - Florian Feuerstein · 1 Einleitung Abbildung 1.1: Auˇer einem gesteigerten Grad an Realismus, wirken sich Schatten positiv auf die r aumliche Einsch atzung der Szene

3 Zusammenfassung und Ausblick

Diese Ausarbeitung zum Thema Shadow Mapping erlautert das grundlegene Verfah-

ren von Lance Williams [Wil78] und drei weitere Optimierungen. Das Prinzip von

Shadow Mapping besteht darin, jede Lichtquelle als eine Kamera zu interpretieren,

welche nur die Szenenobjekte sieht, die im direkten Licht sind. Andere Punkte im

Raum, welche hinter diesen Objekten liegen, mussen sich daher im Schatten befin-

den. Der erste Schritt des Algorithmus ist die Szene aus Sicht der Lichtquelle zu

rendern und dabei die Tiefenwerte in einem Tiefenpuffer abzuspeichern. Im zweiten

Schritt kann man das Bild aus Betrachtersicht rendern und fur jedes Pixel die da-

zugehorige 3D-Position in das Koordinatensystem des Lichtes transformieren. Hier

wird die Tiefe der aktuellen Oberflache mit der aus dem Tiefenpuffer verglichen. Nun

kann festgestellt werden, ob sich der Punkt hinter einem anderen befindet und damit

im Schatten liegt oder beleuchtet wird. Da das Verfahren im Bildraum stattfindet,

leidet es unter Quantisierungs- und Aliasing-Fehler. Ein Bias, der die Schattenlinie

ein wenig nach hinten verschiebt, behebt die auftretenden Quantisierungsprobleme.

Der Percentage Closer Filter [WTR87] passt die gewohnliche Texturfilterung auf das

Shadow Mapping-Verfahren an, weil eine standardmaßige Interpolation von Tiefen-

werten hier keinen Sinn ergibt. Die Tiefe eines Punktes im Lichtraum wird nicht mit

einem Wert des Tiefenpuffers, sondern mit einer umliegenden Region verglichen und

dann das Ergebnis gefiltert. Somit werden weichere und geglattete Kanten erreicht.

Practical Shadow Mapping [SB05] passt das Lichtfrustum auf die Objekte an, die

vom Betrachter sichtbar sind. Dadurch kann das Lichtfrustum verkleinert werden,

was einen genaueren Tiefenpuffer zur Folge hat. Das Verfahren von Parallel-Split

Shadow Maps [FZ06] basiert auf der Beobachtung, dass nahe Bereiche des Betrach-

terfrustums einen genaueren Tiefenpuffer benotigen als weiter entfernte. Demnach

wird das Betrachterfrustum in mehrere Schichten geteilt, fur die jeweils ein separa-

ter Tiefenpuffer berechnet wird. Da die verschiedenen Puffer unabhangig voneinander

sind, kann man die Genauigkeit fur eine Schicht individuell anpassen, wodurch sicht-

Page 24: Shadow Mapping - Florian Feuerstein · 1 Einleitung Abbildung 1.1: Auˇer einem gesteigerten Grad an Realismus, wirken sich Schatten positiv auf die r aumliche Einsch atzung der Szene

20 Zusammenfassung und Ausblick

Abbildung 3.1: Die optische Qualitat der Beleuchtung steigt durch die

Berucksichtigung der Umgebungsverdeckung wesentlich. Abbildung entnom-

men aus [PS07].

bare Aliasing-Fehler reduziert werden.

Alle beschriebenen Methoden generieren harte oder einheitlich geglatte Schattenkan-

ten. Mochte man weich auslaufende Schattenrander, wie sie in der Realitat vorkom-

men, annahern, muss zusatzlich die Information berucksichtigt werden, wie weit ein

Schattenpunkt vom Verdecker entfernt ist. Eine Moglichkeit Soft Shadows zu erzeu-

gen, ist den Schatten umso starker zu filtern, je großer die Distanz zum Verdeckerob-

jekt ist [EE09]. Außerdem behandeln die Verfahren nur direktes Licht. In der wirklichen

Welt prallen Lichtstrahlen auf Oberflachen und werden teilweise je nach Struktur in

unterschiedliche Richtungen reflektiert [TAM08]. Man spricht dann von indirektem

Licht. Auf Punkte, die zum großen Teil von ihrer Umgebung verdeckt werden, fal-

len dann weniger solcher indirekten Strahlen. Die optische Qualitat der Beleuchtung

steigt wesentlich durch Vefahren, die sich der Umgebungsverdeckung zuwenden. Ab-

bildung 3.1 zeigt einen Vergleich zweier Bilder mit und ohne Berucksichtigung der

Umgebungsverdeckung.

Page 25: Shadow Mapping - Florian Feuerstein · 1 Einleitung Abbildung 1.1: Auˇer einem gesteigerten Grad an Realismus, wirken sich Schatten positiv auf die r aumliche Einsch atzung der Szene

Literaturverzeichnis

[Cro77] Crow, Franklin C.: Shadow Algorithms for Computer Graphics. Tech-

nischer Bericht, Computer Graphics (Proceedings of ACM SIGGRAPH 77),

1977.

[EE09] Elmar Eisemann, Ulf Assarsson, Michael Schwarz Micha-

el Wimmer: Casting Shadows in Real Time. Technischer Bericht, SIG-

GRAPH Asia, 2009.

[FZ06] Fan Zhang, Hanqiu Sun, Leilei Xu Lee Kit Lun: Parallel-Split

Shadow Maps for Large-scale Virtual Environments. Technischer Bericht,

Proceedings of the 2006 ACM international conference on Virtual reality

continuum and its applications, 2006.

[MS02] Marc Stamminger, George Drettakis: Perspective Shadow Maps.

Technischer Bericht, ACM Transactions on Graphics (Proceedings of SIG-

GRAPH), 2002.

[MS07] Martin Stich, Carsten Wachter, Alexander Keller: Effi-

cient and Robust Shadow Volumes Using Hierarchical Occlusion Culling

and Geometry Shaders. In: GPU Gems 3. AddisonWesley Professional,

2007.

[MW04] Michael Wimmer, Daniel Scherzer, Werner Purgathofer:

Light Space Perspective Shadow Maps. Technischer Bericht, Vienna Uni-

versity of Technology, 2004.

[PS07] Perumaal Shanmugam, Okan Arikan: Hardware Accelerated Am-

bient Occlusion Techniques on GPUs. Technischer Bericht, Proceedings of

the 2007 symposium on Interactive 3D graphics and games, 2007.

Page 26: Shadow Mapping - Florian Feuerstein · 1 Einleitung Abbildung 1.1: Auˇer einem gesteigerten Grad an Realismus, wirken sich Schatten positiv auf die r aumliche Einsch atzung der Szene

22 Literaturverzeichnis

[RF01] Randima Fernando, Sebastian Fernandez, Kavita Bala Do-

nald P. Greenberg: Adaptive Shadow Maps. Technischer Bericht,

ACM SIGGRAPH 2001, 2001.

[RF03] Randima Fernando, Mark J. Kilgard: The CG Tutorial. Addison-

Wesley Longman, 2003.

[SB02] Stefan Brabec, Thomas Annen, Hans-Peter Seidel: Shadow

Mapping for Hemispherical and Omnidirectional Light Sources. Technischer

Bericht, Max-Planck-Institut fur Infomatik, 2002.

[SB05] Stefan Brabec, Thomas Annen, Hans-Peter Seidel: Practical

Shadow Mapping. Technischer Bericht, Max-Planck-Institut fur Informatik,

2005.

[TAM08] Tomas Akenine-Moller, Eric Haines, Naty Hoffman: Real-

Time Rendering. A.K. Peters Ltd., 3 Auflage, 2008.

[WD06] William Donnelly, Andrew Lauritzen: Variance Shadow Maps.

Technischer Bericht, Proceedings of ACM SIGGRAPH Symposium on In-

teractive 3D Graphics and Games 2006, 2006.

[Wil78] Williams, Lance: Casting Curved Shadows on Curved Surfaces. Tech-

nischer Bericht, Computer Graphics (Proceedings of ACM SIGGRAPH 78),

1978.

[WTR87] William T. Reeves, David H. Salesin, Robert L. Cook: Rende-

ring Antialiased Shadows with Depth Maps. Technischer Bericht, Computer

Graphics (Proceedings of ACM SIGGRAPH 87), 1987.