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)
- Android (1)
- Applikation (1)
- BRDF (1)
- Bounding Volume Hierarchy (1)
- Compute Shader (1)
- ECSA (1)
- Echtzeit Raytracing (1)
- Entity Component System Architecture (1)
- Entwicklung (1)
- Fell Rendering (1)
- GPGPU (1)
- Gonioreflectometer (1)
- Grafikkarte (1)
- Halbschatten (1)
- Kollisionserkennung (1)
- Light Injection (1)
- Nvidia CUDA (1)
- OpenGL (1)
- Partikel (1)
- Pathtracing (1)
- Ray Tracer (1)
- Starrkörper (1)
- area light (1)
- fur rendering (1)
- general purpose (1)
- graphics card (1)
- interaktiven (1)
- line space (1)
- ray tracing (1)
- raytracing (1)
- rigid body (1)
- rtx (1)
- soft shadow (1)
- vulkan (1)
In dieser Bachelorarbeit wird ein System zur Simulation der Bewegung von Molekülen entworfen. Die Berechnungen der Kräfte zwischen chemisch gebundenen Atomen sowie zwischenmolekularer Kräfte werden fast vollständig auf der GPU durchgeführt. Die Visualisation der Simulation findet in einer interaktiven Bildwiederholrate statt. Um eine Darstellung in Echtzeit auf den meisten handelsüblichen Grafikkarten zur ermöglichen, sind geschickte Optimierungen und leichte Abstraktionen der physikalischen Modelle notwendig. Zu jeder Zeit kann die Ausführungsgeschwindigkeit der Simulation verändert oder vollständig gestoppt werden. Außerdem lassen sich einige Parameter der zugrundeliegenden physikalischen Modelle der Simulation zur Laufzeit verändern. Mit den richtigen Einstellung der Parametern lassen sich bestimmte Phänomene der Molekulardynamik, wie zum Beispiel die räumliche Struktur der Moleküle, beobachten.
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.
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.
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.
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.
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.
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.
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 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.