Forschungspraktikum Raytracing Framework
Prof. Dr. Stefan Müller, Kevin Keul
Motivation - Zielsetzung - Organisatorisches - Zeitlicher Ablauf Anmeldung - Seminarphase - Scheinvergabe - Quellen
Motivation und Zielsetzung
Für das Rendering von Szenen bieten sich grundsätzlich zwei Herangehensweisen an: das herkömmliche Rendering in Echtzeit beispielsweise mit OpenGL und das photorealistische Rendering mittels Raytracing. Das Prinzip des Raytracings ist es Strahlen ausgehend von der Kamera zu versenden und den vordersten Schnittpunkt mit der Geometrie der Szene zu berechnen. Ausgehend von diesem Schnittpunkt können weitere Strahlen beispielsweise für Schatten oder Reflektionen versandt und auf Schnittpunkte mit der Szenengeometrie getestet werden. Mit dieser Methode lassen sich beliebige visuelle Effekte berechnen, aufgrund des hohen benötigten Rechenaufwands ist dies im Allgemeinen jedoch nicht in Echtzeit möglich.
Es existieren viele Optimierungen, welche versuchen das Raytracing auf unterschiedliche Weise zu beschleunigen. So kann beispielsweise mithilfe spezieller Datenstrukturen der Berechnungsaufwand der Berechnung des vordersten Schnittpunkts eines Strahls stark reduziert werden. Andere Erweiterungen zielen darauf ab die starke Parallelisierbarkeit der GPU für das Raytracing nutzbar zu machen. Weiterhin existieren Ansätze, welche besonders die Schnittpunktberechnungen von vielen koherenten Strahlen beschleunigen und es werden hybride Systeme entwickelt, welche die Echtzeitfähigkeit von dem Rendering mit OpenGL nutzen und durch visuelle Effekte des Raytracings erweitern. Mittels dieser Ansätze kann in bestimmten Szenen bereits eine echtzeitfähige Berechnung von Bildern in photorealistischer Qualität erfolgen.
Ziel dieses Praktikums ist das Entwerfen eines Raytracing Frameworks, welches leicht verwendbar und dennoch so performant wie möglich sein soll. Dazu soll ein Raytracer entwickelt und bestehende Optimierungen recherchiert und umgesetzt werden. Im Vordergrund stehen neben der Performanz und der einfachen Nutzbarkeit auch die Erweiterbarkeit und die Flexibilität des Systems, so dass einzelne Komponenten auch später noch leicht austauschbar oder optimierbar sind und bleiben.
Organisatorisches
- Maximale Teilnehmerzahl: 12
- Zählt als Forschungspraktikum für Master-Studierende. Bachelor-Studierende und Diplom-Studierende können ebenfalls aufgenommen werden, sofern Plätze frei bleiben.
- Vorausgesetzte Programmiersprachen: C++, GLSL
- Kenntnisse von GPGPU Bibliotheken hilfreich (Vozugsweise OpenCL)
- Wöchentliche Treffen des gesamten Praktikums
- Link zu den Folien des Vortreffens
Zeitlicher Ablauf
Auftaktaktveranstaltung |
Dienstag, 09.02.16 - 15:00 Uhr, Raum E312 |
Seminarphase | |
Vorträge der Seminarphase | |
|
|
|
|
|
|
Kolloquium |
Anmeldung
Die Vorbesprechung findet am 09.02.2016, 12:00 Uhr in E 414 statt. Die maximale Teilnehmerzahl beschränkt sich auf 12 Personen. Die Platzvergabe findet in der Vorbesprechung statt, deshalb besteht hier eine Anwesenheitspflicht.
Weiterhin ist eine Anmeldung über KLIPS erforderlich.
Seminarphase
Seminarthemen
# | Thema |
1 | Raytracing allgemein |
2 | Raytracing Renderingeffekte |
3 | Voxelisierung |
4 | Voxel Cone Tracing |
5 | OpenCL allgemein |
6 | OpenCL Beispiele für RayTracing |
7 | Packet Ray Tracing |
8 | Grids / Octrees / Sparse Voxel Octree |
9 | Binary Space Partitioning |
10 | KD-Tree CPU |
11 | KD-Tree GPU |
12 | BVH |
13 | Hybride Ansätze |
Scheinvergabe
Um den Schein zu diesem Praktikum zu erwerben, sind folgende Voraussetzungen erforderlich:
-
Halten eines Kurzvortrags in der vorbereitenden Seminarphase
-
Aktive und kontinuirliche Mitarbeit in allen Phasen des Projektes
-
Ein funktionsfähiges und gut dokumentiertes Projektergebnis
-
Jeder Teilnehmer erhält eine individuelle Note
