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
    (Abschlusspräsentation des Pratikums)


    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