Untersuchung von Verfahren zur Schattenberechnung. Bachelorarbeit

Größe: px
Ab Seite anzeigen:

Download "Untersuchung von Verfahren zur Schattenberechnung. Bachelorarbeit"

Transkript

1 Fachbereich 4: Informatik Untersuchung von Verfahren zur Schattenberechnung Bachelorarbeit zur Erlangung des Grades eines Bachelor of Science (B.Sc.) im Studiengang Computervisualistik vorgelegt von Raphael Baumeister Erstgutachter: Zweitgutachter: Prof. Dr.-Ing. Stefan Müller (Institut für Computervisualistik, AG Computergraphik) Dipl.-Inform. Martin Schumann (Institut für Computervisualistik, AG Computergraphik) Koblenz, im Januar 2012

2 Erklärung Ich versichere, dass ich die vorliegende Arbeit selbständig verfasst und keine anderen als die angegebenen Quellen und Hilfsmittel benutzt habe. Ja Nein Mit der Einstellung der Arbeit in die Bibliothek bin ich einverstanden. Der Veröffentlichung dieser Arbeit im Internet stimme ich zu (Ort, Datum) (Unterschrift) i

3 Zusammenfassung 1978 veröffentlichte Lance Williams einen Algorithmus, welcher den Grundstein für viele weitere Techniken legte, den Shadow Mapping- Algorithmus, welcher mittlerweile sehr verbreitet ist, um einen realistisch aussehenden Schattenwurf in Echtzeit zu simulieren. Diese Arbeit stellt verschiedene Modifikationen des Standard Shadow Mapping-Verfahren vor und arbeitet ihre Probleme und ihren Nutzen heraus. Der Percentage-Closer- Filtering-Algorithmus und die Verfahren Variance Shadow Maps, Cascaded Shadow Maps und Trapezoidal Shadow Maps werden verglichen und drei von ihnen implementiert. Das größte Ziel dieser Verfahren ist es, die Probleme des Aliasing zu lösen. Der PCF-Algorithmus vergleicht mehrere Ergebnisse von Tiefentest, die Variance Shadow Maps führen eine Vorfilterung der Tiefenverteilung durch, die Cascaded Shadow Maps berechnen unterschiedliche Tiefenkarten und die Trapezoidal Shadow Maps erstellen die Tiefenkarte nur für den sichtbaren Bereich. Alle Algorithmen verfolgen das Ziel, schöne weiche Schatten mit möglichst geringem Aufwand zu erstellen. Abstract In 1978, Lance Williams published an algorithm which served as the basis for many other techniques. The shadow mapping algorithm is widely used to simulate realistic looking shadows in real time. This thesis presents different modified shadow mapping approaches and identifies their problems und benefits. The Percentage-Closer Filtering algorithm and the procedures Variance Shadow Maps and Cascaded Shadow Maps are being compared and three of them are being implemented.the main purpose of these procedures is to solve the problems of aliasing. The PCF algorithm compares the results from several depth tests, whereas the variance shadow maps runs a pre-filtering of the depth distribution. The Cascaded Shadow Maps calculates different depth maps and the Trapezoidal Shadow Maps create a depth map only for the visible range. The aim of all these mentioned algorithms is to create nice and soft shadows with the least effort possible. ii

4 Inhaltsverzeichnis 1 Einleitung Motivation Zielsetzung Inhalt dieser Arbeit Grundlagen Koordinaten Rendering und Transformationen Frustum Textur und Mapping Echtzeitfähigkeit Schatten Wofür werden Schatten benötigt? Licht und Schatten Schattenverfahren Shadow Mapping Verfahren Probleme Aliasing Lightbleeding Percentage Closer Filtering Variance Shadow Maps Idee Betrachtung des Verfahrens Cascaded Shadow Maps Konzept Betrachtung des Verfahrens Trapezoidal Shadow Maps Konzept Betrachtung des Verfahrens Implementierung Standard Shadow Mapping Variance Shadow Mapping Cascaded Shadow Mapping Ausblick 44 iii

5 Abbildungsverzeichnis 1 Transformation von Welt in Kamerakoordinaten[3ds] Kamerafrustum[fru] projektive Textur[pro] Tiefenkarte/ Depth Map [dep] klassische Textur [tex] Beziehungen der Koordinatensysteme[mat] verschiedene Lichtquellen[Fre06] links: Szene ohne Halbschatten, rechts: Szene mit erzeugten Halbschatten [phs] Shadow Volume[Kip06] Depth Map-Beispiel [pin] Punkt liegt im Schatten [PuR11] Punkt wird beleuchtet [PuR11] Beispiel der Aliasing-Artefakte[Lan] Entstehung des Aliasing[Lan] links: Problem der Selbstverschattung, rechts: Lösung [PuR11] Peter Panning Effekt und Selbstverschattungsproblem [Lau] Lightbleeding[Tuf] [Lau] [Lau] [Lau] Gaußfilter [gau] Beispiel eines separierbaren Filter [sep06] Lightbleeding[Tuf] Viewfrustum mit unterschiedlich aufgelösten Depth Maps [Tuf] Abtastfrequenz: Auge [CEC] Abtastfrequenz: Licht [CEC] Intervallübergänge [Pes11] far light- und near light frustum [Dim07] Ausschuss der Bounding Boxen [MT04] Vergleich zwischen ursprünglicher und trapezoidaler Perspektive [MT04] Mittellinie des Kamerafrustums [Res11] top- und baseline [Res11] Seitenlieniien [Res11] Veränderung der Focus Region [MT04] Punkte P L und q im Frustum [MT04] Schritte zur Berechnung der Transformationsmatrix [Res11] 33 iv

6 1 Einleitung 1.1 Motivation Die Computergrafik bedient sich einiger Elemente, welche die Attraktivität des angezeigten Bildes steigern sollen. Reflektionen, Schattierungen und Texturierungen sind nur einige davon. Viele Forscher entwickeln seit Jahren mit Erfolg Verfahren, um Bilder dem Fotorealismus näher zu bringen. Vor allem, weil sich der Absatzmarkt in der Spiele- und Filmindustrie sehr gut entwickelt hat, ist die synthetische Bilderzeugung sehr gefragt. Die Schatten haben in der virtuellen Welt eine besondere Rolle. Sie verbessern nicht nur den Realitätsgrad, sondern steigern auch die Wahrnehmung von Abständen und Lichtverhältnissen. Es existieren mittlerweile eine Reihe von Schattenberechnungs-Verfahren mit geometrischen oder bildbasierten Ansätzen. Sie haben alle ihre Vorteile und Probleme und führen zu sehr unterschiedlichen visuellen Ergebnissen. Da das visuelle Ergebnis im Vordergrund steht, und die physikalische Korrektheit im letztendlichen Bild kaum nachzuprüfen ist, können die Entwickler mit allen möglichen Ansatzpunkten arbeiten um neue Verfahren zu erschaffen. Wichtig bei den Verfahren ist jedoch nicht nur die Schönheit des Ergebnisses, sondern auch die Performance. Bei Computerspielen etwa, in denen sich das Szenario in Sekundenbruchteilen ändern kann, müssen Verfahren benutzt werden, welche in Echtzeit ein schönes Bild berechnen können, ohne den Spielfluss zu lindern. In den Verfahren muss also ein Weg gefunden werden, welcher sowohl eine gute Bildqualität als auch eine akzeptable Performance liefert. Da sich in den letzten Jahren die Hardware in der Computergraphik sehr rasant entwickelt hat, sind die Voraussetzungen dafür sehr gut. 1.2 Zielsetzung Ziel dieser Arbeit ist es, unterschiedliche Verfahren zur Schattenberechnung zu recherchieren und zur weiteren Vergleichbarkeit zu implementieren. Den Ausgangspunkt bildet das Standard-Verfahren der Shadow Maps mit der Erweiterung des Percentage-Closer-Filtering Algorithmus. Darauf aufbauend werden die Verfahren Variance Shadow Maps, Cascaded Shadow Maps und Trapezoidal Shadow Maps mit ihren Vor- und Nachteilen aufgearbeitet. Cascaded Shadow Maps und Variance Shadow Maps werden darüber hinaus implementiert. 1

7 1.3 Inhalt dieser Arbeit Die ersten Kapitel beschäftigen sich mit Begriffen und Techniken aus der Computergrafik, welche als Grundlagen zum weiteren Verständnis notwendig sind. Danach werden Schatten im Allgemeinen und Schatten in der Computergrafik näher erläutert. Darauf aufbauend werden die Verfahren, welche Schattenwürfe berechnen gezeigt. Als Basis wird das Shadow Mapping-Verfahren mit seinen Problemen dargelegt. Es folgen die Techniken Variance Shadow Maps, Cascaded Shadow Maps und Trapezoidal Shadow Maps. Nach Verfahrenserläuterungen und der Vorstellung der Implementierung folgt noch der Ausblick. 2

8 2 Grundlagen 2.1 Koordinaten In der dreidimensionalen Welt der Computergrafik sind zur Beschreibung eines Punktes im Raum drei Werte notwendig. Sie geben jeweils die absolute Position auf der x, y und z-achse an. Ein Vektor hingegen ist ein gerichteter Abstand zwischen zwei Punkten. Er wird in relativen Koordinaten angegeben. Der Normalenvektor oder auch die Normale ist ein Vektor der orthogonal auf einer Gerade oder einer Ebene steht. Ein Vertex bezeichnet einen Eckpunkt, welcher neben der Positionsangabe noch weitere Angaben wie die Farbe enthalten kann. [Möl] 2.2 Rendering und Transformationen Eine Szene ist in der Computergrafik eine Beschreibung von Objekten, Lichtquellen und der Kamera. Sie definiert zum Beispiel die Positionen, Blickrichtungen und Eigenschaften. Als Rendervorgang oder Rendern wird der Vorgang beschrieben, bei welchem auf der Grundlage der Szene ein zweidimensionales Bild erzeugt wird. Dieses Bild spiegelt die Ansicht des virtuellen Betrachters (der Kamera) wider. Bei den Modelview-Transformationen werden im ersten Schritt die Eckpunkte und Normalen eines Objekts vom Objektkoordinatensystem, welches die Geometrie der zu zeichnenden Objekte definiert, in das Weltkoordinatensystem transformiert. In diesem wird die Anordnung der Objekte in der virtuellen Welt beschrieben. Im nächsten Schritt erfolgt die Transformation in das Kamerakoordinatensystem. Jetzt befinden sich die Objekte in Koordinaten relativ zum virtuellen Betrachter. Siehe Abbildung 1. Im Bereich der Shadow Maps kann bei einer Modelview-Transformation auch das Lichtkoordinatensystem anstatt des Kamerakoordinatensystem als Zielort der Objekte genutzt werden. Die Projectionmatrix simuliert die perspektivische Projektion, die Abbildung eines Punktes im virtuellen Raum auf die Bildebene. Abbildung 1: Transformation von Welt in Kamerakoordinaten[3ds] 3

9 2.3 Frustum Um eine Szene aus verschiedenen Blickwinkeln zu visualisieren werden oft virtuelle Kameras verwendet. Das Setup dieser Kamera (in OpenGL) entscheidet, was auf dem Bildschirm zu sehen ist. Bei einer perspektivischen Projektion entscheiden die Einstellungen von Winkel und Entfernung der beiden Ebenen (near- und farplane) über das Volumen und bilden den in Abbildung 2 zu sehenden abgeschnittenen Pyramidenstumpf, der alle sichtbaren Objekte enthält. Abbildung 2: Kamerafrustum[fru] 2.4 Textur und Mapping Abbildung 3: projektive Textur[pro] Wenn Texturen für den Normalfall in der Computergrafik benutzt werde, so können sie zum Beispiel für einen Überzug bei 3D-Modellen dienen oder um einem Boden ein bestimmtes Muster zu geben. Bei 2D-Texturen handelt es sich geometrisch betrachtet um Bildfunktionen, die Punkte einer (x,y)-ebene auf (r,g,b)-farben abbilden. Jedem Punkt der Texturebene wird also genau ein Farbwert zugeordnet. [Inf] 4

10 Abbildung 4: Tiefenkarte/ Depth Map [dep] Abbildung 5: klassische Textur [tex] Oder im Sinne der für das Shadow Mapping notwendigen Texturen, der Tiefenwert. Die Kanäle(r,g,b) in welcher normalerweise die Farbwerte abgespeichert werden, werden bei der Tiefentextur genutzt um, Tiefeninformationen abzuspeichern. [Inf] Als Mapping wird das Setzen der Textur auf ein Objekt oder eine Fläche bezeichnet. Beim Vorgang der normalen Texturierung wird einem Objekt eine bestimmte Textur zugewiesen, und es wird festgelegt, welche Texturkoordinaten zu welchen Oberflächenkoordinaten gehören. Wird jedoch eine projektive Textur benutzt, so ist dies vergleichbar mit einem Bild, welches von einem Beamer ausgestrahlt wird. Der Beamer würde in diesem Fall ein Bild in die Richtung eines Raumes werfen und alle Objekte, welche als erstes von dem Lichtstrahl des Beamers getroffen werden, würden das ausgestrahlte Bild, je nach Materialeigenschaften, reflektieren. In der Welt der Computergrafik würde das dann in etwa folgendermaßen aussehen. Eine Textur wird auf eine Szene projiziert und wirft nun immer auf dieselbe Stelle ihre einzelnen Textur-Fragmente. Bewegt sich also ein Objekt in einer Szene, welche von einer projektiven Textur bestrahlt wird, so verändert sich auch ständig seine Textur. Um herauszufinden, wo genau in der Textur nachgeschaut werden muss, also welche Texturkoordinate zu welcher Objektkoordinate passt, müssen eine Reihe von Transformationen durchgeführt werden T e = P pv p Ve 1 (1) Formel 1 zeigt die Sequenz der einzelnen Transformationen, welche der Reihe nach angewandt werden. Die erste Transformation ist die inverse Modelviewmatrix der Kamera Ve 1, welche die Transformationen der Kamera rückgängig macht. Nun befindet sich der Eckpunkt im Ursprung. 5

11 Der nächste Schritt ist, mit der Modelviewmatrix des Lichtes V p den Punkt durch Translationen und Rotationen in die Lichtquelle zu verschieben. P p ist die dritte Transformation und steht für die Projektionsmatrix des Lichtes, welche das Frustum (die weißen Linien in Abbildung 3) definiert. Um in der Textur an die richtige Stelle zu gelangen, müssen nun noch als letztes die Koordinaten des Eckpunktes mit der in der Formel angegebenen Bias - Matrix verrechnet werden. Die Werte der Diagonalen beschreiben die Skalierung (per Multiplikation) und die in der letzten Spalte die Verschiebung (per Addition) um jeweils die Hälfte. Daraus berechnet sich aus dem Wertebereich von [-1.. 1] der für die Texturen erforderliche Wertebereich von [0.. 1]. [CEC] Abbildung 6: Beziehungen der Koordinatensysteme[mat] 2.5 Echtzeitfähigkeit Ein System gilt als echtzeitfähig, wenn es unter Betriebsbedingungen auf alle Ereignisse angemessen schnell reagieren kann. Es muss die zeitlich gestellten Anforderungen erfüllen. Zu beachten ist auch, dass zusätzlich zu dem Schattenalgorithmus andere Dinge, wie zum Beispiel die virtuelle Szene, berechnet werden müssen. [Fre06] 6

12 3 Schatten 3.1 Wofür werden Schatten benötigt? Durch die Darstellungen von Grafiken auf dem Bildschirm, auf dem Fernseher oder als Druck fehlen dem menschlichen Auge wichtige Informationen zu Beziehungen zwischen einzelnen Objekten. Die 2D Darstellung schluckt die Tiefeninformationen und stellt somit das menschliche Auge vor die Herausforderung, den Aufbau der Szene zu rekonstruieren. Sekundäre Tiefeninformationen, wie zum Beispiel Schatten, Größenverhältnisse oder Unschärfe, sind ein gutes Mittel, die Tiefendimension zu bestärken. Um das Begreifen der räumlichen Anordnung zu vereinfachen, benutzt man in der Computergrafik Schatten, um Objekte in der Szene zu verankern. Hierzu müssen nur die Schatten der einzelnen Objekte in der Szene auf der Wand oder dem Boden in Verhältnis gesetzt werden. Der Betrachter ist Schatten aus der natürlichen Umgebung gewohnt und kann sie schnell zuordnen. Er erkennt automatisch, aus welcher Richtung die Beleuchtung kommt. Darüber hinaus sind Schatten vor allem dazu da, um den Realismus einer Szene zu steigern. In der Computergrafik gibt es viele Verfahren, welche eine Szene schöner gestalten, indem sie die Objekte weniger künstlich erscheinen lassen. Reflektionen oder Beleuchtungsmodelle, welche die Selbstverschattung der Objekte bewirken sind nur einige von vielen Verfahren. Schatten bringen etwas mehr Atmosphäre in eine Szene, indem sie aus einer einheitlich hellen Umgebung eine unterschiedlich verschattete wirklichkeitsnähere Welt erschaffen. 3.2 Licht und Schatten Damit überhaupt ein Schatten entstehen kann, braucht eine Szene in der Computergrafik eine Lichtquelle, welche die Szene beleuchtet. Hierbei muss die Art der Lichtquelle (siehe Abbildung 7) unterschieden werden, weil sie für die Schatten abweichende Auswirkungen haben. Abbildung 7: verschiedene Lichtquellen[Fre06] 7

13 Es existieren zum einen Punktlichter, welche in alle Richtungen strahlen und sehr weit entfernte Lichtquellen (in der Realität die Sonne), welche durch parallel auf die Szene auftreffende Lichtstrahlen angenähert werden. Zum anderen Spotlights und Flächenlichter, welche im Laufe dieses Abschnitts noch erläutert werden.[kip06] Zwei weitere Begriffe sind zum Verständnis von Schatten ebenfalls sehr wichtig. Als Occluder wird das Objekt bezeichnet, welches die Strahlen der Lichtquelle unterbricht und den Schatten wirft. Als Receiver, wird das Objekt bezeichnet, auf welchen der Schatten fällt. [Bäc05] Der Schatten stellt eine Region dar welche von dem Licht nicht beleuchtet wird, bzw. von der Lichtquelle aus nicht sichtbar ist. Diese im Normalfall schwarze Fläche stellt eine zweidimensionale Silhouette des Occluders da. Die Skalierung und Verzerrung dieser Silhouette ist abhängig von Entfernung und Winkel zwischen Lichtquelle, Occluder und Receiver. In der Realität nehmen Lichtreflexionen und unterschiedliche Lichtquellen jeweils Einfluss auf das schattenwerfende Objekt und erzeugen weiche und ungleich helle Schatten. Im Vergleich zwischen der Beleuchtung der Computergrafik und natürlichen Lichtquellen ist die sogenannte flächige Lichtquelle der realen am nächsten. Weiche Schatten mit verlaufenden Schattenrändern entstehen. Für das in dieser Arbeit erläuterte Verfahren des Shadow Mapping werden Spotlights als Lichtquelle benutzt. Diese gerichteten Lichtquellen beleuchten die Szene durch einen auslaufenden Lichtkegel, ähnlich dem Scheinwerferlicht. Da diese Lichtquellen keine Ausdehnung haben, liegt ein Punkt entweder im Schatten oder er wird normal beleuchtet. Durch völliges Fehlen von Licht entsteht ein Kernschatten oder auch Umbra mit harten Schattenkanten. Weiche Schatten können nur entstehen, wenn es einen weichen Übergang zwischen Schatten und beleuchtetem Bereich gibt. Dies ist der sogenannte Halbschatten oder auch Penumbra. [Kam] Abbildung 8: links: Szene ohne Halbschatten, rechts: Szene mit erzeugten Halbschatten [phs] 8

14 Theoretisch sind sogenannte Halbschatten in der Computergrafik nur durch Lichtquellen möglich, welche aus unterschiedlichen Positionen Licht werfen. Ein Beispiel ist eine Vielzahl von Punktlichtquellen, welche eine flächige Lichtquelle approximieren. In Abbildung 8 sind zwei Szenarien zu sehen. In dem rechten Szenario entsteht ein Halbschatten, weil der Bereich zwar für die eine Lichtquelle verdeckt liegt, die zweite ihn jedoch mit ihrem Lichtstrahl trifft. Diese Region liegt von der Menge der Lichteinstrahlung also zwischen dem eigentlichen Kernschatten und den voll beleuchteten Bereichen. Eine einfache Überlagerung mehrerer Schatten ist die einfachste Lösung um weiche Schatten darzustellen. [Kip06][Fre06] Durch Performance-Beeinträchtigungen die bei der Simulation von mehreren Lichtquellen entstehen, wurden Verfahren entwickelt, welche die sogenannten Softshadows approximieren können. Im Verlaufe dieser Arbeit werden solche Verfahren aufgezeigt. 3.3 Schattenverfahren In diesem Kapitel werden ein paar Verfahren aufgezeigt welche einen komplett anderen Ansatz als das Shadow Mapping-Verfahren haben Zwei Verfahren, die sich nur für größere ebene Flächen eignen, sind Planar Shadows und Pre Rendered Shadows. Planar Shadows ist ein sehr simples Verfahren, um Schatten zu erstellen. Hierbei wird eine schwarze Projektion des Objektes auf die Grundplatte gezeichnet. Bei den Pre Rendered Shadows berechnet ein externes Programm die Schatten vor, und diese werden dann als Textur an den gewünschten Stellen in der Szene eingefügt. Für statische Szenen ohne veränderte Lichtverhältnisse ist dies eine schnelle und leicht zu implementierende Möglichkeit. Jedoch kann der Speicheraufwand bei vielen Texturen schnell hoch werden. Weitere Pre-Prozessingmethoden wie das Scanlinien- Verfahren fehlen hier aufgrund der mangelnden Vergleichbarkeit zu den in dieser Arbeit bearbeiteten Shadow Maps. Bei dem Shadow Volumes (deutsch: Schattenvolumen) Konzept von Crow [Cro77] handelt es sich um einen geometrischen Ansatz, um Schatten zu erzeugen. Beim ersten Schritt des Verfahrens werden die Silhouetten des Occluders gesucht. In diesem Fall müssen die benachbarten Dreiecke der Silhouette zum Licht unterschiedlich ausgerichtet sein. Ist das eine Dreieck dem Licht zu- und das andere dem Licht abgewandt, so ist die Kante zwischen den Dreiecken die Silhouette zur Berechnung des Schattenvolumens. Als nächstes werden die gefundenen Silhouetten benutzt, um Halbebenen von der Lichtquelle aus aufzuspannen. Diese Ebenen bilden zusammengefasst dann das dreidimensionale Schattenvolumen auf der Rückseite des Occluders. Nun werden die Schattenpolygone wie Objekte gerendert. [Kam] Um andere Punkte zu überprüfen, ob sie sich innerhalb oder außerhalb eines Schattenvolumens befinden, wird ein Strahl vom Auge aus projiziert 9

15 Abbildung 9: Shadow Volume[Kip06] und verfolgt. Tritt der Strahl des Betrachters auf dem Weg zu dem zu kontrollierenden Punkt in ein Shadow Volume ein, so inkrementiert er einen Zähler, tritt er wieder aus so dekrementiert er den Zähler wieder. ( siehe Abbildung 9) Ist der Zähler am Ende positiv, so befindet sich der Betrachter innerhalb des Schattens. Das richtige Zählen ist vor allem bei komplexeren Szenen mit vielen Occludern wichtig. Probleme können unter anderem entstehen wenn der Betrachter sich in einem Schattenvolumen aufhält oder Artefakte dadurch entstehen, dass Schattenvolumen am Sichtkörper abgeschnitten werden. Genauere Beschreibung und Maßnahmen können in [EK02] nachgelesen werden. [Kip06] Der große Vorteil des Verfahrens mit Shadow Volumes sind die sehr präzisen Schatten. Jedoch ist dieses Verfahren von der Anzahl der Polygone der Objekte abhängig und kann bei komplexeren Szenen schnell leistungsschwach werden. Ein fairer Vergleich von Shadow Volumes zu den in dieser Arbeit vorgestellten Shadow Maps ist nur schwer möglich. 10

16 4 Shadow Mapping Abbildung 10: Depth Map-Beispiel [pin] Williams [Wil78] beschrieb den Algorithmus der Shadow Maps bereits Heute wird er mit mehreren Verbesserungen und Implementierungen auch für Berechnungen in Echtzeit verwendet. Shadow Mapping Verfahren sind sogar mittlerweile die am weitesten verbreitete Technik um in Echtzeit einen realistisch aussehenden Schattenwurf zu simulieren. Bei der Schattenabbildung (Shadow Mapping) wird für jedes von der Kamera aus sichtbare Pixel überprüft ob es auch vom Licht aus sichtbar ist. Falls nicht muss es verschattet werden. Computerspiele und animierte Filme greifen schon seit einiger Zeit auf dieses Verfahren zurück. Dieses Verfahren ist die Grundlage für eine Vielzahl von Verfahren. Das Prinzip bleibt in dem meisten Fällen gleich, wird jedoch den heutigen Hardware-Standards angeglichen und verbessert. Die im Verlauf dieser Arbeit vorgestellten Erweiterungen beheben vor allem die im Standard Algorithmus entstehenden Artefakte und verbessern die Schattenkanten. Das Anwendungsgebiet der Shadow Maps ist sehr vielseitig. Am häufigsten sind sie in virtuellen dreidimensionalen Welten zu finden. Des Weiteren wird sie jedoch auch als Datenstruktur zur Komprimierung, wie bei den Coherent Shadow Maps [TRM07] genutzt. Ein weiteres interessantes Anwendungsgebiet in der Grafik ist zum Beispiel das Shadow Mapping für Haare, Rauch oder ähnliches, welches die Deep Shadow Maps [LV00] realisieren. Die besten Ergebnisse erzielen diejenigen Verfahren die eine Vorspeicherung der Shadow Map und mehrere Lichtquellen benutzen. Aufgrund des hohen Speicheraufwands sind diese für die meisten Echtzeitgrafiken jedoch zu kostspielig. Die meisten aller Shadow Map- Algorithmen benutzen bei ihren Verfahren unterschiedliche Bildverarbeitungs-Methoden, 11

17 Abbildung 11: Punkt liegt im Schatten Abbildung 12: Punkt wird beleuchtet [PuR11] [PuR11] wie zum Beispiel Filter um ihre Resultate zu verbessern. Durch vorimplementierte Algorithmen auf der modernen Grafikhardware entstehen viele neue Möglichkeiten und Performance-Verbesserungen. 4.1 Verfahren Der Tiefentest besteht aus mehreren Schritten. Zunächst muss die Kamera die Rolle des Lichtes übernehmen. Hierzu wird die Kamera mit einer Modelviewmatrix auf die Position des Lichtes transformiert und die Projektionsmatrix auf jene des Lichtes gesetzt. Nun hat die Kamera sowohl die Position und Blickrichtung des Lichtes eingenommen, als auch die Parameter für das Frustum (near- / far-ebenen und Winkel) übernommen. Beim darauffolgenden Rendervorgang wird die komplette Szene von der Lichtquelle aus gerendert. Beim Zeichnen der Szene werden nun die Entfernungen von der Kamera zu jedem einzelnen gezeichneten Vertex in einer Textur abgespeichert. Diese Ansammlung von den einzelnen Tiefenwerten ist dann die Tiefentextur. In den in dieser Arbeit vorgestellten Verfahren wird diese Textur auch einfach Depth Map genannt. Anschließend wird das Verfahren der projektiven Textur angewandt. Die Szene wird aus Sicht der Kamera gerendert und jeder Punkt wird von Kamerakoordinaten in Lichtkoordinaten gesetzt, um dort mit dem Wert in der Textur verglichen zu werden. Der Wert des transformierten Punktes, welcher die Tiefeninformation enthält, ist genau der Wert, welcher die Position auf der z-achse wiederspiegelt. Der Test liefert nun als Ergebnis, ob sich der Punkt im Schatten befindet oder nicht. Siehe Abbildungen 11 und 12 12

18 4.2 Probleme Aliasing Der Alias-Effekt in der Computergrafik bezeichnet Fehler, welche durch falsches Abtasten von Bildern entstehen können. In der Welt der Schatten bezeichnen dieses Problem meist gezackte Schatten an den Schattenrändern. Abbildung 13: Beispiel der Aliasing-Artefakte[Lan] Dieser Treppeneffekt entsteht, wenn verschiedene Pixel einer Szene auf denselben Punkt in der Tiefentextur transformiert werden. Wenn diese Tiefentextur zu klein ist, wird somit beim Tiefentest mehreren Pixeln in einem kleinen Bereich der selbe Schattenwert zugewiesen. Der Grund dafür liegt in der Auflösung der Tiefentextur, denn diese bestimmt die sogenannte Sampling- oder auch Abtastrate. Ist diese zu klein, so überdeckt ein sogenannter Texel (oder auch Textur-Pixel) eine große Anzahl von Pixeln. Wenn die Shadow Map indes zu groß ist werden Texel in der Shadow Map übersprungen, und schimmernde Artefakte entstehen. Zusätzlich wird die Performance durch die hohe Auflösung unnötig beeinträchtigt. Die höchste Qualität der Schatten entsteht, wenn es ein eins zu eins Verhältnis zwischen der Größe der Pixel, die abgefragt werden, und der Texel in den Texturen gibt. Das Mapping kann dann am saubersten arbeiten, weil die Zuordnungen am besten passen. Abtastpunkte von Kamera und Lichtquelle stimmen ohne besondere Einstellungen jedoch selten überein.[tuf][lau] Angenommen, ein Pixel der Shadow Map hat eine Kantenlänge d s. Der Schatten, den dieser Pixel wirft, hat dann einen Anteil d des Bildschirms. Sichtbar in Abbildung 14. Der Anteil von d ist abhängig von der Entfernung zum Betrachter r i, der Entfernung zur Kamera r s und der Ausrichtung (in der Computergrafik die Normale), beschrieben in α und β des überprüften Objekts. Das Verhältnis von d und d i, der Pixelgröße des Ab- 13

19 Abbildung 14: Entstehung des Aliasing[Lan] bildes, sollte -wie oben beschrieben- konstant sein, um die möglichen Artefakte zu verhindern. Wenn d größer ist als d i, so entsteht eine Unterabtastung. [Lan] Zwei Begriffe werden des Weiteren unterschieden. Vom perspektivischen Aliasing wird gesprochen, wenn die Lichtquelle und die Kamera weit voneinander entfernt sind, sodass die Shadow Map eine schlechte Auflösung nahe der Kamera hat. Dies kann verhindert werden, indem der Faktor r s /r i möglichst konstant ist. Beim projektiven Aliasing strahlt das Licht aus einem sehr flachen Winkel auf die Szene und ermöglicht somit sehr wenige Abtastpunkte zur Schattenberechnung. Dieser Effekt tritt also auf, wenn cos (β) / cos (α) sehr hoch ist. Einige neuere Varianten von Shadow Map-Algorithmen versuchen konkret die unterschiedlichen Diskretisierungen der Kamera und Lichtebene zu beheben. Ein Beispiel hierfür ist die im Laufe der Arbeit vorgestellte Cascaded Shadow Map.[Tuf] Als Self-Shadow Aliasing wird die zusätzliche Selbstverschattung bezeichnet, welche durch Shadow Mapping-Algorithmen entstehen kann. Hierbei werden Pixel fälschlicherweise als im Schatten liegend eingestuft, da die Genauigkeit der Tiefenmap begrenzt ist, und die Oberfläche nicht immer an allen Punkten abgetastet wird. In Abbildung 15 ist das Problem zu erkennen. Die blauen Bereiche werden nicht verschattet, während die Schwarzen Bereiche im Vergleich zum Referenzpunkt im Schatten liegen. Durch eine Verzerrung (engl. bias) kann das Problem vermieden werden. (Siehe auch Polygon Offset im Programmierteil) Hierfür werden, gut zu erkennen in Abbildung 15, die Tiefenwerte pro Pixel nach hinten geschoben. Die Verschiebung sollte jedoch nicht zu stark sein, weil die Schatten sich sonst vom Objekt entfernen und nicht mehr direkt anliegen. Das Entstehen dieser Lücke wird im Buch GPU Gems3 [Lau] als Peter Panning 14

20 Abbildung 15: links: Problem der Selbstverschattung, rechts: Lösung [PuR11] bezeichnet. [Lau] [Tuf] Lightbleeding Lightbleeding sind die Artefakte, welche in Abbildung 17 auf der linken Seite zu sehen sind. Das Problem tritt in den Variance Shadow Maps auf. Es kann entstehen wenn sich die Schatten mehrerer Occluder überlappen. In dem später folgenden Artikel über diese werden die Entstehung und Lösungsmöglichkeiten erläutert. [Tuf] 4.3 Percentage Closer Filtering Als gute Lösung gegen die Aliasing-Probleme und zur Erstellung von weichen Schattenkanten wurde bereits 1987 das Percentage-Closer-Filtering Verfahren [WTRC87] als eine Erweiterung zum Standard Algorithmus vorgestellt. Es wirkt gegen das Treppenstufenproblem an den Schattenrändern, indem die Schattenkanten verschwimmen und somit das Aliasing verstecken. Da die Zustände schattiert und nicht schattiert, welche das Resultat des Shadow Map - Tiefentests sind, für weiche Schattenkanten ohne Aliasing nicht ausreichen, wird der Tiefentest nicht nur für den aktuellen Eckpunkt durchgeführt. In der näheren Umgebung werden nun ebenfalls Tiefentests, sogenannte Samples durchgeführt. Die Anzahl der Samples und der Abstand zu dem aktuellen Pixel sind von der Implementation eines Filters abhängig. Filter stellen Operationen dar, die ein Eingangsbild mit Hilfe einer mathematischen Abbildung in ein Ausgabebild transformieren. Je größer der Abstand und die Anzahl der Samples, umso weicher, 15

21 Abbildung 16: Peter Panning Effekt und Selbstverschattungsproblem [Lau] Abbildung 17: Lightbleeding[Tuf] 16

22 Abbildung 18: [Lau] Abbildung 19: [Lau] Abbildung 20: [Lau] aber auch verschwommener werden die Kanten der Schatten. [WTRC87] [Fre06] In Abbildung 18 ist das binäre Ergebnis eines Schattenvergleichs, also der Ergebnisse von Tiefentests, angedeutet. Das bedeutet, dass alle Pixel mit dem Wert 0 im Schatten liegen, alle mit dem Wert 1 nicht. Der blau eingefärbte Bereich ist die Region, in welcher der Percentage Closer Filtering Algorithmus arbeitet. In diesem Fall ist es eine Filterregion von 5 mal 5 Samples. Die eingefärbte Abbildung 19 zeigt deutlich die unerwünschten Zacken, welche entstehen können. Im Percentage-Closer-Filtering-Algorithmus werden nun alle sich im blauen Bereich befindenden Werte addiert und der Durchschnittswert, ein Wert zwischen 0 (schwarz) und 1 (weiß) berechnet, welcher den Grauwert des Pixels bestimmt.in dem aufgeführten Beispiel liegen 14 von den in der Filterregion enthaltenen 25 Samples im Schatten, welches einen Grauwertanteil von 0.56 bedeutet, ein mittleres Grau angedeutet in Abbildung 20. Im Implementierungsteil des PCF ist ein Beispiel für einen angewandten Algorithmus zu finden. 17

23 5 Variance Shadow Maps Nachdem Williams 1978 [Wil78] die Shadow Maps als effizienten Algorithmus zur Schattenberechnung eingeführt hatte, folgten viele weitere Verfahren, welche auf diesen aufbauten. Der hier vorgestellte Variance Shadow Maps Algorithmus [Donnelly und Lauritzen][DL06] greift in seinem Verfahren auf Ergebnisse der Deep Shadow Maps von Lokovic und Veach [2000] [LV00] und des Percentage Closer Algorithmus von Reeves 1987 [WTRC87] zurück. Die Deep Shadow Maps wurden eher für die Darstellung von dichten Objekten wie Pelzen oder Haaren entwickelt und sind für Programmierungen für die Grafikhardware nicht geeignet. Der entwickelte Weg der Tiefen-Speicherung jedoch ist für das Variance Shadow Mapping eine brauchbare Entwicklung. Es werden nicht, wie beim Standard Shadow Mapping, einzelne Tiefen pro Pixel abgespeichert, sondern die Tiefenverteilung. Da die üblichen Filtertechniken, welche bei Farbtexturen angewandt werden können bei Tiefenwerten nicht ohne Probleme benutzt werden dürfen, hatte Reeves 1987 mit dem Percentage Closer Algorithmus eine Möglichkeit gefunden, die Schattenkarten auf eine andere Weise zu filtern. Der Algorithmus filterte die Ergebnisse von mehreren Schattentests von Pixeln in der Umgebung. Aufgrund der aufwendigen Schattenvergleiche ist die Größe des Filters in diesem Fall jedoch begrenzt. Donnelly und Lauritzen haben ein Verfahren entwickelt, bei welchem es nur einen Schattenvergleich bedarf, und die Filtergröße nur eine geringfügige Rolle spielt. 5.1 Idee Das Hauptaugenmerk der Variance Shadow Maps liegt auf dem Aliasing Problem und dem Erstellen von weicheren Schattenkanten. Das richtige Filtern ist eine gute Methode um die gezackten Schatten zu verhindern. Im Gegensatz zu dem Standard Shadow Mapping Verfahren, in welchem die Tiefenwerte nur für den Vergleich zwischen Tiefenkarte und der Szene aus Kamerasicht benutzt werden, werden sie bei dem VSM bearbeitet. 5.2 Betrachtung des Verfahrens Zunächst wird aus der Perspektive des Lichtes nicht nur die normale, sondern auch die quadrierte Tiefe in die Schattenkarte abgespeichert. Hierzu werden die unterschiedlichen Kanäle der Textur genutzt. Der nächste Schritt ist die Filterung. Moderne Grafikhardware liefert hierbei durch integrierte Methoden große Hilfe, um den Filtervorgang zu beschleunigen. Diese voreingebauten Filterfunktionen können im VSM im Gegensatz zum PCF ausgenutzt werden, um Performance zu sparen. Es können sogenannte Prefiltering-Techniken, wie Mipmaps oder Summed Area Tables, zum Einsatz kommen, welche die Speicherung und Darstellung von Texturen 18

24 verbessern. Um die Bildqualität zu steigern besteht daraufhin die Möglichkeit, durch lineare Anti-Aliasing Techniken - wie die Interpolationen- Zwischenwerte auf der Textur zu berechnen. Abbildung 21: Gaußfilter [gau] Zusätzlich wird die Tiefenkarte von einem Filter wie dem Gaußschen weichgezeichnet. Dieser führt für jeden Pixel eine Berechnung mit den Werten der anliegenden Region durch. Dabei fließen die Daten nach der Gaußverteilung, zu sehen in Abbildung 21 mit unterschiedlichem Gewicht in die Berechnung des Wertes ein. Der Pixel selbst hat den größten Anteil (der höchste Punkt im Diagramm). Vom in der Abbildung roten Bereich, welcher die dicht anliegenden Pixel beinhaltet, nimmt nach außen hin dann der Einfluss auf das Ergebnis stetig ab. Der dunkelblaue Bereich fließt dann schließlich nicht mehr in die Berechnung des Wertes ein. Abbildung 22: Beispiel eines separierbaren Filter [sep06] Das besonders Vorteilhafte des Gaußfilters für die VSM ist, dass er separierbar ist, also in zwei Schritte aufgeteilt werden kann. Das erlaubt die Ausführung der Filteroperation -an Stelle einer zweidimensionalen Maskeals eine Abfolge zweier Filteroperationen mit jeweils einer eindimensionalen Maske für die vertikale bzw. horizontale Richtung. In Abbildung 22 ist bei einem kleinen Filter bereits eine Aufwands-Verbesserung ersichtlich. In der linken Maske werden neun Bildpunkte mit dem Gewichtsfaktor der Maske multipliziert, in dem separierten auf der rechten Seite nur sechs. Der Rechenaufwand O wird also von O(n 2 ) -n gibt die Größe der Maske an- auf O(2n) gesetzt. Sind die Filtermasken größer, so entsteht ein enormer Performancegewinn. Ein konkretes Beispiel des Gaußfilters ist im Implementationsteil zu finden. [DL06][Tuf] 19

25 Aus der in der Textur abgespeicherten Tiefe und deren quadriertem Wert entstehen durch die Filterung nun die Momente M 1 und M 2 : i i i i xp(x)dx = M 1 (2) x 2 p(x)dx = M 2 (3) M1 ist das Integral einer Filtermaske mit der Größe i über x, dem Tiefenwert an dem aktuellen Texel multipliziert mit seiner Gewichtung p(x). Die Filtermaske muss je nach gewünschtem Ergebnis in ihrer Größe angepasst werden. Im weiteren Verfahren des VSM wird nun die Varianz σ 2 berechnet, welche die Variabilität einer Verteilung angibt. Sie entsteht durch die Subtraktion des quadrierten ersten Moments vom zweiten Moment. σ 2 = M 2 M 2 1 (4) Durch die Varianz σ 2 und dem Mittelwert µ, welcher dem ersten Moment entspricht, ist es nun möglich, eine obere Schranke herzuleiten, mit welcher Wahrscheinlichkeit ein gemessenes x größer oder gleich einem vorgegebenem Wert t ist. Die Ungleichung von Chebychev gibt eine solche obere Schranke an: P (x t) p max (t) = σ 2 σ 2 + (t µ) 2 (5) Hierbei muss folgende Bedingungen erfüllt sein: t > µ. Ist dies nicht der Fall so ist p max (t) = 1. Die Wahrscheinlichkeit P(x t) repräsentiert das Verhältnis der Pixel der Filter Region, die beim Tiefenvergleich scheitern, zur Gesamtmenge. Also den Prozentanteil der Pixel, deren Tiefenwert größer ist als der zu vergleichende Wert des von der Kamera aus betrachteten Punkts. Der in dieser Formel berechnete Wert, stellt nur eine obere Schranke dar und nicht den korrekten Wert. Jedoch ermittelt er eine brauchbare Approximation und nähert sich der wirklichen Okklusion mit einem ungefähreren Wert gut an. [DL06][Tuf] Zu einem Problem kommt es bei überlappenden Schatten. VSM schattiert die Schattenkanten basierend auf den Unterschieden zwischen den Tiefenwerten. Deshalb entstehen Unterschiede zwischen Tiefenwerten im Zentrum eines Bereichs, der eigentlich verschattet sein sollte. Das Problem des Lightbleeding(siehe Abbildungen 17 und 23) entsteht. Eine mögliche Lösung ist es, die herausgefundene obere Grenze mit einem magischen Term [Tuf]zu potenzieren. Für diesen Term existiert allerdings keine Herleitung. Er muss durch Ausprobieren herausgefunden werden. Zu berücksichtigen ist dabei allerdings auch, dass die Unschärfe 20

26 an den Schattenrändern gedämpft wird bzw. die Halbschatten abgedunkelt werden. Auch die Reduzierung auf kleinere Filtermasken bringt eine Verbesserung, weil jedes Artefakt höchstens so groß wie sein Filter sein kann. Einfache Lösungen zur Beseitigung oder Einschränkung des Problems sind, die Auflösungen der Texturen zu erhöhen oder die Überschneidungen von Schatten zu verhindern. Bei mehreren Lichtquellen würde sich zudem der Kontrast verhindern. [DL06] Sind diese nicht zu verhindern, so bieten die Layerd Variance Shadow Maps [ML08], welche eine Erweiterung der VSM darstellen, eine Lösung für dieses Problem. Sie teilen den Tiefenbereichs in mehrere Schichten auf. [Tuf] Abbildung 23: Lightbleeding[Tuf] In Abblidung 23 entsteht das größte Lightbleeding, wenn das Verhältnis von a zu b sehr groß ist. Den VSM ähnliche Verfahren, wie die Convolution Shadow Maps [KP07] und die Exponential Shadow Maps [TAK08], richten sich ebenfalls gegen die Diskretisierungsartefakte. Sie nutzen dabei unterschiedliche, durch die Grafikkarte mögliche Techniken aus. Weniger Speicherverbrauch und weniger Aliasing sind das Ergebnis. Die VSM lösen das Aliasing-Problem durch minimalen zusätzlichen Speicherplatz und Rechenbedarf und werden in Zukunft wesentlich schneller als das PCF- Verfahren laufen. Der Grund hierfür ist, dass die VSM die Fähigkeiten der Grafikkarten ausnutzen, und sich die Grafikkartenleistungen schneller erhöhen werden als die Auflösungen von Texturen. 21

27 6 Cascaded Shadow Maps Perspektivisches Aliasing an den Schattenkanten ist, wie schon angesprochen, eines der schwierigsten Probleme, welches Shadow Maps zu überwinden haben. In der Praxis neigen die Cascaded Shadow Maps in dieser Hinsicht zu guten Ergebnissen und werden deswegen häufig in modernen Computerspielen genutzt. 6.1 Konzept Das Konzept der Cascaded Shadow Maps ist es, für verschiedene Bereiche des Kamerafrustums unterschiedlich hoch aufgelöste Shadow Maps zu nutzen. Für weit entfernte Objekte reicht oft eine sehr sparsame Auflösung aus, ohne dass der Betrachter es merkt, wohingegen kaum eine 4096x4096 hohe Auflösung ausreicht, wenn die Kamera sehr nah an den Objekten ist. Um diesen Problemen entgegenzuwirken, wird der Sichtkegel der Kamera in Subfrusta aufgeteilt, für welche jeweils eine eigene unterschiedlich aufgelöste Shadow Map erstellt wird. Aus diesen Subfrusta und der Lichtquelle wird dann ein neues Frustum gebildet. Hierbei muss darauf geachtet werden, dass alle Objekte, welche einen Schatten in diesen Teil der Szene Szene werfen könnten, berücksichtigt werden. Hierfür muss die nearplane des Frustums nah genug an das Licht gesetzt werden. Alles außerhalb der einzelnen erstellten Frusta sollte, unter Berücksichtigung der Übergangsregionen der Kaskaden, nicht gerendert werden. [Dim07] Abbildung 24: Viewfrustum mit unterschiedlich aufgelösten Depth Maps [Tuf] Beim Standard Shadow Mapping mit nur einer Textur ist ein Mapping zwischen Eye-Space Pixeln und Shadow Map- Texeln schwierig, weil die Texel auf der Shadow Map alle gleich groß sind und nicht zu allen Pixeln 22

28 gleich gut passen. Ein gutes durchgängiges Mapping kann somit nur entstehen, wenn mehrere Shadow Maps vorhanden sind. Deshalb eignen sich die Cascaded Shadow Maps ideal gegen Perspective Aliasing. [Pes11] 6.2 Betrachtung des Verfahrens Der erste Schritt des Algorithmusses ist es, die einzelnen Teilfrusta des View-Frustums der Kamera zu berechnen. Hierzu werden als erstes die near- und farplanes der einzelnen Teilfrusta ausgerechnet und darauf aufbauend die jeweiligen acht Eckpunkte. Für die exakte Partitionierung des Frustums gibt es unterschiedliche Möglichkeiten, welche je nach Szene und Perspektive ihre Vor und Nachteile mit sich bringen. Als erstes wird die Anzahl der Segmentierungen festgelegt, in welche das Frustum aufgeteilt werden soll. Hierbei spielt vor allem die Perspektive und die Entfernung zu den Objekten eine Rolle. Sind zum Beispiel Objekte sowohl im Vordergrund als auch im Hintergrund gut sichtbar, und das Spektrum der z-werte (Tiefenwerte) ist somit sehr hoch so sollten mehr Aufteilungen genutzt werden, als wenn eine komplette Szene aus großer Entfernung (wie bei einem Flugsimulator) beobachtet wird und sich die Tiefenwerte nicht sehr stark unterscheiden. [Pes11] Bei mehreren Segmenten stellt sich die Frage der Aufteilung und der Größe der einzelnen Teilfrusta. Die Objekte, welche nah am Betrachter liegen, sollen nach dem Prinzip der Cascaded Shadow Maps mit einer hoch aufgelösten Shadow Map die detailreichsten Schatten werfen. Für die weit entfernten Objekte hingegen soll es hingegen ausreichen, Schatten nur anzudeuten, ohne dass der Betrachter die niedrigere Qualität(kleinere Shadow Map) erkennt. Aufgrund des durch niedriger aufgelöste Shadow Maps entstehenden Performance-Gewinn, sollten beim Cascaded Shadow Maps verfahren die höher aufgelösten Shadow Maps den kleineren Anteil am Kamerafrustum belegen. Jedoch kann auch schon mit einer Drittelung in gleich große Teile mit unterschiedlichen Schattenkarten ein Erfolg erzielt werden. Ein bewährtes Teilungsschema kombiniert sich aus einer gleichförmigen und einer logarithmischen Zerlegung des Frustums. [Pes11] Im Artikel über die Aliasingartefakte wurde die Formel d = d s r s r i cos(β) cos(α) (6) erläutert. Das Verhältnis zwischen Pixelgröße des Abbildes und Anteil am BIldschirm (d) sollte demnach möglichst konstant sein. Zur Erinnerung: Wenn d im Vergleich zu groß ist entsteht eine Unterabtastung. Darüber hinaus ist es sinnvoll, die Licht und Blickrichtung bzw. die Winkel α und β der Szene in der Implementierung zu vergleichen, damit die Kaskadenüberlappung nicht zu groß wird. Je paralleler die Blick- und 23

29 Abbildung 25: Abtastfrequenz: [CEC] Auge Abbildung 26: Abtastfrequenz: [CEC] Licht Lichtrichtungen sind, umso mehr nehmen die Überlappungen der Kaskaden zu. Handelt es sich beispielsweise um eine Draufsicht und die beiden Richtungen sind orthogonal zueinander, so ist nur eine geringe Überlappung vorhanden. Wenn allerdings die Winkel der Blickrichtungen fast identisch sind, so kann es zu dem sogenannten dueling frusta -Problem kommen. Dieses stellt die meisten Shadow Map-Algorithmen vor große Probleme und es ist normal, das Vorkommen dieser Situation durch Constraints bei den Winkelverhältnissen zu beschränken. In den Abbildungen 25 und 26 werden die großen Unterschiede in der Abtastfrequenz deutlich. Die Farben spiegeln die Samplingrate wieder. Blau hat die höchste und Rot die niedrigste Frequenz. Die rechte Abbildung 26 zeigt im Gegensatz zur linken nur einen sehr kleinen blauen Anteil mit der höchsten Frequenz. [Tuf][Pes11] Unter der Berücksichtigung dieser Probleme wird im Paper Parallelsplit shadow maps for large-scale virtual environments, von Zhang [FZL06] die Lösung in einer exponentiellen Verteilung mit folgender Formel beschrieben: z i = n(f/n) i N (7) Hierbei wird der z-wert für die Grenze an der i-ten Stelle ausgerechnet. n und f sind die vorgegebenen near und far-ebenen, des zu unterteilenden Frustums. N die Anzahl der gewünschten Aufteilungen. Eine andere in dieser Arbeit nicht bearbeitete Lösung ist es, die Abgrenzungen der Teilfrusta so einzustellen, dass alle die gleiche nearplane haben, um eine maximale Größe des View-Frustums festzulegen. Diese Möglichkeit ist nicht so anfällig für das duelling frusta -Problem und vermeidet auch mögliche Flackerartefakte an den Schattenkanten bei Änderung der orthographischen Projektion. Jedoch verschwendet sie durch die immer gleich bleibende nearplane mit zunehmender Anzahl von Unterteilungen enorm viel Auflösung. Ein weiteres Problem sind die Intervallübergänge in der 24

30 Szene zwischen den einzelnen Shadow Maps. Aufgrund der unterschiedlich hohen Auflösungen der Schattenkarten und der durch das Mapping zwischen Shadow Map Texeln und Eye-Space Pixeln resultierenden Schattenqualität, werden die Übergänge sichtbar. [Lau] Abbildung 27: Intervallübergänge [Pes11] Abbildung 27 zeigt die Diskrepanz zwischen den beiden Frusta. Je geringer die Unterschiede zwischen den Schattenkarten sind, umso kleiner ist das Problem der Intervallübergänge. Wenn die Anzahl der Aufteilungen sehr hoch ist, sind die Unterschiede kaum noch sichtbar. Existieren hingegen nur zwei Karten so kann der Übergang sehr hart sein. Hierbei spielt die Entfernung zum ersten Übergang, aufgrund der besten Sichtbarkeit, eine vordergründige Rolle. Weil sich die Anzahl der Aufteilungen häufig auf wenige beschränkt, wird beim CSM ein linearer Term eingeführt, welcher dem Effekt entgegenwirkt. [Dim07] z i = λn(f/n) i i N + (1 λ)(n + ( )(f n)) (8) N Hierbei ist λ der Parameter für die Intensität der Korrektur. Er kann in den meisten Fällen dazu führen, dass die Unterschiede kaum mehr sichtbar sind. Eine weitere Möglichkeit ist es, den Bereich zwischen zwei Kaskaden besonders zu behandeln. Das Percentage Closer- Filtering Verfahren oder ein Filter wie beim Variance Shadow Mapping wären eine Möglichkeit, weiche Schatten in diesem Bereich zu erstellen. Sie würden jedoch nicht zum gewünschten Ergebnis führen, da sie durch die unterschiedlichen Auflösungen in den Schattenkarten eine Naht hinterlassen würden. Besser funktioniert es, wenn im erforderlichen Bereich für beide anliegenden Shadow Maps der Schattentest durchgeführt wird, und die beiden herausgefundenen Tiefenwerte linear interpoliert werden. Je nach Szene sollte der Bereich mit unterschiedlicher Pixel-Bandbreite gewählt werden, um 25

31 gute Ergebnisse zu erzielen. Wenn der Bereich größer gewählt wird, können bessere Ergebnisse erzielt werden, jedoch wird dementsprechend auch Performance eingebüßt. [Tuf] Nachdem die nearplanes und farplanes der neuen Teilfrusta bekannt sind, Werden die Kegelstümpfe mit ihrer Hilfe und der aktuellen Kamera- Position und Richtung ausgerechnet. Der Kegelstumpf besteht nun aus seinen acht Eckpunkten (Berechnungsformel folgt im Implementationsteil). Als nächstes wird die Modelviewmatrix des Lichts so eingestellt, dass sie in die Richtung der Position des Lichtes schaut, und eine allgemeine Projectionmatrix wird gesetzt. Als Nächstes wird nun durch die berechneten Eckpunkte der einzelnen Teilfrusta der Kamera jeweils eine sogenannte crop Matrix erstellt. Hierzu wird zunächst jeder Eckpunkte in das Licht projiziert und darauf folgend die maximalsten und minimalsten Werte der acht Punkte in den Richtungen x, y und z abgespeichert. Diese sechs Grenzwerte werden dann auf unterschiedliche Weise mit der aktuellen Modelviewmatrix verrechnet und ergeben ein Frustum, welches eine hohe Präzision in der Tiefe ermöglicht (z-achse). Zusätzlich ist es in x und y Richtung möglichst enganliegend, sodass der Raum, der gerendert werden muss, auf ein Minimum reduziert wird. Abbildung 28: far light- und near light frustum [Dim07] Abbildung 28 zeigt dies im zweideimensionalen Raum. Die Ausrichtung des far light frustum und des near light frustum stimmen mit der Lichtrichtung überein. Die nearplane wird so gesetzt, dass sie alle möglichen Occluder im Frustum behält, und die maximalen/minimalen Werte 26

Probelektion zum Thema. Shadow Rendering. Shadow Maps Shadow Filtering

Probelektion zum Thema. Shadow Rendering. Shadow Maps Shadow Filtering Probelektion zum Thema Shadow Rendering Shadow Maps Shadow Filtering Renderman, 2006 CityEngine 2011 Viewport Real reconstruction in Windisch, 2013 Schatten bringen viel Realismus in eine Szene Schatten

Mehr

Kapitel 4: Schattenberechnung

Kapitel 4: Schattenberechnung Kapitel 4: Schattenberechnung 1 Überblick: Schattenberechnung Motivation Schattenvolumen Shadow Maps Projektive Schatten 2 Motivation Wesentlich für die Wahrnehmung einer 3D-Szene Eigentlich ein globaler

Mehr

Schattenwurf mit Perspective Shadow Maps

Schattenwurf mit Perspective Shadow Maps 16. April 2010 Xpiriax Software Wer wir sind und was wir machen Hobby-Entwicklerteam, zur Zeit 6 Personen gegründet Anfang 2008 Schwerpunkte: Spiele- & 3D-Engine-Programmierung Ziele: Erfahrung, Arbeitsproben,

Mehr

Graphische Datenverarbeitung und Bildverarbeitung

Graphische Datenverarbeitung und Bildverarbeitung Graphische Datenverarbeitung und Bildverarbeitung Hochschule Niederrhein Schattenberechnung Graphische DV und BV, Regina Pohle, 23. Schattenberechnung 1 Einordnung in die Inhalte der Vorlesung Einführung

Mehr

3.6 Schattenberechnung

3.6 Schattenberechnung 3.6 Schattenberechnung Schatten sind für die realistische Darstellung von Szenerien sehr wichtig, da der Mensch aus dem Alltag gewohnt ist, Schatten zu sehen, so dass Bilder ohne Schatten sehr unnatürlich

Mehr

Christina Nell. 3D-Computergrafik

Christina Nell. 3D-Computergrafik Christina Nell 3D-Computergrafik Was ist 3D-Computergrafik? 3D graphics is the art of cheating without getting caught. (unbekannte Quelle) Folie 2/52 Inhalt Beleuchtung Shading Texturierung Texturfilterung

Mehr

(7) Normal Mapping. Vorlesung Computergraphik II S. Müller. Dank an Stefan Rilling U N I V E R S I T Ä T KOBLENZ LANDAU

(7) Normal Mapping. Vorlesung Computergraphik II S. Müller. Dank an Stefan Rilling U N I V E R S I T Ä T KOBLENZ LANDAU (7) Normal Mapping Vorlesung Computergraphik II S. Müller Dank an Stefan Rilling Einleitung Die Welt ist voller Details Viele Details treten in Form von Oberflächendetails auf S. Müller - 3 - Darstellung

Mehr

5 Mapping-Techniken. 5.1 Motivation

5 Mapping-Techniken. 5.1 Motivation 5.1 Motivation Bisher sind alle Oberflächen (polygonale Objekte, später auch parametrisierte Freiformflächen) glatt im Gegensatz zu wirklich existierenden natürlichen Oberflächen. Die explizite Wiedergabe

Mehr

Rendering: Lighting and Shading

Rendering: Lighting and Shading Rendering: Lighting and Shading Hauptseminar: How to make a Pixar Movie Inhalt Einführung Was ist Rendering Was ist Reflexionsmodelle Lighting Shading Globale Beleuchtungsmodelle Zusammenfassung 2/53 Inhalt

Mehr

Shader. Computer Graphics: Shader

Shader. Computer Graphics: Shader Computer Graphics Computer Graphics Shader Computer Graphics: Shader Inhalt Pipeline Memory Resources Input-Assembler Vertex-Shader Geometry-Shader & Stream-Output Rasterizer Pixel-Shader Output-Merger

Mehr

Computergraphik Grundlagen

Computergraphik Grundlagen Computergraphik Grundlagen IX. Texturen und Schatten Prof. Stefan Schlechtweg Hochschule Anhalt Fachbereich Informatik Inhalt Lernziele 1. Texture Mapping 1. Texture Pipeline 2. Environment Mapping 3.

Mehr

4.4 Glättung von Kanten

4.4 Glättung von Kanten 4.4 Glättung von Kanten Es wurden verschiedene Aspekte zur Beleuchtung von Modellen und Szenen vorgestellt. Es gibt zwei Arten von Licht, das Hintergrundlicht und Licht von Lichtquellen, wobei hier zu

Mehr

Programmierpraktikum 3D Computer Grafik

Programmierpraktikum 3D Computer Grafik Dipl.Inf. Otmar Hilliges Programmierpraktikum 3D Computer Grafik Dynamische Schattenberechnung Agenda Der Stencil-Buffer Der 1-bit Stencil-Buffer Der 8-bit Stencil-Buffer Volumetrische Echtzeitschatten

Mehr

3D Programmierpraktikum: Schattenberechnung in Echtzeit

3D Programmierpraktikum: Schattenberechnung in Echtzeit 3D Programmierpraktikum: Schattenberechnung in Echtzeit Praktikum 3D Programmierung Sebastian Boring, Otmar Hilliges Donnerstag, 20. Juli 2006 LMU München Medieninformatik Boring/Hilliges 3D Programmierpraktikum

Mehr

3.5 Methode des gleitenden Horizonts

3.5 Methode des gleitenden Horizonts 3.5 Methode des gleitenden Horizonts Für Flächen die durch eine Gleichung F (x, y, z) = 0 gegeben sind, lässt sich die Methode des gleitenden Horizonts anwenden. Dabei werden die sichtbaren Teile der Schnitte

Mehr

Beleuchtung. in Computerspielen

Beleuchtung. in Computerspielen Beleuchtung in Computerspielen Motivation Überblick Licht und Schattierung Lichtquellen Lokale Beleuchtungsmodelle Schattierungsverfahren Oberflächensimulation Beispiele der CryEngine Ausblick Zusammenfassung

Mehr

Programmierpraktikum 3D Computer Grafik

Programmierpraktikum 3D Computer Grafik Prof. Andreas Butz, Dipl.Inf. Otmar Hilliges Programmierpraktikum 3D Computer Grafik Dynamische Schattenberechnung Agenda Der Stencil-Puffer Der 1-bit Stencil-Puffer Der 8-bit Stencil-Puffer Volumetrische

Mehr

Shadowing. Vortrag im Rahmen des PIXAR-Seminars, Juli Philipp Freyer

Shadowing. Vortrag im Rahmen des PIXAR-Seminars, Juli Philipp Freyer Shadowing Vortrag im Rahmen des PIXAR-Seminars, Juli 2011 Philipp Freyer Inhalt Schatten... 3 Kernschatten (Hard Shadow)... 3 Berechnung... 3 Hard Shadow Rendering... 4 Shadow Maps... 4 Shadow Volumes...

Mehr

Beleuchtungsmodelle und Shading

Beleuchtungsmodelle und Shading Beleuchtungsmodelle und Shading Andreas Spillner Computergrafik, WS 2018/2019 Ziel der Modellierung von Beleuchtung Baut auf dem Kapitel zu Licht und Farben auf. In die 3D-Szene werden Lichtquellen eingebracht.

Mehr

Parallele Algorithmen in der Bildverarbeitung

Parallele Algorithmen in der Bildverarbeitung Seminar über Algorithmen - SoSe 2009 Parallele Algorithmen in der Bildverarbeitung von Christopher Keiner 1 Allgemeines 1.1 Einleitung Parallele Algorithmen gewinnen immer stärker an Bedeutung. Es existieren

Mehr

3D - Modellierung. Arne Theß. Proseminar Computergraphik TU Dresden

3D - Modellierung. Arne Theß. Proseminar Computergraphik TU Dresden 3D - Modellierung Arne Theß Proseminar Computergraphik TU Dresden Gliederung Darstellungsschemata direkte Constructive Solid Geometry (CSG) Generative Modellierung Voxelgitter indirekte Drahtgittermodell

Mehr

Einleitung 2. 1 Koordinatensysteme 2. 2 Lineare Abbildungen 4. 3 Literaturverzeichnis 7

Einleitung 2. 1 Koordinatensysteme 2. 2 Lineare Abbildungen 4. 3 Literaturverzeichnis 7 Sonja Hunscha - Koordinatensysteme 1 Inhalt Einleitung 2 1 Koordinatensysteme 2 1.1 Kartesisches Koordinatensystem 2 1.2 Polarkoordinaten 3 1.3 Zusammenhang zwischen kartesischen und Polarkoordinaten 3

Mehr

Techniken der Effizienzsteigerung bei 2D-Texturierung:

Techniken der Effizienzsteigerung bei 2D-Texturierung: Techniken der Effizienzsteigerung bei 2D-Texturierung: Mip-Mapping MIP = "Multum in Parvo" = vieles auf kleinem Raum spezielle Texture-Mapping-Erweiterung, häufig bei Echtzeitanwendungen, z.b. Spielen,

Mehr

Übungsstunde 8 zu Computergrafik 1

Übungsstunde 8 zu Computergrafik 1 Institut für Computervisualistik Universität Koblenz 14. und 15. Januar 2013 Inhaltsverzeichnis 1 Wiederholung - Beleuchtung Gouraud-Shading Phong-Shading Flat-Shading Vergleich 2 - Idee in OpenGL Texturfilterung

Mehr

Wima-Praktikum 2: Bildsynthese-Phong

Wima-Praktikum 2: Bildsynthese-Phong Wima-Praktikum 2: Bildsynthese-Phong Wima-Praktikum 2: Prof. Dr. Lebiedz, M. Sc. Radic 1 Inhaltsverzeichnis 1 Einleitung 3 2 Kurze Beschreibung der Aufgabenstellung und dem Phong- Modell 3 3 Modellierung

Mehr

Lokale Beleuchtungsmodelle

Lokale Beleuchtungsmodelle Lokale Beleuchtungsmodelle Proseminar GDV, SS 05 Alexander Gitter Betreuer: Dirk Staneker Wilhelm-Schickard-Institut für Informatik Graphisch-Interaktive Systeme Sand 14 D-72076 Tübingen Einleitung und

Mehr

3. Analyse der Kamerabewegung Video - Inhaltsanalyse

3. Analyse der Kamerabewegung Video - Inhaltsanalyse 3. Analyse der Kamerabewegung Video - Inhaltsanalyse Stephan Kopf Bewegungen in Videos Objektbewegungen (object motion) Kameraoperationen bzw. Kamerabewegungen (camera motion) Semantische Informationen

Mehr

3D Rendering mit PHP. Die neue PEAR-Klasse Image_3D bietet die Möglichkeit nur mit PHP5 3DGrafiken zu rendern

3D Rendering mit PHP. Die neue PEAR-Klasse Image_3D bietet die Möglichkeit nur mit PHP5 3DGrafiken zu rendern 3D Rendering mit PHP Die neue PEAR-Klasse Image_3D bietet die Möglichkeit nur mit PHP5 3DGrafiken zu rendern Speaker Kore Nordmann Studiert Informatik an der Universität Dortmund Arbeitet als Software

Mehr

Bildbearbeitung und Texturierung

Bildbearbeitung und Texturierung Ulf Döring, Markus Färber 07.03.2011 1. Anti-Aliasing (a) Wodurch entsteht der Aliasing-Effekt bei der Rasterisierung einer Linie? (b) Wie kann der Aliasing-Effekt durch Supersampling mit nachträglichem

Mehr

Universität Trier. Fachbereich IV. Wintersemester 2004/2005. Wavelets made easy. Kapitel 2 Mehrdimensionale Wavelets und Anwendungen

Universität Trier. Fachbereich IV. Wintersemester 2004/2005. Wavelets made easy. Kapitel 2 Mehrdimensionale Wavelets und Anwendungen Universität Trier Fachbereich IV Wintersemester 2004/2005 Wavelets made easy Kapitel 2 Mehrdimensionale Wavelets und Anwendungen Thomas Queckbörner 16.11.2004 Übersicht des Kapitels: 1. Einführung 2. Zweidimensionale

Mehr

Entwicklung einer robusten Methode zur Berechnung von Stereokorrespondenzen

Entwicklung einer robusten Methode zur Berechnung von Stereokorrespondenzen Entwicklung einer robusten Methode zur Berechnung von Stereokorrespondenzen Seminar - Wintersemester 2010/2011 Fakultät Technik und Informatik Department Informatik Gregory Föll Übersicht Rückblick Stereo

Mehr

4. Segmentierung von Objekten Video - Inhaltsanalyse

4. Segmentierung von Objekten Video - Inhaltsanalyse 4. Segmentierung von Objekten Video - Inhaltsanalyse Stephan Kopf Inhalt Vorgehensweise Berechnung der Kamerabewegungen zwischen beliebigen Bildern Transformation eines Bildes Hintergrundbilder / Panoramabilder

Mehr

Conservative Volumetric Visibility with Occluder Fusion

Conservative Volumetric Visibility with Occluder Fusion Conservative Volumetric Visibility with Occluder Fusion Worum geht es? Ausgangspunkt komplexe Szene, wie Städte, Straßenzüge, etc. Ziel effiziente Berechnung von nicht sichtbaren Regionen Begriffe / Definitionen

Mehr

Computergrafik 2010 Oliver Vornberger. Kapitel 18: Beleuchtung. Vorlesung vom

Computergrafik 2010 Oliver Vornberger. Kapitel 18: Beleuchtung. Vorlesung vom Computergrafik 2010 Oliver Vornberger Kapitel 18: Beleuchtung Vorlesung vom 08.06.2010 1 Korrektur α Für den Winkel zwischen den normierten Vektoren und gilt: ~v ~w A B C D sin(α) = ~v ~w 0,0 % sin(α)

Mehr

Computergrafik 1 Beleuchtung

Computergrafik 1 Beleuchtung Computergrafik 1 Beleuchtung Kai Köchy Sommersemester 2010 Beuth Hochschule für Technik Berlin Überblick Lokale Beleuchtungsmodelle Ambiente Beleuchtung Diffuse Beleuchtung (Lambert) Spiegelnde Beleuchtung

Mehr

Logarithmic Perspective Shadow Maps

Logarithmic Perspective Shadow Maps Logarithmic Perspective Shadow Maps Konni Hartmann Universität Göttingen Sem. Computergrafik, 2009 Sem. Computergrafik, 2009 1 / Ziele des Vortrags Überblick zu verschieden Shadow-Mapping-Techniken Herleitung

Mehr

Inhaltsadaption von Bilder

Inhaltsadaption von Bilder Inhaltsadaption von Bilder Anwendungsgebiete und Verfahren für mobile Endgeräte mit kleinen Displays Universität Mannheim Lehrstuhl für Praktische Informatik IV Wintersemester 05/06 vschan@rumms.uni-mannheim.de

Mehr

2.2 Kollineare und koplanare Vektoren

2.2 Kollineare und koplanare Vektoren . Kollineare und koplanare Vektoren Wie wir schon gelernt haben, können wir einen Vektor durch Multiplikation mit einem Skalar verlängern oder verkürzen. In Abbildung 9 haben u und v die gleiche Richtung,

Mehr

4.7 Globale Beleuchtungsmodelle

4.7 Globale Beleuchtungsmodelle Erinnerung: - Ein lokales Beleuchtungsmodell berücksichtigt nur das direkt einfallende Licht einer Lichtquelle - Nur lokale Beleuchtung + konstante ambiente Beleuchtung, um reflektiertes und gebrochenes

Mehr

Projektion. Ebene geometrische Projektionen

Projektion. Ebene geometrische Projektionen Projektion - 1 - Ebene geometrische Projektionen Die ebenen geometrischen Projektionen sind dadurch charakterisiert, daß mit Projektionsstrahlen konstanter Richtung, d.h. entlang von Geraden, auf Ebenen

Mehr

7 Blender Intern Renderer

7 Blender Intern Renderer D3kjd3Di38lk323nnm 221 7 Blender Intern Renderer Der Blender Intern (kurz BI) genannte Renderer ist historisch der älteste Renderer in Blender. Er wurde immer wieder erweitert und verbessert, wenn neue

Mehr

OpenGL und die Fixed-Function-Pipeline

OpenGL und die Fixed-Function-Pipeline OpenGL und die Fixed-Function-Pipeline Proseminar Game Design WS 07/08 Jan-Hendrik Behrmann Einführung In modernen Computerspielen hat sich inzwischen die Darstellung der Spielwelt in dreidimensionaler

Mehr

Volumenverarbeitung und Optimierung II

Volumenverarbeitung und Optimierung II Volumenverarbeitung und Optimierung II Praktikum Medizinische GPU Verfahren Susanne Fischer sanne@uni-koblenz.de Institut für Computervisualistik Universität Koblenz-Landau 9. Dezember 2006 Susanne Fischer

Mehr

Programmierpraktikum 3D Computer Grafik

Programmierpraktikum 3D Computer Grafik Dipl.Inf. Otmar Hilliges Programmierpraktikum 3D Computer Grafik Szenegraphen, Texturen und Displaylisten. Agenda Beleuchtungsmodelle in OpenGL Bump-Maps zur Erzeugung von Reliefartigen Oberflächen Height-Maps

Mehr

Morphing. von Tim Sternberg. Im Rahmen des Seminars Manipulation und Verarbeitung digitaler Bilder

Morphing. von Tim Sternberg. Im Rahmen des Seminars Manipulation und Verarbeitung digitaler Bilder von Tim Sternberg Im Rahmen des Seminars Manipulation und Verarbeitung digitaler Bilder Einleitung Mit Morphing wird der fließende Übergang eines Bildes in ein anderes bezeichnet. Zwei digitale Bilder

Mehr

Shadingalgorithmen zur Visualisierung nanostrukturierter Oberflächen

Shadingalgorithmen zur Visualisierung nanostrukturierter Oberflächen Universität Hamburg Fachbereich Informatik Arbeitsbereich Technische Aspekte Multimodaler Systeme Seminar Informatikanwendungen in Nanotechnologien Betreuer: Bernd Schütz Sommersemester 2014 Shadingalgorithmen

Mehr

Landesabitur 2007 Beispielaufgaben 2005_M-LK_A 7. Eine quadratische Pyramide (Grundkante 4 und Höhe 6) steht neben einer Stufe. 1.

Landesabitur 2007 Beispielaufgaben 2005_M-LK_A 7. Eine quadratische Pyramide (Grundkante 4 und Höhe 6) steht neben einer Stufe. 1. I. Thema und Aufgabenstellung Lineare Algebra / Analytische Geometrie Aufgaben Eine quadratische Pyramide (Grundkante 4 und Höhe 6) steht neben einer Stufe. 3. Achse 2. Achse 1. Achse Die Sonne scheint

Mehr

Masterstudiengang Informatik. Fachseminar. Wintersemester 2011/2012. Shadow Mapping

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

Mehr

Darstellung als Filterbank. Annahme für die Codierung: bestimmter Betrachtungsabstand, Wiedergabegröße Bestimmter Betrachtungswinkel für das Auge.

Darstellung als Filterbank. Annahme für die Codierung: bestimmter Betrachtungsabstand, Wiedergabegröße Bestimmter Betrachtungswinkel für das Auge. Darstellung als Filterbank Annahme für die Codierung: bestimmter Betrachtungsabstand, Wiedergabegröße Bestimmter Betrachtungswinkel für das Auge. - Trifft in bestimmten Maße auch auf das Original zu, da

Mehr

Die untere Abbildung zeigt eine Szene aus einer 3D-Computeranimation.

Die untere Abbildung zeigt eine Szene aus einer 3D-Computeranimation. 3D-Animation Als 3D-Animation bezeichnet man die Animation von dreidimensionalen Objekten. Diese können wie echte Objekte gedreht und bewegt werden. Die 3D-Animationen erinnern an die sogenannten Puppentrickfilme.

Mehr

Bildverarbeitung: 3D-Geometrie. D. Schlesinger () Bildverarbeitung: 3D-Geometrie 1 / 13

Bildverarbeitung: 3D-Geometrie. D. Schlesinger () Bildverarbeitung: 3D-Geometrie 1 / 13 Bildverarbeitung: 3D-Geometrie D. Schlesinger () Bildverarbeitung: 3D-Geometrie 1 / 13 Lochkamera Modell C Projektionszentrum, Optische Achse, Bildebene, P Hauptpunkt (optische Achse kreuzt die Bildebene),

Mehr

Ihre Punkt + Sonderp. = Summe Ihre Note:

Ihre Punkt + Sonderp. = Summe Ihre Note: Hochschule Darmstadt Nachname: Fachbereich Informatik Vorname: Björn Frömmer, Prof. Dr. E. Hergenröther Matr. Nr.: Ihre Punkt + Sonderp. = Summe Ihre Note: Aufgabe : RGB-Farbmodell Punkte: / 6 % Unten

Mehr

Licht und Farben. Andreas Spillner. Computergrafik, WS 2018/2019

Licht und Farben. Andreas Spillner. Computergrafik, WS 2018/2019 Licht und Farben Andreas Spillner Computergrafik, WS 2018/2019 Farbwahrnehmung des Menschen im Auge Das Verständnis, wie Farbeindrücke entstehen, ist ein wesentlicher Bestandteil der Computergrafik. Der

Mehr

3D-Modellierungsprogramme

3D-Modellierungsprogramme 06.06.06 Bastian Schildbach 3D-Modellierungsprogramme mit Gliederung 1. Grundlagen Texture Mapping, Texturkoordinaten, Vertices, Texturaddressierung 2. Mapping-Techniken Bump, Displacement, Normal, Two-Part,

Mehr

Transformation Allgemeines Die Lage eines Punktes kann durch einen Ortsvektor (ausgehend vom Ursprung des Koordinatensystems

Transformation Allgemeines Die Lage eines Punktes kann durch einen Ortsvektor (ausgehend vom Ursprung des Koordinatensystems Transformation - 1 1. Allgemeines 2. Zwei durch eine Translation verknüpfte gleichartige Basissysteme 3. Zwei durch eine Translation verknüpfte verschiedenartige Basissysteme (noch gleiche Orientierung)

Mehr

Im Original veränderbare Word-Dateien

Im Original veränderbare Word-Dateien 3D-Animation Als 3D-Animation bezeichnet man die Animation von dreidimensionalen Objekten. Diese können wie echte Objekte gedreht und bewegt werden. Die 3D-Animationen erinnern an die sogenannten Puppentrickfilme.

Mehr

EVC Repetitorium Blender

EVC Repetitorium Blender EVC Repetitorium Blender Michael Hecher Felix Kreuzer Institute of Computer Graphics and Algorithms Vienna University of Technology INSTITUTE OF COMPUTER GRAPHICS AND ALGORITHMS Filter Transformationen

Mehr

View Morphing. Department of Computer Sciences University of Wisconsin Madison publiziert in SIGGRAPH 96, pp

View Morphing. Department of Computer Sciences University of Wisconsin Madison publiziert in SIGGRAPH 96, pp View Morphing Steven M. Seitz Charles R. Der Department of Computer Sciences Universit of Wisconsin Madison publiziert in SIGGRAPH 96, pp. 21 30 Abhandlung von Christian Limpach Eidgenössische Technische

Mehr

Computergraphik Grundlagen

Computergraphik Grundlagen Computergraphik Grundlagen XI. Rasterung Füllen von Polygonen Prof. Stefan Schlechtweg Hochschule nhalt Fachbereich Informatik Inhalt Lernziele 1. Zu lösendes Problem 2. Füllen von Pixelmengen 1. Rekursiver

Mehr

:= Modellabbildung. Bildsynthese (Rendering) Bildsynthese

:= Modellabbildung. Bildsynthese (Rendering) Bildsynthese Geometrisches Modell bestehend aus Datenstrukturen zur Verknüpfung geometrischer Primitive, welche eine Gesamtszene beschreiben Bildsynthese := Modellabbildung Pixelbasiertes Modell zur Darstellung eines

Mehr

Maße des Modellmondes Radius Modellmond Abstand Modellmond-Modellsonne

Maße des Modellmondes Radius Modellmond Abstand Modellmond-Modellsonne Rechnungen zuofi-box Im Folgenden finden Sie die Herleitung und Berechnung zum Abschnitt Die SoFi-Box symbolisch aus dem Artikel Die SoFi-Box Ein Modellexperiment zum fächerverbindenden Unterricht von

Mehr

3.1 Motivation. - Mit (mehreren) Koordinatentransformationen wird das Objektsystem in das Gerätesystem transformiert.

3.1 Motivation. - Mit (mehreren) Koordinatentransformationen wird das Objektsystem in das Gerätesystem transformiert. 3.1 Motivation Wichtige Grundlage der Bildwiedergabe auf dem Bildschirm oder anderen Ausgabegeräten sind Koordinatensysteme und Koordinatentransformationen im IR 2 und IR 3. Im allgemeinen unterscheidet

Mehr

1 Fraktale Eigenschaften der Koch-Kurve

1 Fraktale Eigenschaften der Koch-Kurve Anhang Inhaltsverzeichnis Fraktale Eigenschaften der Koch-Kurve iii. Einführung.................................. iii.2 Defintion.................................... iii.3 Gesamtlänge der Koch-Kurve........................

Mehr

Die Welt der Shader. Fortgeschrittene Techniken III

Die Welt der Shader. Fortgeschrittene Techniken III Die Welt der Shader Fortgeschrittene Techniken III Universität zu Köln WS 14/15 Softwaretechnologie II (Teil 1) Prof. Dr. Manfred Thaller Referent: Lukas Kley Gliederung 1. Was ist ein Shader? 2. Verschiedene

Mehr

Spiegelgasse 1 CH 4051 Basel. Vorführung der laufenden Programme im Tutorium Woche 3 (Abgabe ).

Spiegelgasse 1 CH 4051 Basel. Vorführung der laufenden Programme im Tutorium Woche 3 (Abgabe ). UNIVERSITÄT BASEL Prof. Dr. Thomas Vetter Departement Mathematik und Informatik Spiegelgasse 1 CH 4051 Basel Patrick Kahr (patrick.kahr@unibas.ch) Clemens Büchner (clemens.buechner@unibas.ch) Computer

Mehr

Nichtrealistische Darstellung von Gebirgen mit OpenGL

Nichtrealistische Darstellung von Gebirgen mit OpenGL Nichtrealistische Darstellung von Gebirgen mit OpenGL Großer Beleg Torsten Keil Betreuer: Prof. Deussen Zielstellung Entwicklung eines Algorithmus, der die 3D- Daten einer Geometrie in eine nichtrealistische

Mehr

Stochastische Approximation des Value at Risk

Stochastische Approximation des Value at Risk Stochastische Approximation des Value at Risk Annemarie Bitter Motivation Eines der wichtigsten Projekte der Versicherungswirtschaft ist derzeit die sogenannte Solvency-II-Richtlinie der Versicherungsaufsicht.

Mehr

Beschleunigungen auf Szenenebene

Beschleunigungen auf Szenenebene Beschleunigungen auf Szenenebene Thomas Jung Verdeckungsbehandlung OpenGL Entfernen abgewandter Flächen (Backface Cullg) Kappen am Sichtvolumen (Clippg) Z-Speicher-Algorithmus t.jung@htw-berl.de Projektion

Mehr

2015 Sebastian Wahner - Die teilweise oder vollständige Weiterverbreitung dieses Werkes ist ohne Einverständnis des Autors

2015 Sebastian Wahner -  Die teilweise oder vollständige Weiterverbreitung dieses Werkes ist ohne Einverständnis des Autors 1 Inhalt Einführung... 3 Das Raster... 4 Die Anlagen-Maps... 6 Heightmap ( H.bmp)... 8 Höhenbestimmung für beliebigen Anlagenpunkt... 9 Texturen-Datei ( T.bmp)... 11 Farbendatei ( F.bmp)... 12 Skalierungs-,

Mehr

Echtzeitfähige Schatten in Mixed Reality-Umgebungen. Diplomarbeit

Echtzeitfähige Schatten in Mixed Reality-Umgebungen. Diplomarbeit Fachbereich 4: Informatik Echtzeitfähige Schatten in Mixed Reality-Umgebungen Diplomarbeit zur Erlangung des Grades eines Diplom-Informatikers im Studiengang Computervisualistik vorgelegt von Jens Freiling

Mehr

Computergrafik Universität Osnabrück, Henning Wenke,

Computergrafik Universität Osnabrück, Henning Wenke, Computergrafik Universität Osnabrück, Henning Wenke, 2012-05-30 Korrektur: Kugelkoordinaten II r und θ konstant: Rand einer Kreisscheibe parallel zur xy Ebene z θ fest y θ konstant, r R : Kegel, ausgehend

Mehr

Rechnergestütztes Konstruieren im Metallbau und Holzbau. Rechnergestütztes Konstruieren im Metallbau und Holzbau Dr.-Ing. Hans-Walter Haller

Rechnergestütztes Konstruieren im Metallbau und Holzbau. Rechnergestütztes Konstruieren im Metallbau und Holzbau Dr.-Ing. Hans-Walter Haller Rechnergestütztes Konstruieren im Metallbau und Holzbau Darstellung mit Objektkanten Darstellung mit Objektkanten und verdeckten Linien Darstellung schattiert Gerenderte Darstellung Rendern, Vorteile Geringer

Mehr

Bildverarbeitung Herbstsemester

Bildverarbeitung Herbstsemester Bildverarbeitung Herbstsemester Herbstsemester 2009 2012 Filter Filter 1 Inhalt Lineare und nichtlineare Filter Glättungsfilter (z.b. Gauss-Filter) Differenzfilter (z.b. Laplace-Filter) Lineare Faltung

Mehr

Stochastische Approximation des Value at Risk

Stochastische Approximation des Value at Risk Stochastische Approximation des Value at Risk Zusammenfassung der Masterarbeit an der Universität Ulm Annemarie Bitter Motivation Eines der wichtigsten Projekte der Versicherungswirtschaft ist derzeit

Mehr

Graphische Datenverarbeitung Visualisierungstechniken. Prof. Dr. Elke Hergenröther

Graphische Datenverarbeitung Visualisierungstechniken. Prof. Dr. Elke Hergenröther Graphische Datenverarbeitung Visualisierungstechniken Prof. Dr. Elke Hergenröther Visualisierungstechniken Visualisierung: Visualisierung bedeutet sichtbar machen, darstellen. Die CG beschränkt sich dabei

Mehr

RelAtive SpecTrAl (RASTA) Processing of Speech

RelAtive SpecTrAl (RASTA) Processing of Speech RelAtive SpecTrAl (RASTA) Processing of Speech Paul Glad Mihai 23.11.06 Gliederung Einleitung Wieso RASTA? RASTA erläutert Probleme Modulationsspektrum von Sprache Methode RASTA erweitert Lin-Log Rasta

Mehr

Modellierung. Oliver Hartmann

Modellierung. Oliver Hartmann Modellierung Oliver Hartmann oliver.hartmann@uni-ulm.de Inhalt Boolesche Operationen Splines B-Splines Bezier-Kurven NURBS Anwendung Sculpting Volumengrafik Marching Cubes Ray Casting Texture Mapping Boolesche

Mehr

Computergrafik 2008 Oliver Vornberger. Kapitel 19: Texturing

Computergrafik 2008 Oliver Vornberger. Kapitel 19: Texturing Computergrafik 2008 Oliver Vornberger Kapitel 19: Texturing 1 Strukturierte Fläche Beispiel: Steinmauer lege viele kleine rote Rechtecke auf ein großes weißes Rechteck: Nachteil: aufwändige Geometrie 2

Mehr

Transformation - 3. Für "übliche" Anwendungen in der Geometrie ist es sinnvoll, bei Transformationen eine gleiche

Transformation - 3. Für übliche Anwendungen in der Geometrie ist es sinnvoll, bei Transformationen eine gleiche Transformation - 3 Wiederholung und spezielle Angaben im Zusammenhang mit Kreis-Berechnungen 1. Problemstellung Im Zusammenhang mit der Berechnung von Schnittflächen kann es sinnvoll sein, die Berechnung

Mehr

HLSL PostProcess Shaders

HLSL PostProcess Shaders HLSL Advanced 1 HLSL PostProcess Shaders Einführung PostProcess Effekte werden erst nach dem Rendern aller Objekte angewandt, nämlich auf das Render-Target (daher der Name). Das Spektrum der Möglichkeiten

Mehr

Raytracing Modell Laufzeitoptimierungen Schnittalgorithmen Szenendatenstrukturen. Verbesserung der Bildqualität

Raytracing Modell Laufzeitoptimierungen Schnittalgorithmen Szenendatenstrukturen. Verbesserung der Bildqualität Modell Laufzeitoptimierungen Schnittalgorithmen Szenendatenstrukturen Thomas Jung Verbesserung der Bildqualität Realzeitanforderungen begrenzen Bildqualität Fotorealismus nur mit globalen Beleuchtungsmodellen

Mehr

Parallele und funktionale Prog. Wintersemester 2012/ Übung Abgabe bis , 10:00 Uhr

Parallele und funktionale Prog. Wintersemester 2012/ Übung Abgabe bis , 10:00 Uhr 9. Übung Abgabe bis 07.01.2013, 10:00 Uhr Aufgabe 9.1: Zeigerverdopplung Ermitteln Sie an folgendem Beispiel den Rang für jedes Listenelement sequentiell und mit dem in der Vorlesung vorgestellten parallelen

Mehr

Graphische Datenverarbeitung und Bildverarbeitung

Graphische Datenverarbeitung und Bildverarbeitung Graphische Datenverarbeitung und Bildverarbeitung Hochschule Niederrhein Antialiasing Graphische DV und BV, Regina Pohle, 5. Antialiasing 1 Einordnung in die Inhalte der Vorlesung Einführung mathematische

Mehr

Computergrafik 2010 Oliver Vornberger. Kapitel 18: Beleuchtung

Computergrafik 2010 Oliver Vornberger. Kapitel 18: Beleuchtung Computergrafik 2010 Oliver Vornberger Kapitel 18: Beleuchtung 1 Ausgangslage am Ende der Viewing Pipeline liegt vor: P A Materialeigenschaften P B P C 2 Beleuchtungmodelle lokal: Objekt, Lichtquellen,

Mehr

Ajdovic/Mühl Farbmodelle FARBMODELLE

Ajdovic/Mühl Farbmodelle FARBMODELLE FARBMODELLE Grundlagen: Gegenstände, die von einer Lichtquelle beleuchtet werden, reflektieren und absorbieren jeweils einen Teil des Lichts. Dabei wird das von den Gegenständen reflektierte Licht vom

Mehr

Lokale Beleuchtungsmodelle

Lokale Beleuchtungsmodelle Lokale Beleuchtungsmodelle Oliver Deussen Lokale Modelle 1 Farbschattierung der Oberflächen abhängig von: Position, Orientierung und Charakteristik der Oberfläche Lichtquelle Vorgehensweise: 1. Modell

Mehr

Visualisierung und Volumenrendering 2

Visualisierung und Volumenrendering 2 Institut für Computervisualistik Universität Koblenz 06.07.2012 Inhaltsverzeichnis 1 Literatur 2 Wiederholung 3 DVR Volumen Literatur Real-Time Volume Graphics Volumenrendering CG Shader Beispiele Volumen

Mehr

Bildverarbeitung: Filterung. D. Schlesinger () Bildverarbeitung: Filterung 1 / 17

Bildverarbeitung: Filterung. D. Schlesinger () Bildverarbeitung: Filterung 1 / 17 Bildverarbeitung: Filterung D. Schlesinger () Bildverarbeitung: Filterung 1 / 17 Allgemeines Klassische Anwendung: Entrauschung (Fast) jeder Filter basiert auf einem Modell (Annahme): Signal + Rauschen

Mehr

2.1. Konvexe Hülle in 2D

2.1. Konvexe Hülle in 2D Wir wollen die konvexe Hülle einer Menge von Punkten P = {p 1,..., p n } in der Ebene R 2 bestimmen. y y x x Def. 21: Eine Teilmenge S der Ebene ist konvex gdw für jedes Paar das Liniensegment pq in S

Mehr

1. Sichtbarkeitsproblem beim Rendern einer dreidimensionalen Szene auf einer zweidimensionalen

1. Sichtbarkeitsproblem beim Rendern einer dreidimensionalen Szene auf einer zweidimensionalen 3D-Rendering Ulf Döring, Markus Färber 07.03.2011 1. Sichtbarkeitsproblem beim Rendern einer dreidimensionalen Szene auf einer zweidimensionalen Anzeigefläche (a) Worin besteht das Sichtbarkeitsproblem?

Mehr

Bimagische Quadrate. 14 Tage wurde dann die Lösung veröffentlicht Abb. 11.1: Das erste bimagische Quadrat der Ordnung n = 8 von Pfeffermann

Bimagische Quadrate. 14 Tage wurde dann die Lösung veröffentlicht Abb. 11.1: Das erste bimagische Quadrat der Ordnung n = 8 von Pfeffermann K a p i t e l 11 Bimagische Quadrate Der Franzose G. Pfeffermann entdeckte 1890 das erste bimagische Quadrat der Welt und veröffentlichte es am 15. Januar 1891 in der Zeitschrift Les Tablettes du Chercheur

Mehr

C A R L V O N O S S I E T Z K Y. Transformationen. Johannes Diemke. Übung im Modul OpenGL mit Java Wintersemester 2010/2011

C A R L V O N O S S I E T Z K Y. Transformationen. Johannes Diemke. Übung im Modul OpenGL mit Java Wintersemester 2010/2011 C A R L V O N O S S I E T Z K Y Transformationen Johannes Diemke Übung im Modul OpenGL mit Java Wintersemester 2010/2011 Motivation Transformationen Sind Grundlage vieler Verfahren der Computergrafik Model-

Mehr

Transformationen im 3D-Raum

Transformationen im 3D-Raum Thomas Jung Repräsentation von 3D-Oberflächen Aufbau von Szenen Transformationen im 3D-Raum Projektionstranformationen Anwendung in OpenGL Geometrietransformationen bilden die Basis für die Computergrafik

Mehr

'Visual Hull' mit Hilfe von Spiegeln

'Visual Hull' mit Hilfe von Spiegeln 'Visual Hull' mit Hilfe von Spiegeln hwww.dip.ee.uct.ac.za/~kforbes/doublemirror/doublemirror.html Dreidimensionales Computersehen Dr.-Ing. Simon Winkelbach www.rob.cs.tu-bs.de/teaching/courses/cs 1 Zur

Mehr

Transformation - Homogene Koordinaten. y + b )

Transformation - Homogene Koordinaten. y + b ) Transformation - Homogene Koordinaten In der "üblichen" Behandlung werden für die Verschiebung (Translation) und die Drehung (Rotation) verschiedene Rechenvorschriften benutzt - einmal Addition von Vektoren

Mehr

Übung Elementarmathematik im WS 2012/13. Lösung zum Klausurvorbereitung IV

Übung Elementarmathematik im WS 2012/13. Lösung zum Klausurvorbereitung IV Technische Universität Chemnitz Fakultät für Mathematik Dr. Uwe Streit Jan Blechschmidt Aufgabenkomplex 7 - Vektoren Übung Elementarmathematik im WS 202/3 Lösung zum Klausurvorbereitung IV. (5 Punkte -

Mehr

Einführung in die medizinische Bildverarbeitung WS 12/13

Einführung in die medizinische Bildverarbeitung WS 12/13 Einführung in die medizinische Bildverarbeitung WS 12/13 Stephan Gimbel Kurze Wiederholung Pipeline Pipelinestufen können sich unterscheiden, beinhalten aber i.d.r. eine Stufe zur Bildvorverarbeitung zur

Mehr