Commit c5fab255 by Werner Westerkamp

weiter geht's

parent 1005b47e
Pipeline #151 passed with stage
...@@ -9,12 +9,12 @@ ...@@ -9,12 +9,12 @@
\begin{center} \begin{center}
\includegraphics[width=1\textwidth]{Bilder/Beispiele.png} \includegraphics[width=1\textwidth]{Bilder/Beispiele.png}
\label{img:beispiel} \label{img:beispiel}
\caption{Einige Beispielbilder: a) Kaustiken mit unterschiedlichen Ring-BRDFs, b) indirekte Highlights c) diffuse Reflexion d) glossy Reflexionen e) eine Punktlichtquelle f) Umgebungslicht \cite{Wang09asia}} \caption{Einige Beispielbilder: (a) Kaustiken mit unterschiedlichen Ring-BRDFs, (b) indirekte Highlights, (c) diffuse Reflexion, (d) glossy Reflexionen, (e) eine Punktlichtquelle, (f) Umgebungslicht \cite{Wang09asia}}
\end{center} \end{center}
\end{figure} \end{figure}
Die korrekte Beleuchtungsberechnung ist ein zentraler Bestandteil der Computergrafik. Die korrekte Beleuchtungsberechnung ist eine zentrale Aufgabenstellung der Computergrafik.
Hierbei ist die indirekte Beleuchtung ein langjähriges Problem. Hierbei ist die indirekte Beleuchtung ein langjähriges hartnäckiges Problem.
Besonders bei Szenen mit vielen unterschiedlichen Materialien stellt dieses eine große Herausforderung dar. Besonders bei Szenen mit vielen unterschiedlichen Materialien stellt dieses eine große Herausforderung dar.
Es gibt einige Algorithmen, die sich für bestimmte Materialien gut eignen, aber bei anderen keine guten Resultate liefern. Es gibt einige Algorithmen, die sich für bestimmte Materialien gut eignen, aber bei anderen keine guten Resultate liefern.
...@@ -45,11 +45,11 @@ Diese werden bei diesen Materialien durch Glanzlichter sichtbar wie in Abbildung ...@@ -45,11 +45,11 @@ Diese werden bei diesen Materialien durch Glanzlichter sichtbar wie in Abbildung
\section{Photon Mapping} \section{Photon Mapping}
\label{ch:Content1:sec:Section2} \label{ch:Content1:sec:Section2}
%% =========================== %% ===========================
Bei Photon Mapping \cite{Jensen:2001:RIS:500844} wird Photonen von der Lichtquelle ausgesendet, in der Szene verteilt und in einer Photon Map gespeichert. Beim Photon Mapping \cite{Jensen:2001:RIS:500844} werden Photonen von der Lichtquelle ausgesendet, in der Szene verteilt und in einer Photon Map gespeichert.
Im zweiten Durchlauf wird mit Raytracing Methoden die Photon Map ausgewertet. Im zweiten Durchlauf wird die Photon Map mit Raytracing Methoden ausgewertet.
\section{Precomputed Radiance Transfer} \section{Precomputed Radiance Transfer}
Bei Precomputed Radiance Transfer \cite{Sloan:2002:PRT:566654.566612} wird indirektes Licht in Echtzeit erreicht, indem der Lichttransport in statischen Szenen vorberechnet und gespeichert wird. Beim Precomputed Radiance Transfer \cite{Sloan:2002:PRT:566654.566612} wird die Darstellung von indirektem Licht in Echtzeit erreicht, indem der Lichttransport in statischen Szenen vorberechnet und gespeichert wird.
Zum Speichern wird hierbei eine effiziente Methode benötigt, wie zum Beispiel Spherical Harmonics. Zum Speichern wird hierbei eine effiziente Methode benötigt, wie zum Beispiel Spherical Harmonics.
...@@ -58,7 +58,7 @@ Zum Speichern wird hierbei eine effiziente Methode benötigt, wie zum Beispiel S ...@@ -58,7 +58,7 @@ Zum Speichern wird hierbei eine effiziente Methode benötigt, wie zum Beispiel S
\chapter{BRDF und Spherical Gaussians} \chapter{BRDF und Spherical Gaussians}
\label{ch:Content2} \label{ch:Content2}
%% ============== %% ==============
In diesem Kapitel werden die Grundlagen des Lichttransports und Sphericla Gaussians eingeführt. In diesem Kapitel werden die Grundlagen des Lichttransports und Spherical Gaussians eingeführt.
Zur physikalischen Beleuchtungsberechnung muss hierzu die Rendergleichung \cite{Kajiya:1986:RE:15886.15902} berechnet werden. Zur physikalischen Beleuchtungsberechnung muss hierzu die Rendergleichung \cite{Kajiya:1986:RE:15886.15902} berechnet werden.
\begin{equation} \begin{equation}
...@@ -70,13 +70,13 @@ $ L_e(x,o)$ ist das von dem Oberflächenpunkt emittierte Licht, und das Integral ...@@ -70,13 +70,13 @@ $ L_e(x,o)$ ist das von dem Oberflächenpunkt emittierte Licht, und das Integral
Das reflektierte Licht wird bestimmt durch das Integral über die positive Hemisphäre, wobei $ L_i(x,i)$ das einfallende Licht aus der Richtung $i$ (incoming) und Das reflektierte Licht wird bestimmt durch das Integral über die positive Hemisphäre, wobei $ L_i(x,i)$ das einfallende Licht aus der Richtung $i$ (incoming) und
$max(0,i\cdot n)$ der Kosinus zwischen der Oberflächennormalen $n$ und $i$ ist. $max(0,i\cdot n)$ der Kosinus zwischen der Oberflächennormalen $n$ und $i$ ist.
$f_r(i,x,o)$ (kurz $f_r(i,o)$) ist die \textit{Bidirectional Reflectance Distribution Function} (BRDF). $f_r(i,x,o)$ (kurz $f_r(i,o)$) ist 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 Ausfallrichtung $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 Rendergleichung \ref{renderingGleichung} kann $L_i(x,i) = L(y,-i) $ mit $y = ray(x,i)$ geschrieben werden. 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. 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 berechnen zu können. Diese zu lösen ist eine komplexe Aufgabe und wird häufig approximiert 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. Z.B. ignoriert man indirekte Beleuchtung vollständig und betrachtet nur alle Oberflächen, bei denen $L_e > 0$ ist.
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 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 Reflexion auswertet. In dieser Ausarbeitung wird ein Algorithmus vorgestellt, der die Gleichung mit einer indirekten Reflexion auswertet.
...@@ -117,26 +117,27 @@ Hierbei ist $I_L$ die einfallende Lichtintensität, $k_d$ und $k_s$ materialabhà ...@@ -117,26 +117,27 @@ Hierbei ist $I_L$ die einfallende Lichtintensität, $k_d$ und $k_s$ materialabhÃ
\includegraphics[width=\linewidth]{Bilder/SG3.jpg}\\ \includegraphics[width=\linewidth]{Bilder/SG3.jpg}\\
d) Mehrere SG d) Mehrere SG
\end{minipage} \end{minipage}
\caption{a) Spekulare Reflexion im Phong Beleuchtungsmodell b-d) Überlagerung von mehreren SG's \cite{Glossy} \cite{Wang09asia}} \caption{a) Spekulare Reflexion im Phong Beleuchtungsmodell b) bis d) Überlagerung von mehreren SG's \cite{Glossy} \cite{Wang09asia}}
\label{fig:SG} \label{fig:SG}
\end{figure} \end{figure}
\todo{cite Images} \todo{cite Images}
Eine Möglichkeit BRDF's zu approximieren, bieten Spherical Gaussians (SG) \ref{fig:SG}. Eine Möglichkeit BRDF's zu approximieren, bieten Spherical Gaussians (SG) \ref{fig:SG}.
Spherical Gaussians sind definiert als Spherical Gaussians sind definiert durch folgende Darstellung:
$$G(v;p,\lambda,c) = c\cdot e{^{\lambda(v \cdot p-1)}}$$ $$G(v;p,\lambda,c) = c\cdot e{^{\lambda(v \cdot 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)$ Folgende kurze Schreibweisen werden häufig verwendet $G_l(v)=G(v;p_l,\lambda_l) = G(v;p_l,\lambda_l,1)$.
BRDFs können in eine Summe aus einem diffusen und einem spekularen Anteil zerlegt werden: BRDFs können in eine Summe aus einem diffusen und einem spekularen Anteil zerlegt 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 die spekulare Komponente als Summe von SGs dargestellt werden kann: In Wang et al.\cite{Wang09asia} wird beschreiben, wie die spekulare Komponente als Summe von SGs dargestellt werden kann:
$$K_sf_r(i,o) \approx \sum \limits_{j=1}^n G(i,o^j,\lambda^j,c^j)$$ $$k_sf_r(i,o) \approx \sum \limits_{j=1}^n G(i;o^j,\lambda^j,c^j)$$
mit $o^j$, $\lambda^j$, $c^j$ als Zentrum, sharpness und Koeffizient der $j$ SG. mit den Zentren $o^j$, den sharpnesses $\lambda^j$ und den Koeffizienten $c^j$.
Die diffuse Komponente kann als SG mit 0 sharpness dargestellt werden. Die diffuse Komponente kann als SG mit einer sharpness von $0$ dargestellt werden.
$$ kd = G(i;2(o\cdot n)n-o,0,k_d)$$ $$ k_d = G(i;2(o\cdot n)n-o,0,k_d)$$
Es kann somit die BRDF als Summe von SGs dargestellt werden. In \cite{Wang09asia} lassen sich hierfür Beispiele finden, z.B. für Bling-Phong und Cook-Torrance. Somit kann die BRDF als Summe von SGs 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 SGs ($G_l(i)$) dargestellt werden und somit kann eine einheitliche Darstellung als Summe von SGs erzielt werden. Des Weiteren können Lichtquellen auch als SGs ($G_l(i)$) dargestellt werden. Dadurch kann eine einheitliche Darstellung als Summe von SGs erzielt werden.
\todo{ich habe die Formeln verbessert (oder verschlechtert). Bitte genau prüfen. Unklar ist mir noch die letzte Formel in diesem Absatz. Hier taucht kd nun auf BEIDEN Seiten auf. Ist das ok? }
%% ============== %% ==============
...@@ -380,8 +381,8 @@ Jede mögliche Kombination zwischen Reflektor 1 und 2 müsste betrachtet werden. ...@@ -380,8 +381,8 @@ Jede mögliche Kombination zwischen Reflektor 1 und 2 müsste betrachtet werden.
\begin{center} \begin{center}
\includegraphics[width=1\textwidth]{Bilder/Compare.png} \includegraphics[width=1\textwidth]{Bilder/Compare.png}
\label{img:Compare} \label{img:Compare}
\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. \caption{Vergleich der indirekten Reflexion mit unterschiedlich spekularen Materialien. Reihe 1 ist ein diffuser Reflektor und Reihen 2 bis 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} } Spalte (a) bis (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} }
\end{center} \end{center}
\end{figure} \end{figure}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment