Commit 96685438 by Werner Westerkamp

Ende erster Durchgang

parent 0fcf37f9
Pipeline #143 passed with stage
...@@ -265,37 +265,37 @@ Aus den Werten wird der Durchschnitt berechnet und zu dem Dreieck gespeichert. ...@@ -265,37 +265,37 @@ Aus den Werten wird der Durchschnitt berechnet und zu dem Dreieck gespeichert.
Die Sichtbarkeit zwischen Reflektor und Retriever ist schwieriger zu bestimmen. Die Sichtbarkeit zwischen Reflektor und Retriever ist schwieriger zu bestimmen.
Zunächst werden während der Initialisierung 200 virtuelle Lichter in der Szene verteilt um zur Laufzeit Imperfect Shadow Maps \cite{ISM} zu berechnen. \todo{warum 200? Es können auch andere Werte sinnvoll sein} Zunächst werden während der Initialisierung 200 virtuelle Lichter in der Szene verteilt um zur Laufzeit Imperfect Shadow Maps \cite{ISM} zu berechnen. \todo{warum 200? Es können auch andere Werte sinnvoll sein}
Imperfect Shadow Maps sind Shadowmaps mit geringer Auflösung für jedes virtuelle Lichtquelle. Imperfect Shadow Maps sind Shadow Maps mit geringer Auflösung für jede virtuelle Lichtquelle.
In den Knoten der Baumstruktur werden die drei nächsten Lichter gespeichert. In den Knoten der Baumstruktur werden die drei nächsten Lichter gespeichert.
Bei der Berechnung der Sichtbarkeit wird der Mittelpunkt der Knoten, bzw des Dreiecks in die Ebene der drei Punktlichtquellen projiziert. Bei der Berechnung der Sichtbarkeit wird der Mittelpunkt der Knoten, bzw. des Dreiecks in die Ebene der drei Punktlichtquellen projiziert.
Die Werte aus den zugehörigen ISM werden ausgelesen und mit Hilfe von baryzentrische Koordinaten linear gemittelt. Die Werte aus den zugehörigen ISM werden ausgelesen und mit Hilfe von baryzentrische Koordinaten linear gemittelt.
\section{Umsetztung des Algorithmus} \section{Umsetztung des Algorithmus}
Zur Initialiserung muss die Szene geladen werden und die Baumstruktur errechnet werden. Zur Initialiesrung muss die Szene geladen und die Baumstruktur errechnet werden.
Hier wird für jedes Mesh das mehr als 200 Dreiecke enthält der Binärbaum errechnet. Hier wird für jedes Mesh, das mehr als 200 Dreiecke enthält, der Binärbaum errechnet.
Für kleinere Dreiecksnetze ist es effizienter die Reflexion von allen Dreiecken auszurechnen. Für kleinere Dreiecksnetze ist es effizienter die Reflexion von allen Dreiecken auszurechnen.
Während eines eigenen Renderdurchgangs wird zunächst die direkte Beleuchtung der Szene bestimmt. Während eines eigenen Renderdurchgangs wird zunächst die direkte Beleuchtung der Szene bestimmt.
Anschließend muss für jedem Pixel ein Schnitt durch den Baum bestimmt werden. Anschließend muss für jeden Pixel ein Schnitt durch den Baum bestimmt werden.
Dafür wird zunächst für jeden Vertex ein Schnitt bestimmt die dann für die Pixel gemittelt werden. Dafür wird zunächst für jeden Vertex ein Schnitt bestimmt, die dann für die Pixel gemittelt werden. \todo{ist das Relatvpronomen ``die'' richtig? Ich denke, es muss ``der'' (der Schnitt)heißen.}
Im finalen Rendervorgang wird dann der Schnitt ausgewertet und für jeden Pixel die Reflexion berechnet und mit den Werten aus den Shadowmaps gewichtet. Im finalen Rendervorgang wird dann der Schnitt ausgewertet, für jeden Pixel die Reflexion berechnet und mit den Werten aus den Shadow Maps gewichtet.
Um die Performance zu verbessern kann die Schnitt Selektion in CUDA implementiert werden. Um die Performance zu verbessern, kann die Schnitt-Selektion in CUDA implementiert werden.
Jedoch gibt es noch keinen effizienten Prioritätenlisten für CUDA gibt wird diese durch 5 normale Warteschlangen mit unterschiedlichen Fehlern aufgeteilt. Jedoch gibt es noch keine effizienten Prioritätenlisten für CUDA. Die Schnitt-Selektion wird in 5 normale Warteschlangen mit unterschiedlichen Fehlern aufgeteilt. \todo{Stimmt das nach meiner Änderung noch?}
Z.b. die erste Schlange speichert alle Knoten mit Fehlern größer als 16\% und nach dem Splitten werden die Kinder zu eine Liste mit Fehler größer 8\% hinzugefügt. Die erste Schlange speichert z.B alle Knoten mit Fehlern größer als 16\% und nach dem Splitten werden die Kinder zu einer Liste mit Fehler größer als 8\% hinzugefügt. \todo{immer beide Kinder? Ein Kind könnte doch genauer sein}
So erhält man eine nicht ganz akkurate Prioritätenliste, aber eine ausreichend Genaue für diesen Zweck. So erhält man eine nicht ganz akkurate Prioritätenliste, aber eine ausreichend genaue für diesen Zweck.
%% ============== %% ==============
\chapter{Ergebnisse und Vergleiche} \chapter{Ergebnisse und Vergleiche}
\label{ch:Content6} \label{ch:Content6}
%% ============== %% ==============
Soll ich sowas überhaupt behandeln? Soll ich sowas überhaupt behandeln? \todo{unbedingt ;-)}
\begin{figure} \begin{figure}
\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 Reflektion d) golssy Reflektionen 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}
...@@ -304,7 +304,8 @@ Soll ich sowas überhaupt behandeln? ...@@ -304,7 +304,8 @@ Soll ich sowas überhaupt behandeln?
\begin{center} \begin{center}
\includegraphics[width=1\textwidth]{Bilder/Glossiness.png} \includegraphics[width=1\textwidth]{Bilder/Glossiness.png}
\label{img:Glossiness} \label{img:Glossiness}
\caption{Verscheiden spekulare Materialien auf der Ebende und dem Würfel. \cite{Wang09asia}} \caption{Verscheidene spekulare Materialien auf der Ebene und dem Würfel. \cite{Wang09asia} }
\end{center} \end{center}
\end{figure} \end{figure}
\todo{meinst du in der letzten Bildunterschrift: `` Würfel auf Ebenen mit verschiedenen specularen Materialien''}
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