Entwicklung und Implementierung echtzeitfähiger Verfahren zur Darstellung von reflektierenden Objekten auf GPUs echtzeitfähiger Verfahren zur Darstellung von reflektierenden Objekten auf GPUs
Motivation Zur Steigerung der Realitätsnähe von Bildern
Gliederung Motivation Szenenrepräsentation Perspektivische LDCM Orthographische LDCM Strahlgenerierung Strahlverfolgung Schnittpunktsbestimmung Schwellwertbasiert Lineare Interpolation Zusammensetzen des endgültigen Bildes Erweiterungen des Verfahrens ZweiPass Strahlverfolgung Rekursives Verfolgen der Strahlen Lokale Beleuchtung Alternative Schnittpunktsbestimmung Hybride Strahlverfolgung Ergebnisse
Szenenrepräsentation VertexDaten (Geometrie) Fixed Function Transfrom & Lighting VertexShader PixelDaten (Texturen) PixelOperationen FragmentShader Clipping, ViewportTransformation Rasterisierung TexturMapping, Nebel FragementOperationen FrameBuffer TexturSpeicher RayTracing nur schwer auf der Graphikkarte möglich, da VertexDaten nur am Anfang der RenderingPipeline zu Verfügung stehen Deshalb Repräsentation der Szene im Texturspeicher nötig
Szenenrepräsentation (II) Verwendung so genannter LayeredDepthImages Layer 1 Layer 2 Layer 3 Layer 4 Layer 5 Layer 6 C1 Problem: nur bestimmter Blickwinkel auf die Szene nicht alles kann dargestellt werden
Szenenrepräsentation (III) Um die gesamte Szene darstellen zu können, gibt es verschiedene Möglichkeiten LDI wird von außerhalb der Szene generiert Geringe Auflösung der weiter entfernten Objekte Mehrere LDIs um den gesamten Raumwinkel abzudecken ähnlich den CubeMaps Zwei Verfahren Mit perspektivischer Projektion Mit orthographischer Projektion
Perspektivische LayeredDepthCubeMap Sechs LDIs in die Richtungen der Koordinatenachsen Zusammengefasst zu einer LayeredDepthCubeMap (LDCM)
Perspektivische LDCM (II) Vorteil: Adressierung der einzelnen Schichten wie bei einer Standard CubeMap Nachteil: Ebenen durch den Mittelpunkt der CubeMaps werden nicht in der LDCM dargestellt werden y y z x x C1 C1
Orthographische LDCM Perspektivische Projektion wird durch orthographische ersetzt Gesamte Szene befindet sich im sichtbaren Volumen aller Dimensionen der CubeMaps Jeder Punkt der Szene wird aus drei linear unabhängigen Blickrichtungen gerendert
Orthographische LDCM (II) Auch Ebenen durch den Mittelpunkt der CubeMaps werden korrekt dargestellt Nachteile: geringere Auflösung von Objekten nahe dem Zentrum Höherer Aufwand beim Adressieren der CubeMaps C3 y y z x x C2 C1 C1 y y z C2 z C3
Strahlgenerierung Zeichnen der Start und Endpunktkoordinaten in zwei Texturen Startpunkt ergibt sich aus der Position auf dem Objekt Endpunkt berechnet sich aus der Reflexionsrichtung, die mit einem definierten Faktor multipliziert und auf den Startpunkt aufaddiert wird
Strahlverfolgung Verfolgen der Strahlen in der Szenenrepräsentation durch Zeichnen von Linienprimitiven Entspricht einer Diskretisierung der Strahlen Schnittpunktbestimmung nur noch an den Fragmenten der Linie Dazu werden die Linien zeilenweise in eine Textur gezeichnet Zusätzlich speichert ein Fragment den geringsten Abstand zu einem Objekt der Szene
Schnittpunktbestimmung Suche des ersten Schnittpunktes in der zuvor erstellten Textur durch horizontales Reduzieren Vergleichen der Werte eines Blocks in einer Zeile Zwei Arten der Schnittpunktbestimmung Z 4 6 7 1 Reduce Schwellwertbasiert Lineare Interpolation 123456781234567 4 7
Schwellwertbasierte Schnittpunktbest. Unterschreiten eines definierten Wertes für den Abstand, wird als Schnittpunkt angesehen Nachteile: Genauigkeit der Schnittpunkte vom Schwellwert abhängig Fehlklassifikationen möglich, wenn Strahl an einem Objekt vorbei geht Z sehr geringe Distanz zur Oberfläche
Lineare Interpolation Abstände werden als Funktionswerte angesehen Von dieser Funktion werden die Nullstellen gesucht Suchen zweier Z f(x) benachbarter Funktionswerte mit unterschiedlichem Vorzeichen Lineare Interpolation der Nullstelle zwischen diesen Werten interpolierter Schnittpunkt x
Vergleich der Schnittpunktsbest. Spiegelung der Kugel im Bild des schwellwertbasierten Verfahrens (li.) wirkt größer
Zusammensetzen des endgültigen Bildes Bestimmung der Farbe aus einem Schnittpunkt durch erneutes Auslesen der LDCM Schicht bestimmt durch geringsten Abstand zum Schnittpunkt Erstellen einer Reflexionstextur Zeichnen der Szene mit dieser Reflexionstextur
Gliederung Motivation Szenenrepräsentation Perspektivische LDCM Orthographische LDCM Strahlgenerierung Strahlverfolgung Schnittpunktsbestimmung Schwellwertbasiert Lineare Interpolation Zusammensetzen des endgültigen Bildes Erweiterungen des Verfahrens ZweiPass Strahlverfolgung Rekursives Verfolgen der Strahlen Lokale Beleuchtung Alternative Schnittpunktsbestimmung Hybride Strahlverfolgung Ergebnisse
ZweiPass Strahlverfolgung Die Strahlverfolgung ist mit der aufwendigste Teil der Reflexionserstellung Aufspalten der Schnittpunktbestimmung in zwei Teile Strahl mit wenigen Fragmenten annähern und Schnittpunkt zwischen zwei Fragmenten ungefähr bestimmen Neuer Strahl zwischen diesen Fragmenten zur Verfeinerung des Schnittpunktes Wesentlich schnellere Erstellung der Reflexion Schnittpunktbestimmung nicht zuverlässig genug für wenige Fragmente
Rekursives Verfolgen der Strahlen Wesentlich für eine Verbesserung der Qualität Aus den bestimmten Schnittpunkten werden wiederum neue Strahlen generiert LDCM muss zusätzlich die Oberflächennormale speichern Diese werden verfolgt und in der Reflexionstextur mit der Farbe der Oberfläche vermischt
Lokale Beleuchtung Bisher vorausberechnete Farbwerte in LDCM Spekularer Anteil jedoch abhängig von Betrachtungsrichtung LDCM speichert nur noch MaterialIdentifier Beleuchtungsrechnung findet erst statt nachdem Schnittpunkt bestimmt ist Wie bei rekursiven Spiegelungen ebenfalls Normale in der LDCM nötig
Alternative Schnittpunktbest. Anstatt Linien zu Zeichnen Verwendung einer Schleife im Shader Begrenzung der maximalen Schleifendurchläufe mehrere Renderingdurchläufe für lange Strahlen Vorteile vor allem bei neuesten Graphikkarten Zeichnen einzelner Punkte entfällt Wesentlich weniger Geometrielast Ausnutzung der erweiterten Möglichkeiten der Kontrollstrukturen (EarlyOut)
Hybride Strahlverfolgung Idee: Nutzen der Geschwindigkeit des LineTracings zur effizienten Beschleunigung eines StandardRayTracings Dabei wird auf der Graphikkarte lediglich das getroffene Objekt und ein ungefährer Schnittpunkt mit diesem bestimmt Ein StandardRayTracer berechnet dann den genauen Schnittpunkt und bestimmt die Farbe Vorteil: Beschleunigungsstrukturen müssen lediglich für jedes Objekt der Szene erstellt werden Nachteil: Fehler des LineTracings pflanzen sich auf das endgültige Bild fort
Hybride Strahlverfolgung (II) LineTracing Hybrid
Gliederung Motivation Szenenrepräsentation Perspektivische LDCM Orthographische LDCM Strahlgenerierung Strahlverfolgung Schnittpunktsbestimmung Schwellwertbasiert Lineare Interpolation Zusammensetzen des endgültigen Bildes Erweiterungen des Verfahrens ZweiPass Strahlverfolgung Rekursives Verfolgen der Strahlen Lokale Beleuchtung Alternative Schnittpunktsbestimmung Hybride Strahlverfolgung Ergebnisse
Ergebnisse Reflexionen können ausreichend schnell generiert werden um Bilder in Echtzeit darzustellen Vergleich der Renderings (folgende Folien) zu einem RayTracing (Ziel, li.) einer einfachen Cubemap (Abgrenzung, re.)
Ergebnisse (II)
Ergebnisse (III)
VIELEN DANK für die Aufmerksamkeit FRAGEN????