www.wikidata.de-de.nina.az
Shadow Mapping ist eine Methode der Computergrafik um Schattenwurf darzustellen Das Konzept wurde 1978 im Paper casting curved shadows on curved surfaces von Lance Williams 1 vorgestellt Shadow Maps werden sowohl fur Offlinerendering als auch fur Echtzeitanwendungen benutzt Szene mit Shadow mappingSzene ohne SchattenBeim Shadow Mapping werden Schatten generiert indem getestet wird ob ein Pixel von einer Lichtquelle aus sichtbar ist Dabei wird zunachst die sogenannte Shadow Map erzeugt Diese ist eine aus Sicht der Lichtquelle erzeugte Tiefenkarte Diese enthalt Informationen uber den geringsten Abstand von Objekten einer Szene zur Lichtquelle Z Buffer Durch den Vergleich des Abstandes des zu rendernden Objektes zur Lichtquelle und dem entsprechenden Punkt in der Shadow Map kann der Schattenwurf berechnet werden Inhaltsverzeichnis 1 Funktionsprinzip 2 Algorithmus 2 1 Zeichnen der Shadow Map 2 2 Schattieren der Szene 3 Uniform Shadow Mapping 4 Perspective Shadow Mapping PSM 5 Light Space Perspective Shadow Mapping LiSPM 6 Cascaded Shadow Mapping CSM 7 Dual Paraboloid Shadow Mapping DPSM 8 Weitere Methoden 9 Weblinks 10 EinzelnachweiseFunktionsprinzip BearbeitenDas Rendern einer Szene mit Schatten unter Zuhilfenahme von einer Shadow Map geschieht im Wesentlichen in zwei Schritten Als erstes wird die Szene aus der Sicht des Lichts gerendert und fur jedes sichtbare Objekt die Tiefeninformation gespeichert Anschliessend wird die Szene normal gerendert wobei fur jedes Pixel mit Hilfe der Shadow Map bestimmt wird ob es fur das Licht sichtbar ist Falls dies nicht der Fall ist wird das Pixel schattiert gerendert Diese Technik bietet weniger genaue Resultate als Schattenvolumen ist aber im Allgemeinen schneller in der Berechnung Zudem konnen Shadow Maps ohne Zuhilfenahme des Stencilbuffers realisiert werden und erlauben das Zeichnen von weichen Kanten Algorithmus BearbeitenZeichnen der Shadow Map Bearbeiten nbsp Szene von der Position des Lichts aus gesehen nbsp Tiefenkarte der Szene aus der Position des LichtsAls erstes wird die Tiefenkarte fur jedes Licht erstellt Fur Punktlichtquellen sollte dazu eine perspektivische Projektion verwendet werden wahrend fur gerichtete Lichtquellen mit parallelen Strahlen wie zum Beispiel bei der Sonne eine orthogonale Projektion geeignet ist Dazu wird die Szene von der Position des Lichts aus gerendert und die Tiefeninformation gespeichert Haufig wird die Tiefenkarte als Textur im Speicher der Grafikkarte gespeichert Damit dieser Rendervorgang moglichst effizient ablauft kann sowohl die Licht als auch die Farbberechnung weggelassen bzw abgeschaltet werden Jedes Mal wenn sich die Position eines Lichts oder eines Objekts in der Szene andert mussen die Tiefenkarten neu berechnet werden Schattieren der Szene Bearbeiten nbsp Visualisierung der Tiefenkarte auf die Szene projiziert nbsp Fehlgeschlagene Tiefentests nbsp Endgultige Szene mit ambienten Schatten Als zweiter Schritt wird die Szene aus der Sicht der Kamera gerendert und die Shadow Map auf die einzelnen Pixel angewendet Dieser Schritt besteht im Wesentlichen aus drei Operationen Der Erste ist die relativen Koordinaten eines Objekts im Vergleich zur Kamera auf die entsprechenden relativen Koordinaten vom Licht aus gesehen zu transformieren Als Zweites werden die Koordinaten mit der Tiefenkarte verglichen und als Letztes wird das Objekt als beleuchtet oder schattiert gezeichnet Uniform Shadow Mapping BearbeitenBeim Zeichnen der eigentlichen Szene kann fur jedes Pixel die Entfernung zur Lichtquelle mit der Entfernung verglichen werden die fur diese Stelle in der Tiefentextur steht Falls die Entfernung des Pixels grosser ist als die in der Textur gespeicherte Entfernung liegt der Pixel im Schatten Bei globalen Lichtquellen wie der Sonne ist das Gebiet uber das sich die Tiefentextur erstreckt sehr gross Die raumliche Auflosung des Schattens ist demzufolge sehr gering Die gleichformige Verteilung des Texturraums uber das betroffene Gebiet fuhrt ausserdem dazu dass die vom Betrachter wahrgenommene Schattenauflosung in der Nahe sehr niedrig ist wahrend in der Entfernung eine unnotig hohe Auflosung erreicht wird Perspective Shadow Mapping PSM BearbeitenPerspective Shadow Mapping erweitert die Projektionsmatrix des Lichtes um eine perspektivische Komponente der Betrachterprojektion Damit wird der vorher quadratische Ausdehnungsbereich der Schattentextur auf ein Trapez verformt das seine schmale Seite beim Betrachter hat und damit dort sehr viel mehr Texel pro Masseinheit bietet als in der Ferne Die Methode arbeitet gut fur Szenarien in denen die Blickrichtung des Betrachters grosstenteils senkrecht zur Lichtrichtung ist Das Verfahren hat aber einige numerische Totstellen in denen die Projektionsmatrix ungultige Werte annimmt oder den Schatten invertiert Light Space Perspective Shadow Mapping LiSPM BearbeitenLight Space Perspective Shadow Mapping benutzt zum Beispiel in SpellForce 2 ist eine Erweiterung der PSM Methode die durch geanderte Formeln den Grad der perspektivischen Verzerrung der Lichtprojektion frei wahlbar gestaltet Bei einem senkrechten Blickwinkel zur Lichtrichtung entspricht diese Methode der PSM Methode Je paralleler Sichtrichtung und Lichtrichtung werden desto geringer wird die perspektivische Verzerrung bis die Methode bei Parallelitat auf normales Uniform Shadow Mapping zuruckfallt Diese Methode verhindert die Totstellen von PSM Das optische Ergebnis ist aber immer noch stark von der Blickrichtung abhangig Cascaded Shadow Mapping CSM BearbeitenCascaded Shadow Mapping benutzt zum Beispiel in 3DMark2005 und 3DMark2006 verhindert die ungleiche Verteilung der Schattentexel Dichte durch Einsatz mehrerer geschachtelter Shadow Maps fur verschiedene Entfernungen 2 Jede einzelne Shadow Map wird gleichformig projiziert oder kann mit einer der obigen Varianten perspektivisch projiziert werden Die Methode ist leicht zu implementieren und liefert flexibel einstellbare Schattenqualitat fur alle Entfernungen benotigt aber ein Vielfaches der Rechenzeit und des Grafikkarten Speichers anderer Methoden Dual Paraboloid Shadow Mapping DPSM BearbeitenDie traditionelle Technik des Shadow Mapping verwendet nur eine Tiefenkarte Mochte man aber ein in mehrere Richtungen scheinendes Licht z B ein Punktlicht realisieren reicht die traditionelle Methode nicht mehr aus So kam man im Laufe der Zeit auf Dual Paraboloid Shadow Mapping eine Technik bei der man den Raum um die Lichtquelle auf zwei Paraboloide projiziert die zwei Tiefenkarten entsprechen Diese Methode ist annahernd so performant wie das traditionelle Shadow Mapping hat aber auch Nachteile die hauptsachlich mit der Verzerrung durch die Projektion auf das gewolbte Paraboloid zusammenhangen Durch geeignete Gegenmassnahmen lassen sich diese aber auf ein Minimum reduzieren Dual Paraboloid Mapping wurde zum ersten Mal 1998 in der Publikation View independent environment maps von Wolfgang Heidrich und Hans Peter Seidel 3 beschrieben Weitere Methoden BearbeitenEs gibt weitere Moglichkeiten Shadow Maps verbessert darzustellen allerdings eignen sie sich nicht zur Berechnung in Echtzeit Sie arbeiten durch Segmentierung der Szene und Zuordnung verschieden grosser Schattentextur Fragmente zu diesen Segmenten nach verschiedenen Qualitatskriterien Es gibt auch Echtzeit Varianten aber die Aufteilung der Szene in Echtzeit ist problematisch und fuhrt zu sichtbaren Sprungen in der Schattenqualitat im Bild Weblinks BearbeitenMark J Kilgard Shadow Mapping with Today s OpenGL Hardware PDF NVIDIA Corporation 27 Marz 2001 abgerufen am 3 Oktober 2022 englisch Artikel der die Implementation von Shadowmaps mit Hilfe der Grafikkarte erklart Dual Paraboloid Shadow Mapping Tutorial zur Technik des Dual Paraboloid Shadow Mapping Einzelnachweise Bearbeiten Lance Williams Computer Graphics Lab New York Institute of Technology Old Westbury New York Casting curved shadows on curved surfaces PDF In ACM SIGGRAPH Computer Graphics Volume 12 Issue 3 August 1978 S 270 274 abgerufen am 5 April 2010 956 KB ISSN 0097 8930 Rouslan Dimitrov Cascaded Shadow Maps PDF NVIDIA Corporation August 2007 abgerufen am 5 April 2010 1 58 MB Wolfgang Heidrich Hans Peter Seidel View independent environment maps In Proceeding HWWS 98 Proceedings of the ACM SIGGRAPH EUROGRAPHICS workshop on Graphics hardware Association for Computing Machinery New York 1998 ISBN 1 58113 097 X S 39 ff doi 10 1145 285305 285310 Abgerufen von https de wikipedia org w index php title Shadow Mapping amp oldid 226710203