@@ -27,15 +27,15 @@ Die Berechnungsdauer für diese Bilder liegt zwischen fast interaktiv und ein pa
\chapter{Ähnliche Arbeiten}
\label{ch:Content1}
%% ==============
In diesme Kapitel werden eineige Algorithmen vorgestellt die versuchend das Problem der indirekten Beleuchtung zu lösen
In diesem Kapitel werden einige Algorithmen vorgestellt, die versuchen das Problem der indirekten Beleuchtung zu lösen.
%% ===========================
\section{Virtual Point Lights}
\label{ch:Content1:sec:Section1}
%% ===========================
Eine effiziente Lösung für Indirekte Beleuchtung sind Virtual Point Lights (VPL).
Zuerst vorgestellt in dem Paper Instant Radiosity \cite{VPL} werden durch Pfade von der Lichtquelle viele VPLs in der Szene verteilt.
Beim Rendern wird mit Shadowmaps die Einfluss aller VPLS auf einen Oberflächenpunkt bestimmt.
Eine effiziente Lösung für indirekte Beleuchtung sind Virtual Point Lights (VPL).
Diese wurde zuerst in dem Paper Instant Radiosity \cite{VPL} vorgestellt. Dabei werden viele VPLs durch Pfade von der Lichtquelle in der Szene verteilt.
Beim Rendern wird mit Shadow Maps der Einfluss aller VPLs auf einen Oberflächenpunkt bestimmt.
Der Aufwand für diesen Vorgang steigt linear mit Anzahl der VPLs.
Es gibt einige Verbesserungen für diesen Algorithmus, jedoch eignet er sich wenig für spekulare Materialien.
Die indirekte Beleuchtung wird bei diesem Vorgehen in einige Punkte zusammengefasst.
...
...
@@ -74,17 +74,17 @@ Die BRDF ist vom Material abhängig und gibt an einem Oberflächenpunkt x an, wi
In der Rendergleichung \ref{renderingGleichung} kann $L_i(x,i)= L(y,-i)$ mit $y = ray(x,i)$ geschrieben werden.
Somit erhält man eine rekursive Darstellung.
Diese zu lösen ist eine komplexe Aufgabe und wird häufig durch Approximationen angenähert und vorberechnet, um Beleuchtung in Echtzeit zu berechnen.
Diese zu lösen ist eine komplexe Aufgabe und wird häufig durch Approximationen angenähert und vorberechnet, um Beleuchtung in Echtzeit berechnen zu können.
Z.B. ignoriert man alle indirekte Beleuchtung und betrachtet nur alle Oberflächen, bei denen $L_e > 0$ ist.
In Raytracing Methoden wird die Rendergleichung versucht durch Monte Carlo Intagration und geschicktes Sampling der BRDF anzunähern.
In Raytracing Methoden wird versucht die Rendergleichung durch Monte Carlo Integration und geschicktes Sampling der BRDF anzunähern. \todo{ich habe Integration geschrieben. hoffentlich war das gemeint}
In dieser Ausarbeitung wird ein Algorithmus vorgestellt der die Gleichung mit einer indirekten Reflektion auswertet.
In dieser Ausarbeitung wird ein Algorithmus vorgestellt, der die Gleichung mit einer indirekten Reflexion auswertet.
\caption{Richtungen im Phong Beleuchtungsmodel. N ist die Oberflächennormale, V der Viewvektor, L der Lichtvektor und R die Reflektion von L an N (Vorlesung Fotorealistische Bildsynthese 02\_BRDF)}
\caption{Richtungen im Phong Beleuchtungsmodel. N ist die Oberflächennormale, V der Viewvektor, L der Lichtvektor und R die Reflexion von L an N (Vorlesung Fotorealistische Bildsynthese 02\_BRDF)}
\end{center}
\end{figure}
Eine einfache BRDF ist durch das Phong Beleuchtungsmodell gegeben.
...
...
@@ -100,7 +100,7 @@ Hierbei ist $I_L$ die einfallende Lichtintensität, $k_d$ und $k_s$ materialabhÃ
@@ -341,7 +341,7 @@ So erhält man eine nicht ganz akkurate Prioritätenliste, aber eine ausreichend
In diesem Kapitel wird der vorgestellete Algorithmus mit anderen verglichen. Außerdem wird die Wahl der Punktlichter und des Fehler Grenzwertes betrachtet.
\section{Genauigkeit des Algorithmus}
In Abbildung \ref{img:Compare} wird die Indirekte Reflektion eines Dreiecks mit unterschiedlichen BRDF's.
In Abbildung \ref{img:Compare} wird die indirekte Reflexion eines Dreiecks mit unterschiedlichen BRDF's.
In der Szene steht das Reflektor Dreieck senkrecht auf eine Ebene und ein Licht im 45 Grad Winkel zur Ebene.
Die Ebene hat eine Lambert BRDF und das Dreieck hat pro Reihe eine unterschiedliche Glossiness.
Der vorgestellte Algorithmus hat bereits bei eine 3 geteilten Approximation der Funktion \ref{1DFunction} sehr starke Ähnlichkeiten zur Referenz.
...
...
@@ -355,17 +355,17 @@ Auch die Wahl von 200 Virtual Pointlights zur Bestimmung der Sichtbarkeit wurde
Weniger Lichter führt zu sichtbaren Fehlern und ab 200 sind die Bilder sehr ähnlich zur Referenz.
\section{Vergleiche und Fazit}
In Abbildung \ref{img:Compare} sind Vergleichsbilder mit VPL gegeben. Hier kann man erkennen, das VPLs für diffuse Materialien gut funktionieren.
In Abbildung \ref{img:Compare} sind Vergleichsbilder mit VPL gegeben. Hier kann man erkennen, dass VPLs für diffuse Materialien gut funktionieren.
Bei spekularen Materialien werden jedoch sehr schnell Artefakte sichtbar.
In Vergleich zu Photon Mapping in ähnlicher Zeit produziert der Algorithmus weniger rauschen.
Mit vieler mehr Photonen lassen sich bessere Ergebnisse erzielen, jedoch ist es dann nicht mehr fest interaktiv.
Bei einfachen Szenen mit verschiedensten Materialien werden gute Bilder errechnet (siehe Abbildung \ref{img:Glossiness}.
In Vergleich zu Photon Mapping produziert der Algorithmus in ähnlicher Zeit weniger Rauschen.
Mit viel mehr Photonen lassen sich bessere Ergebnisse erzielen, jedoch ist es dann nicht mehr fest interaktiv. \todo{fest oder fast?}
Bei einfachen Szenen mit verschiedenen Materialien werden gute Bilder errechnet (siehe Abbildung \ref{img:Glossiness}.
Auch für komplexere, texturierte Szenen überzeugt der Algorithmus und kann sogar überzeugende Kaustiken berechnen (siehe Abbildung \ref{img:beispiel}).
Die Performance auf einer NVIDIA Geforce GTX690 Grafikkarte reichen von 0,03 fps bei 720p für sehr komplexe Szenen bis zu 1,4 fps bei einfachen Szenen (Magic cube).
Der Algorithmus erreicht also gute Ergebnisse für Szenen mit vielen unterschiedlichen Materialien und ist dabei fast Interaktiv.
Die Grenze liegt jedoch bei indirekter Beleuchtung mit einer Reflektion.
Indirektes Licht über mehrere Reflexionen werden nicht betrachtet.
Prinzipiell könnte man den Algorithmus so anpassen das auch 2 Reflexionen betrachtet werden, jedoch liegt der Aufwand bei $O(N^2)$ mit N Dreiecken.
Die Performance auf einer NVIDIA Geforce GTX690 Grafikkarte reicht von 0,03 fps bei 720p für sehr komplexe Szenen bis zu 1,4 fps bei einfachen Szenen (Magic cube).
Der Algorithmus erreicht also gute Ergebnisse für Szenen mit vielen unterschiedlichen Materialien und ist dabei fast interaktiv.
Die Grenze liegt jedoch bei indirekter Beleuchtung mit maximal einer Reflexion.
Indirektes Licht über mehrere Reflexionen wird nicht betrachtet.
Prinzipiell könnte man den Algorithmus so anpassen, dass auch 2 Reflexionen betrachtet werden, jedoch liegt der Aufwand bei $O(N^2)$ mit $N$Dreiecken.
Jede mögliche Kombination zwischen Reflektor 1 und 2 müsste betrachtet werden.
\begin{figure}
...
...
@@ -380,8 +380,8 @@ Jede mögliche Kombination zwischen Reflektor 1 und 2 müsste betrachtet werden.
\caption{Vergleich der Indirekten Reflektion mit unterscheidlich Spekulraren Materialien. Reihe 1 ist eine diffuser Reflektor und Reihe 2-5 jeweisl Blinn-Ohong mit Shininess 10,100,1000 und 10000.
Spalte a)-c) sind mit dem vorgestellten Algorithmus bestimmt mit untescheidlich vielen linearen Stücken der Funktion \ref{1DFunction}d) ist mit 265 VPL erstellt und e) eine path-traced Referenz \cite{Wang09asia}}
\caption{Vergleich der indirekten Reflexion mit unterschiedlich spekularen Materialien. Reihe 1 ist eine diffuser Reflektor und Reihe 2-5 jeweils Blinn-Ohong mit Shininess 10,100,1000 und 10000.
Spalte a)-c) sind mit dem vorgestellten Algorithmus mit unterschiedlich vielen linearen Stücken der Funktion \ref{1DFunction} bestimmt d) ist mit 265 VPL erstellt und e) eine path-traced Referenz \cite{Wang09asia}}