Hierbei ist $ L(x,o)$ die Radiance die an einem Oberflächenpunkt x in die Richtung o (outgoing) abgegebn wird.
Hierbei ist $ L(x,o)$ die Radiance die an einem Oberflächenpunkt x in die Richtung o (outgoing) abgegeben wird.
$ L_e(x,o)$ ist dei von dem Oberfläöchenpunkt emitierte Licht, und das Integral das reflektierte Licht in die Richtung o.
$ L_e(x,o)$ ist die von dem Oberflächenpunkt emittierte Licht, und das Integral das reflektierte Licht in die Richtung o.
Das reflektierte Richt wird bestimmt durch das Intergral über die positive Hemisphäre, wobei $ L_i(x,i)$ das einfallende Licht aus der Richtiung i (incoming),
Das reflektierte Richt wird bestimmt durch das Integral über die positive Hemisphäre, wobei $ L_i(x,i)$ das einfallende Licht aus der Richtung i (incoming),
$cos\theta_i$ der Winkel zwischen der Oberflächennormale und $\omega_i$
$max(0,i\cdot n)$ der Winkel zwischen der Oberflächennormale n und i,
nd $f_r(i,x,o)$ (kurz $f_r(i,o)$) die \textit{Bidirectional Reflectance Distribution Function} (BRDF).
nd $f_r(i,x,o)$ (kurz $f_r(i,o)$) die \textit{Bidirectional Reflectance Distribution Function} (BRDF).
Die BRDF ist vom Material abhängig und gibt an einem Oberflächenpunkt x an wie viel Licht vom Einfallswinkel i in die Ausfallsrichtung o reflektiert wird.
Die BRDF ist vom Material abhängig und gibt an einem Oberflächenpunkt x an wie viel Licht vom Einfallswinkel i in die Ausfallrichtung o reflektiert wird.
In der Render Gleichung \ref{renderingGleichung} ist $L_i(x,i)= L(y,-i)$ mit $y = ray(x,i)$ geschreiben werden. Somit erhält man eine rekursive Darstellung.
In der Rendergleichung \ref{renderingGleichung} ist $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 haufig durch Aproximationen anegnähert und Vorberechntet 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 zu berechnen.
Z.B. ignoriert man alle indirekte Beleuchtung und betrachtet nur alle Oberflächen, bei denen $L_e$ > 0 ist.
Z.B. ignoriert man alle indirekte Beleuchtung und betrachtet nur alle Oberflächen, bei denen $L_e$ > 0 ist.
In dieser Ausarbeitung wird ein Algorythmus vorgestellt der die Gleichung mit einer indirekten Reflektion auswertet.
In dieser Ausarbeitung wird ein Algorithmus vorgestellt der die Gleichung mit einer indirekten Reflektion auswertet.
\todo{Quelle 02 BRDF Photosynthese S34}
\todo{Quelle 02 BRDF Photosynthese S34}
...
@@ -63,40 +63,104 @@ In dieser Ausarbeitung wird ein Algorythmus vorgestellt der die Gleichung mit ei
...
@@ -63,40 +63,104 @@ In dieser Ausarbeitung wird ein Algorythmus vorgestellt der die Gleichung mit ei
\end{center}
\end{center}
\end{figure}
\end{figure}
Eine einfache BRDF ist durch das Phong Beleuchtungsmodell gegeben.
Eine einfache BRDF ist durch das Phong Beleuchtungsmodell gegeben.
Die Beleuchtung wird in eine diffuse und Spekulare Komponennte getrennt.
Die Beleuchtung wird in eine diffuse und Spekulare Komponente getrennt.
Der diffuse Anteil wird brechnet durch $k_d*I_L*(N*L)$ und der spekulrare Anteil durch $k_s*I_L*(R*V)^n$.
Der diffuse Anteil wird berechnet durch $k_d*I_L*(N\cdot L)$ und der spekulrare Anteil durch $k_s*I_L*(R\cdotV)^n$.
Hierbei ist $I_L$ die einfallende Lichtintensität, $k_d$ und $k_s$ materialabhängige Konstannten und n der Phong Exponent, der die Größe der spekularen Glanzlichter beeinflusst.
Hierbei ist $I_L$ die einfallende Lichtintensität, $k_d$ und $k_s$ materialabhängige Konstanten und n der Phong Exponent, der die Größe der spekularen Glanzlichter beeinflusst.
\subsection{Spherical Gausians}
\section{Spherical Gausians}
\label{ch:Content2:sec:Section1}
\label{ch:Content2:sec:Section1}
Eine Möglichkeit BRDF's zu approximieren bieten Spherical Gausians (SG).
Eine Möglichkeit BRDF's zu approximieren bieten Spherical Gausians (SG).
Spherical Gaussian sind definiert als
Spherical Gaussian sind definiert als
$$G(v;p,\lambda,c)= c^{\lambda(v*p-1)}$$
$$G(v;p,\lambda,c)= c^{\lambda(v*p-1)}$$
mit p als Mittelachse, $\lambda$ als sharpness und c als Skalar.
mit p als Mittelachse, $\lambda$ als sharpness und c als Skalar.
Als kurze Schreibweise ist $G_l(v)=G(v;p_l,\lambda_l)= G(v;p_l,\lambda_l,1)$
BRDFsS können als Summe aus einem diffusen und einer spekularen Anteil beschrieben werden:
BRDFsS können als Summe aus einem diffusen und einer spekularen Anteil beschrieben werden:
$$f_r(i,o)= k_d+k_sf_s(i,o)$$
$$f_r(i,o)= k_d+k_sf_s(i,o)$$
In Wang et al.\cite{Wang09asia} wird beschreiben wie man die spekulare Komponetnte als Summe von SG dargestellt werden kann.
In Wang et al.\cite{Wang09asia} wird beschreiben wie man die spekulare Komponente als Summe von SG dargestellt werden kann.
mit $o^j$, $\lambda^j$, $c^j$ als Zentrum, sharpness und Koeffizeint der j. SG.
mit $o^j$, $\lambda^j$, $c^j$ als Zentrum, sharpness und Koeffizient der j. SG.
Die Diffuse Komponente kann als SG mit 0 sharpness dargestellt werden.
Die Diffuse Komponente kann als SG mit 0 sharpness dargestellt werden.
$$ kd = G(i;2(o*n)n-o,0,k_d)$$
$$ kd = G(i;2(o*n)n-o,0,k_d)$$
Es kann somit die BRDF als Summe von SG dargestellt werden. In \cite{Wang09asia} lassen sich hierfür Beispile finden , z.b. für Bling-Phong und Cook-Torrance.
Es kann somit die BRDF als Summe von SG dargestellt werden. In \cite{Wang09asia} lassen sich hierfür Beispiele finden, z.b. für Bling-Phong und Cook-Torrance.
Des weiteren können Lichtquellen auch als SG ($G_l(i)$) dargestellt werden und somit eine einheitliche Darstellung als Summe von SG erzielt werden.
%% ==============
\chapter{Basis Algorythmus und One-bounce Interreflection}
\label{ch:Content3}
%% ==============
In dem Paper von Xu et al. \cite{Xu:2014:PAR:2577382.2533687} wird ein Algorithmus vorgestellt der die Rendergleichung für die Rekursionstiefe 1 löst.
Zur Beleuchtung eines Dreiecks (Empfänger) wird zusätzlich das indirekte Licht von anderen Dreiecken (Reflektor) berechnet.
Dabei wird die SG Darstellung von BRDF's verwendet und daraus eine stückweise definierte Approximation hergeleitet um die Beleuchtung effizienter zu berechnen.
Anschließend wird eine Baumstruktur \ref{ch:Content4} eingeführt um diesen Algorithmus auch bei großen Szenen effizient anwenden zu können.
Da nicht jedes Dreieck zu allen andern sichtbar ist und somit eine indirekt beleuchtet wird zuletzt eine Lösung für das Sichtbarkeitsproblem \ref{ch:Content5} beschrieben.
Beim Receiver wird hier die SG der Lichtquelle eingesetzt.
\subsection{Reflektiertes Licht}
Im folgenden approximiern wir die Gleichung \ref{reflectorEQ}, um eine besser berechenbare Funktion zu erhalten.
Der Cosinus Term $max(0,i\cdot n_r)$ durch die mittlere Richtung des Dreiecks T annähern.
Damit erhält man die Konstannte $max(0,i_T(r)\cdot n_r)$ die man aus dem Integral ziehen kann.
Die BRDF $f_r(i,y,r)$ ist wie in Kapitel \ref{ch:Content2:sec:Section1} beschreiben als Summe von SG darstellbar $f_r(i,y,r)\approx G_T(i)$.
Das Integral über 2 SG kann durch ein SG angenähert werden (siehe Anhang von \cite{Wang09asia}).
Daraus ergibt sich eine Gleichung mit einer glatten Funktion und einer SG (genauen Parameter nahczulesen im paer von Wu et al. \ref{ch:Content2:sec:Section1})
\begin{equation}
\label{reflectorEQ2}
L(y,r) \approx F(r) G(r;i_r,\lambda_r)
\end{equation}
\subsection{Beleuchtung mit dem reflektiertem Licht}
Die Gleichung \ref{reflectorEQ2} wird nun in \ref{recieverEQ} eingesetzt und die BRDF als Summe von SG's ersetzt.
Das Produkt zweier SG lässt sich durch eine SG ersetzen und die Funktion $ F(r)max(0,-r\cdot n_x)$ ist ``wirklich glatt'' \cite{Wang09asia} kann man es aus dem Integral ziehen.
Somit erhält man eine vereinfachte Version der Rendergleichung: