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 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.
Die vorliegende Arbeit befasst sich mit der Entwicklung einer interaktiven Applikation unter Android, welche das Spielen eines Kartenspiels ermöglicht. Exemplarisch wurde das hebräische Spiel Yaniv implementiert. Schwerpunkt ist die Herausarbeitung benötigter Hintergrundkomponenten und die dazugehörige Umsetzung in jener Applikation. Benötigte Spielprozesse werden durchleuchtet und eine mögliche Lösungsvariante aufgezeigt.
Bei der musikalischen Grundausbildung von Kindern und Jugendlichen besteht eine spezielle Herausforderung darin, den Kindern das Notenlesen und -schreiben näher zu bringen. Bei der Ausbildung von jungen Nachwuchssängerinnen und -sängern eines Chores ist es zudem wichtig sie damit vertraut zu machen niedergeschriebene Noten direkt in Töne umzusetzen.
Eine interessante Idee ist es, den Kindern während des Unterrichts die Töne auf einem Klavier oder Keyboard vorzuspielen und diese gleichzeitig auf einem Bildschirm in Notenschrift visuell darzustellen.
Ziel dieser Bachelorarbeit ist die Implementierung eines solchen Systems, welches das Einspielen von Noten mit Hilfe eines MIDI-fähigen Keyboards und die anschließende visuelle Wiedergabe der Noten in Notenschrift umsetzt. Die prototypische Anwendung arbeitet in drei Schritten.
Sie erhält über ein angeschlossenes Keyboard die Noten in Form von MIDIDatensätzen als Eingabe. Diese MIDI-Informationen werden dann in das MusicXML-Format überführt. Ausgehend von dieser Notation in Music-XML wird abschließend die visuelle Ausgabe in Form von Notenschrift generiert und angezeigt.
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.
The development of a game engine is considered a non-trivial problem. [3] The architecture of such simulation software must be able to manage large amounts of simulation objects in real-time while dealing with “crosscutting concerns” [3,p. 36] between subsystems. The use of object oriented paradigms to model simulation objects in class hierarchies has been reported as incompatible with constantly changing demands during game development [2, p. 9], resulting in anti-patterns and eventual, messy refactoring.[13]
Alternative architectures using data oriented paradigms revolving around object composition and aggregation have been proposed as a result. [13, 9, 1, 11]
This thesis describes the development of such an architecture with the explicit goals to be simple, inherently compatible with data oriented design, and to make reasoning about performance characteristics possible. Concepts are formally defined to help analyze the problem and evaluate results. A functional implementation of the architecture is presented together with use cases common to simulation software.
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 präsentiert einen Ansatz zur Optimierung der Berechnung von Halbschatten flächiger Lichtquellen. Die Lichtquelle wird durch Sampling uniform abgetastet. Als Datenstruktur wird ein N-tree verwendet, durch den die Strahlen als Paket traversiert werden. Der N-tree speichert in seinen Knoten einen Linespace, der Informationen über Geometrie innerhalb eines Schaftes bietet. Diese Sichtbarkeitsinformation wird als Kriterium für eine Terminierung eines Strahles genutzt. Zusätzlich wird die Grafikkarte (kurz GPU – engl. „graphics processing unit“) zur Beschleunigung durch Parallelisierung benutzt. Die Szene wird zunächst mit OpenGL gerendert und anschließend der Schattenwert für jedes Pixel auf der GPU berechnet. Im Anschluss werden die CPU- und GPU-Implementationen verglichen. Dabei zeigt die GPU-Implementation eine Beschleunigung von 86% gegenüber der CPU-Implementation und bietet eine gute Skalierung mit zunehmender Dreieckszahl. Die Verwendung des Linespace beschleunigt das Verfahren gegenüber der Durchführung von Schnitttests und zeigt für eine große Anzahl an Strahlen keine visuellen Nachteile.
In dieser Arbeit werden Methoden und Maße getestet, nach denen beim Pathtracing eine Auswahl zwischen Line Space und Bounding Volume Hierarchie getroffen werden kann, die die Vorteile der beiden Datenstrukturen ausnutzen. Die Strukturen sind innerhalb der Bounding Box jedes Objekts (Objektlokal) definiert und jeder Line Space enthält in den Shafts jeweils eine Kandidaten-ID. Als Implementations- basis dient ein eigenes C++ und OpenGL Framework, in dem das Pathtracing und die Line Space Generierung über Compute Shader stattfindet. Die Maße schließen die Wahrscheinlichkeitsverteilung, die Effektabhängigkeit, sowie einen Distanz- grenzwert ein und werden gegen verschiedene Szenen getestet. Die Ergebnisse zeigen in den meisten Situationen einen deutlichen Geschwindigkeitszuwachs bei teils nur geringen visuellen Unterschieden, wobei das Wahrscheinlichkeitsmaß die qualitativ hochwertigsten Bilder für den gegebenen Leistungszuwachs erbringt. Die grundlegenden Probleme des Line Space im Vergleich mit der BVH, nämlich der hohe Speicherverbrauch und die lange Generierungszeit, bleiben aber trotz der objektlokalen Struktur, der minimalen Datenmenge pro Shaft und der Compute Shader Implementierung, erhalten.
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.