Filtern
Dokumenttyp
- Bachelorarbeit (17)
- Masterarbeit (2)
Schlagworte
- Computervisualistik (4)
- Computergrafik (3)
- Line Space (3)
- Datenstruktur (2)
- Global Illumination (2)
- Linespace (2)
- Path Tracing (2)
- Raytracing (2)
- Realistische Computergrafik (2)
- 3D-Scan (1)
Das fotorealistische Rendering von Fell ist ein oft gesehenes Problem in der Computergrafik und wird besonders bei Animationsfilmen häufig gebraucht. In dieser Arbeit werden zwei Beleuchtungsmodelle, ursprünglich zum Rendern von menschlichen Haaren, vorgestellt. Dies ist zum einen das Modell von Marschner et al. aus dem Jahr 2003, welches als Grundlage für viele neuere Modelle gilt, sowie das Modell von d’Eon et al. aus dem Jahr 2011. Beide Modelle werden innerhalb eines Pathtracers, welcher globale Beleuchtung simuliert, implementiert. Es werden die Besonderheiten von Haar-Fasern aus Fell im Gegensatz zu menschlichen Haar-Fasern aufgezeigt und folglich erläutert, warum die präsentierten Modelle auch für viele Fellarten genutzt werden können. Dabei liegt der Fokus auf einer realistischen visuellen Darstellung. Zusätzlich wird die Performance beider Modelle verglichen und Verbesserungsvorschläge durch die Nutzung von zylinder förmigen Schnittpunktobjekten für den Pathtracer gegeben und anhand der Implementation evaluiert.
Das Rendering-Verfahren des Ray-Tracings ermöglicht die realitätsnahe Umsetzung der Bildgenerierung einer modellierten Szene und ist aufgrund seiner Arbeitsweise in der Lage, optische Phänomene und komplexe Beleuchtungsszenarien darzustellen. Allerdings bedarf es bei der Bilderzeugung einer enormen Anzahl an Berechnungen pro Pixel, wodurch Realisierungen eines Ray-Tracers in der Praxis Ergebnisse erzielen, die weit unter der in der Computergraphik angestrebten Echzeitdarstellung von 60 Bildern pro Sekunde entfernt liegen. Aktuelle Modelle der Graphics Processing Unit (GPU) ermöglichen die hochgradige Parallelisierung der Ausführung von allgemeinen Berechnungen. Mit Hilfe der Graphik-API OpenGL wird diese Parallelisierung nutzbar gemacht und ein vollständig auf der GPU ausgeführter Ray-Tracer entworfen und realisiert. Der entwickelte Ansatz wird durch die Integration eines Uniform Grids - einer beschleunigenden Datenstruktur des Ray-Tracings - erweitert, woraus eine Steigerung der Performanz zu erwarten ist.
Ziel dieser Arbeit ist die Implementierung eines auf der GPU ausgeführten Ray-Tracers und die Erweiterung des Ansatzes durch die Verwendung eines Uniform Grids. Die Ermittlung der erzielbaren Leistung wird im Anschluss durchgeführt. Bei der Entwicklung und Implementierung werden mögliche Probleme bei der Umsetzung bezüglich der GPU-Programmierung aufgezeigt und analysiert.
Volumetrische Beleuchtung
(2018)
Volumetrische Beleuchtung ist ein verbreitetes Beleuchtungsphänomen in der Natur und trägt in weiten Teilen zu dem realistischen Erscheinen von computergenerierten Bildern bei. Diese Arbeit befasst sich mit den physikalischen Hintergründen dieses Phänomens, listet bekannte Modelle zur Visualisierung von volumetrischer Beleuchtung in der Computergrafik auf und vergleicht anschließend drei Verfahren, mit denen eine volumetrische Beleuchtung mit heutiger Grafikhardware visualisiert werden kann. Diese Verfahren werden anhand einer Implementation in OpenGL hinsichlich ihrer Möglichkeiten und Einschränkungen, sowie ihres Rechenaufwands miteinander verglichen.
Im Rahmen dieser Masterarbeit wird das Prinzip des hybriden Ray Tracing, einer Kombination einer Rasterisierungs-Pipeline mit Ray Tracing-Verfahren für einzelne Effekte, vorgestellt und eine Anwendung implementiert, welche innerhalb einer hybriden Ray Tracing-Pipeline Schatten, Umgebungsverdeckung
und Reflexionen berechnet und diese Effekte mit der direkten Beleuchtung kombiniert.
Das hybride Ray Tracing basiert auf der Idee, die Performance und Flexibilität von Rasterisierungs-Pipelines mit Ray Tracing zu kombinieren, um die Limitation der Rasterisierung, nicht auf die gesamte Umgebungsgeometrie an jedem Punkt zugreifen zu können, aufzuheben.
Im Rahmen der Implementation wird in die verwendete RTX-API sowie die Grafikschnittstelle Vulkan eingeführt und diese anhand der Implementation erklärt. Auf Grundlage der Ergebnisse und der Erkenntnisse bei der Nutzung der API wird diese, ihre Einsatzzwecke und Ausgereiftheit belangend, eingeschätzt.
Eine genaue Schneesimulation ist der Schlüssel zur Erfassung der charakteristischen Visualisierung von Schnee. Aufwendige Methoden existieren, die versuchen Schneeverhalten ganzheitlich zu ergreifen. Die Rechenkomplexität dieser Ansätze hindert sie daran, Echtzeitfähigkeit zu erreichen. Diese Arbeit stellt drei Methoden vor, die unter Verwendung der GPU eine echtzeitfähige Deformation einer Schneeoberoberfläche darstellen. Die Ansätze werden hinsichtlich ihrer wahrheitsgetreuen Schneedarstellung untersucht und nach ihrer Fähigkeit, mit einer zunehmenden Anzahl von schneeverformenden Objekten zu skalieren. Die Ergebnisse zeigen, dass die Methoden bei mehreren hunderten schneeverformenden Objekten ihre Echtzeitfähigkeit beibehalten. Jedoch benachteiligen die charakteristischen Einschränkungen jener Methoden die visuellen Resultate. Ein experimenteller Ansatz ist es, die Anzahl der schneeverformenden Objekte zu reduzieren und durch Zusammenfügen der Methoden ein genaueres, kombiniertes Verformungsmuster zu erzeugen.
Diese Arbeit beschäftigt sich mit verschiedenen Ansätzen zur Beschleunigung von Raytracing Berechnungen auf dem Grafikprozessor (GPU). Dazu wird ein Voxelgrid verwendet, welches durch die Linespace-Datenstruktur erweitert wird. Der Linespace besteht aus richtungsbasierten Schäften (Shafts) und speichert die in ihm liegenden Objekte in einer Kandidatenliste. Es werden unterschiedliche Methoden zur Sortierung und Traversierung des Linespace vorgestellt und evaluiert. Die Methoden können keinen Anstieg der Bildfrequenz erreichen, ohne gleichzeitig in einer Verringerung der Bildqualität zu resultieren.
Diese Arbeit zeigt die Verwendung einer lokalen Linespace Datenstruktur, welche auf Basis eines bestehenden GPU-basierten Raytracers mit globa- ler Linespace Datenstruktur konzipiert und implementiert wird. Für jedes Szenenobjekt wird ein N-Tree generiert, dessen Knoten jeweils einen Line- space besitzen. Dieser speichert in seinen SchäftenInformationen über exis- tierende Geometrie. Ein Schaft stellt ein Volumen zwischen zwei Flächen auf der Knotenaußenseite dar. Dies ermöglicht bei der Strahlverfolgung ein schnelleres Überspringen leerer Räume. Identische Objekte können auf bereits berechnete Linespaces zurückgreifen, wodurch der Speicherbedarf um bis zu 94,13% und die Initialisierungszeit der Datenstruktur um bis zu 97,15% vermindert werden kann. Aufgrund der lokalen Zugriffsmöglich- keiten könnendynamische Szenen visualisiertwerden. Dabei ist ebenso ein Anstieg der Qualität zu beobachten.
Die vorliegende Arbeit stellt eine Rigid-Body Physik-Engine vor, deren Schwerpunkt auf der Kollisionserkennung per GPU liegt. Die steigende Performanz und Zugänglichkeit moderner Grafikkarten sorgt dafür, dass sich diese auch für Algorithmen nutzen lassen, die nicht nur zur Bilderzeugung gedacht sind. Dieser Vorteil wird genutzt, um eine effiziente auf Partikeln basierende Kollisionserkennung zu implementieren. Mit Hilfe einer Testumgebung wird dann der Performance-Unterschied zwischen CPU und GPU dargestellt.
Bildsynthese durch Raytracing gewinnt durch Hardware-Unterstützung in Verbraucher-Grafikkarten eine immer größer werdende Relevanz. Der Linespace dient dabei als eine neue, vielversprechende Beschleunigungsstruktur. Durch seine richtungsbasierte Natur ist es sinnvoll, ihn in andere Datenstrukturen zu integrieren. Bisher wurde er in ein Uniform-Grid integriert. Problematisch werden einheitlich große Voxel allerdings bei Szenen mit variierbarem Detailgrad. Diese Arbeit führt den adaptiven Linespace ein, eine Kombination aus Octree und Linespace. Die Struktur wird hinsichtlich ihrer Beschleunigungsfähigkeit untersucht und mit dem bisherigen Grid-Ansatz verglichen. Es wird gezeigt, dass der adaptive Linespace für hohe Grid-Auflösungen besser skaliert, durch eine ineffiziente GPU-Nutzung allerdings keine optimalen Werte erzielt.