Commit 82346b64 authored by Lukas Tietze's avatar Lukas Tietze

Alte Version des Themenvorschlags entfernt

parent 1970bb6e
\section{Grundlagen der Aufgabe}
Die Ausarbeitung soll sich sprachlich auf einem Niveau befinden, das f眉r Leser mit grundlegenden Kenntnissen
眉ber Computergrafik, Geometrie im dreidimensionalen Raum und Programmierung in modernem C++ verst盲ndlich ist.
Fachbegriffe sollen dennoch kurz wiederholt werden. Oft haben Fachbegriffe keine deutsche Entsprechung oder die deutsche
Entsprechung ist zu unhandlich und zu unbekannt, sodass auf englische Begriffe im Flie脽text nicht verzichtet
werden kann. Sofern m枚glich sollen Prinzipien nicht nur beschrieben, sondern grafisch dargestellt werden.\\
Der Grundgedanke ist, eine Palette von grafischen Effekten vertieft zu betrachten und an diesen Effekten die
M枚glichkeiten und Einschr盲nkungen von Raytracing zu erkunden.
\section{Grundlagen von Raytracing}
Zun盲chst sollen die Grundlagen von Raytracing und die wichtigen Begriffe kurz umrissen werden um eine Basis
f眉r die Verst盲ndlichkeit des Dokuments zu legen. Dies ist auch in der Ausarbeitung selbst erforderlich und
kann dort noch mehr vertieft werden.
%
\paragraph{Strahl/Ray:} Ein Strahl (oder eben Ray) besteht aus einem Startpunkt und einer Richtung (Punkt- und
Richtungsvektor). Der
Kerngedanke des Raytracings ist, die Schnittpunkte eines solchen Strahls mit der Szene zu berechnen. Dieser Prozess
wird in aktuellen Grafikkarten durch spezielle Rechenkerne beschleunigt und erm枚glicht so Raytracing in
Echtzeit. F眉r jeden Schnittpunkt kann danach ein Shader aufgerufen werden, um den Treffer zu
verarbeiten und die Farbe des Trefferpunktes zu bestimmen. Prinzipiell kann ein Strahl eine Vielzahl von
Treffern ausl枚sen, h盲ufig wird jedoch nur der Treffer, der dem Startpunkt des Strahls am n盲chsten liegt,
beachtet.
%
\paragraph{Ray-Payload:} Die Informationen, die mit einem Strahl verkn眉pft sind. Diese sind frei definierbar
und beinhalten zum Beispiel die Farbe des getroffenen Objekts, oder lediglich eine Flag, die anzeigt ob
眉berhaupt ein Objekt getroffen wurde.
%
\paragraph{Schattenf眉hler:} Schattenf眉hler sind besondere Strahlen, die von einem Trefferpunkt eines Strahls
in der Szene ausgesendet werden um zu pr眉fen, ob der getroffene Punkt von der Lichtquelle aus erreichbar ist.
Somit l盲sst sich pr眉fen, ob ein Punkt von einer Lichtquelle aus im Schatten liegt oder nicht.
%
\paragraph{Stochastisches Raytracing:}
Um f眉r einen Punkt eine korrekte Beleuchtung zu berechnen, m眉ssten
theoretisch - der Rendergleichung folgend - unendlich viele Strahlen ausgesendet werden, um alle einfallenden
Lichtstrahlen zur眉ckzuverfolgen. Beim stochastischen Raytracing wird versucht, die Rendergleichung durch eine
Monte-Carlo-Simulation anzun盲hern. Dazu werden Strahlen zuf盲llig leicht variiert, was am Ende ein verrauschtes
Bild erzeugt, aber bessere Ergebnisse liefert (z.B. f眉r weiche Schatten).
\section{Einleitung}
%
\begin{quotation}
There is an old joke that goes, \gquote{Raytracing is the technology of the future and it always will be!}\\
- David Kirk
\end{quotation}
%
Raytracing ist eine Rendertechnik, bei der der Verlauf von Lichtstrahlen und deren Interaktion mit der Umgebung
simuliert wird um photorealisitsche Bilder zu erstellen. Sowohl theoretische Grundlagen, als auch
Implementierung der Technik sind seit Ende der 1960er Jahre bekannt. Die Technik r眉ckte jedoch erst vor
wenigen Jahren in den Fokus der breiten Masse, als mit NVIDIAs RTX-Serie erstmals erschwingliche Grafikkarten
mit Hardwarebeschleunigung f眉r Raytracing auf den Markt kamen und Raytracing in Echtzeit erm枚glichten.\\
Durch den Einsatz in der Spielebranche erlangte die Technik inzwischen einen hohen Bekanntheitsgrad und bietet
sich daher auch als Forschungsthema an. Die Technik unterscheidet sich dabei grundlegend vom klassischen und
praktisch allgegenw盲rtigen Ansatz des Rasterisierens. Dadurch bietet Raytracing viele neue M枚glichkeiten, bringt aber auch
neue Probleme mit sich, die es zu l枚sen gilt. Gerade weil die Technik einen sehr allgemeinen Ansatz f眉r das
Rendern in hoher Qualit盲t bietet, scheint eine Vertiefung der Prinzipien des Raytracings
f眉r zuk眉nftige Forschung und Entwicklung wichtig.
\section{Grundlagen von Raytracing}
Zun盲chst sollen die Grundlagen von Raytracing und die wichtigen Begriffe kurz umrissen werden um eine Basis
f眉r die Verst盲ndlichkeit des Dokuments zu legen. Dies ist auch in der Ausarbeitung selbst erforderlich und
kann dort noch mehr vertieft werden.
%
\paragraph{Strahl/Ray:} Ein Strahl (oder eben Ray) besteht aus einem Startpunkt und einer Richtung (Punkt- und
Richtungsvektor). Der
Kerngedanke des Raytracings ist, die Schnittpunkte eines solchen Strahls mit der Szene zu berechnen. Dieser Prozess
wird in aktuellen Grafikkarten durch spezielle Rechenkerne beschleunigt und erm枚glicht so Raytracing in
Echtzeit. F眉r jeden Schnittpunkt kann danach ein Shader aufgerufen werden, um den Treffer zu
verarbeiten und die Farbe des Trefferpunktes zu bestimmen. Prinzipiell kann ein Strahl eine Vielzahl von
Treffern ausl枚sen, h盲ufig wird jedoch nur der Treffer, der dem Startpunkt des Strahls am n盲chsten liegt,
beachtet.
%
\paragraph{Ray-Payload:} Die Informationen, die mit einem Strahl verkn眉pft sind. Diese sind frei definierbar
und beinhalten zum Beispiel die Farbe des getroffenen Objekts, oder lediglich eine Flag, die anzeigt ob
眉berhaupt ein Objekt getroffen wurde.
%
\paragraph{Schattenf眉hler:} Schattenf眉hler sind besondere Strahlen, die von einem Trefferpunkt eines Strahls
in der Szene ausgesendet werden um zu pr眉fen, ob der getroffene Punkt von der Lichtquelle aus erreichbar ist.
Somit l盲sst sich pr眉fen, ob ein Punkt von einer Lichtquelle aus im Schatten liegt oder nicht.
%
\paragraph{Stochastisches Raytracing:}
Um f眉r einen Punkt eine korrekte Beleuchtung zu berechnen, m眉ssten
theoretisch - der Rendergleichung folgend - unendlich viele Strahlen ausgesendet werden, um alle einfallenden
Lichtstrahlen zur眉ckzuverfolgen. Beim stochastischen Raytracing wird versucht, die Rendergleichung durch eine
Monte-Carlo-Simulation anzun盲hern. Dazu werden Strahlen zuf盲llig leicht variiert, was am Ende ein verrauschtes
Bild erzeugt, aber bessere Ergebnisse liefert (z.B. f眉r weiche Schatten).
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