Entwicklung eines Shadow Volume Verfahrens zur Erzeugung dynamischer Schatten auf Basis der CUDA Technologie

Bachelorarbeit von Jürgen Löb

Die Darstellung von Schatten trägt erheblich dazu bei wie realistisch eine 3D Szene wirkt. Damit trägt sie zur Immersion bei, die der Nutzer erfährt, und hat erheblichen Einfluss auf Tiefenwahrnehmung und Präsenz des Nutzers in einer virtuellen Szene. Das Shadow Volume Verfahren erzeugt eine exakte Schattendarstellung, allerdings müssen die Schattengeometrien prozesseorintensiv aus den Polygonen und Lichtquellen berechnet werden. Die auf neueren Grafikkarten vorhandenen Streaming Prozessoren ermöglichen die parallele Verarbeitung von großen Datenmengen.

In der Arbeit wurde ein, auch für die Anzeige von Schatten nicht zwei-mannigfaltiger Geometrien geeignetes, paralleles CUDA-basiertes Shadow Volume Verfahrens entwickelt. Grundlage des Verfahrens bilden das ZP+ Verfahrens zum Rendern von Schattenvolumen und das Verfahren von Aldridge und Woods zur Silhouettenberechnung. Die resultierende Implementierung wurde nach Darstellungs- und Performanzgesichtspunkten bewertet und mit einer ebenfalls entwickelten seriellen CPU-basierten Shadow Volume Implementierung, sowie existierenden Shadow Map Implementierungen verglichen.

Im Rahmen der Bewertung wurde ein moderater Performanzgewinn der CUDA-basierten Implementierung gegenüber der seriellen Variante nachgewiesen. Ferner wurde festgestellt, dass die entwickelten Verfahren zwar nicht grundsätzlich besser sind als die existierenden Shadow Map Implementierungen, aber im Gegensatz zu ihnen Schattendarstellungen mehrerer Lichtquellen erzeugen können und bei ihnen nicht das Problem des Aliasings auftritt. Die Geschwindigkeit betreffend ist auch die CUDA-basierte Implementierung den Shadow Map Implementierungen unterlegen.