TUD Logo

TUD Startseite » ... » Ergebnisse studentischer Arbeiten » Große Belege » Andreas Stahl

Computergraphik

Belegarbeit Andreas Stahl

Interaktive Globale Beleuchtung nach dem Antiradiance-Verfahren mittels der Open Computing Language (OpenCL)

Lehrstuhl für Computergraphik und Visualisierung


Student: Andreas Stahl
Betreuer: Dipl.-Phys. Niels von Festenberg
Verantwortlicher Hochschullehrer: Prof. Dr. rer. nat. Stefan Gumhold

Motivation

Neue Entwicklungen im Bereich der GPU-Programmierung erlauben es, die Grafikkarte für allgemeine Berechnungnen zu benutzen. Neben die Herstellerspezifischen Lösungen CUDA und ATI-Stream tritt die OpenCL Initiative, welche eine plattformunabhängige API für Berechnungen bietet.

Um die Einsatzfähigkeit der OpenCL im Kontext der Computergrafik zu beurteilen, soll ein globales Beleuchtungsverfahren für diese Technologie umgesetzt werden. Die Auswahl fiel auf das Antiradiance-Verfahren nach Dachsbacher et al. [DSDD07], da Shader- und CUDA-basierte Referenz-Implementierungen existieren. Außerdem ist das Verfahren intuitiv verständlich.

Beschreibung

Für die Bearbeitung der Aufgabe wurde ein prototypen-basierter Ansatz gewählt. Zunächst wurde ein Prototyp-Plugin für das CGV-Framework in herkömmlichen C++/CPU-Code implementiert, da OpenCL zunächst nicht allgemein verfügbar war.

Mit der Veröffentlichung einer OpenCL-Runtime durch AMD konnte das Verfahren an diese Technologie angepasst werden. Das Plugin setzt zusätzlich den in Meyer et al. [MESD09] beschriebenen Ansatz zur parallelisierten Verknüpfungserstellung um. Dadurch können nahezu alle Schritte des Verfahrens durch OpenCL berechnet werden.

Im Gegensatz zu der CUDA-Implementierung aus [MESD09] setzt das Plugin einen der Gathering-Radiosity ähnlichen Berechnungsvorgang ein. Dadurch werden konkurrierende Schreibvorgänge auf den selben Speicherbereichen vermieden.

Die Darstellung der Berechnungsergebnisse geschieht mittels verschiedener Interpolatoren, welche die Betrachtung in "interaktiven" Frameraten erlauben.

Ergebnisse

Die wichtigsten Vorgänge des Antiradiance-Verfahresn konnten erfolgreich in der OpenCL umgesetzt werden. Durch die Erweiterung des Verfahrens um ein Gathering-basiertes Vorgehen kann auf Atomic-Operationen während der Beleuchtungsrechnung verzichtet werden, was die Geschwindigkeit und Kompatibilität der Lösung erhöht.

cornell box scene
Cornell-Box Szene
cornell box scene with glossy object
Szene mit Glossy-Objekt

Der OpenCL-Solver bietet gegenüber der C++/CPU-Solver einen erheblichen Geschwindigkeitszugewinn, bereits bei der Verwendung der CPU als OpenCL-Gerät. Wird die GPU für Berechnungen genutzt, müssen zur Leistungssteigerung effiziente parallele Algorithmen benutzt werden. Die OpenCL entbindet den Programmierer also nicht von der Verantwortung, Code zu schreiben, der an die Prozessor-Architektur der Zielplattform angepasst ist. Der jeweils optimale Code kann jedoch zur Laufzeit ausgewählt werden, so dass eine hohe Flexibilität erreicht werden kann.

Messungen auf einem AMD Athlon X2 4850e System mit einer ATI Radeon 5770 Grafikkarte. OpenCL Runtime: AMD/ATI-Stream Version 2.0.
Messergebnisse Linking
Berechnungsdauer der Verknüpfungserstellung
Messergebnisse Iteration
Berechnungsdauer einer Beleuchtungsiteration

Da er sich noch in einer frühen Version befindet, läßt der AMD/ATI-OpenCL-Treiber noch keine schlüssigen Aussagen zur Performance der Lösung im Vergleich mit den Referenz-Implementierungen zu. Bisher liegt Sie etwa zwischen der (etwas langsameren) GPU-Shader- und der (ungefähr zehn mal schnelleren) CUDA-Implementierung. Weitere Messungen werden durchgeführt, sobald die Treiber stabilisiert sind.

Ausblick

Ausgehend von den Ergebnissen sind die folgenden Erweiterungen vorstellbar:

  • Simulierung direkter und ambienter Beleuchtungseffekte durch Shadow/Light-Maps und Environment Maps.
  • Umsetzung erweiterter Verfahrensteile (z.B. Erstellung der Patchhierarchie, Interpolation) mittels der OpenCL, um Kopien zwischen OpenCL-Plattform und Host zu reduzieren.
  • Unterstützung von Szenen mit höherer Komplexität beim Aufbau der Patch-Hierarchie und beim Rendering, evtl. Erweiterungen für Discontinuity Meshing und Mesh-Refinement.
  • Erstellen eines eigenen CGV-Plugins für OpenCL-Funktionen.

Downloads

Literatur

  • [DSDD07] DACHSBACHER, Carsten ; STAMMINGER, Marc ; DRETTAKIS, George ; DURAND, Frédo: Implicit visibility and antiradiance for interactive global illumination. In: SIGGRAPH '07: ACM SIGGRAPH 2007 papers. New York, NY, USA : ACM, 2007, S. 61
  • [MESD09] MEYER, Q. ; EISENACHER, C. ; STAMMINGER, M. ; DACHSBACHER, C.: Data-Parallel Hierarchical Link Creation for Radiosity. In: Eurographics Symposium on Parallel Graphics and Visualization, 2009
Stand: 1.2.2010, 14:40 Uhr
Autor: Dipl.-Phys. Niels v. Festenberg