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