Filtern
Erscheinungsjahr
Dokumenttyp
- Bachelorarbeit (75) (entfernen)
Schlagworte
- Computervisualistik (6)
- Computergrafik (5)
- Android (4)
- OpenGL (4)
- Augmented Reality (3)
- GPGPU (3)
- Line Space (3)
- Virtual Reality (3)
- Applikation (2)
- Compute Shader (2)
Institut
Diese Bachelorarbeit befasst sich mit der Entwicklung eines Autorensystems zum modellieren von 3D Szenen mit physikalischer Beschreibung. Ähnlich einem herkömmlichen 3D Modellierungstool soll ein Benutzer Szenen erstellen können mit dem Unterschied, dass bei der Erstellung der Geometrie physikalische Eigenschaften direkt berechnet und eingestellt werden können. Wichtig für solche Systeme ist vor allem ihre Erweiterbarkeit und Anpassungsfähigkeit an die entsprechenden Anforderungen des Benutzers. Der Fokus liegt hierbei auf der Entwicklung einer einfachen Architektur, die leicht erweiterbar und veränderbar ist.
Bei der eindeutigen Isolation und Klassifizierung von Merkmalen in 3D-Multi-Attribut-Volumendaten sind multidimensionale Transferfunktionen unabdingbar. Jedoch wird bei mehreren Dimensionen das Verständnis der Daten sowie die Interaktion mit diesen zu einer Herausforderung. Weder die Kontrolle der vielseitigen Eingabeparameter noch die Visualisierung im höherdimensionalen Raum sind trivial.
Ziel dieser Arbeit ist die Erstellung eines Transferfunktionseditors, der durch die Verwendung von verschiedenen Visualisierungs- und Interaktionstechniken, z.B. der Verwendung von parallelen Koordinatenachsen, die Erstellung multidimensionaler Transferfunktionen unterstützt. Dabei sollen unterschiedliche Dimensionen interaktiv ausgewählt und kombiniert werden und die Veränderungen der Transferfunktion durch visuelles Feedback im gerenderten Volumen bestätigt werden.
Diese Arbeit befasst sich mit einer 3D-Interaktion von primitiven Objekten, welche von Gesten gesteuert wird. Dabei werden Funktionen, welche auf eine absolute Positionierung angewiesen sind, mit Hilfe eines Touchscreens implementiert. Als zweites Eingabegerät dient die Leap-Motion, welche Gesten anhand von zwei CCD-Kameras und drei Infrarot-LEDs aufnimmt. Die Gesten bestehen dabei aus der Translation, Rotation und Skalierung von Objekten, sowie aus einer Steuerung, die die Bewegung im Raum ermöglicht. Zur visuellen Umsetzung wurde die Arbeit in Blender mit der Blender Game Engine unter Python geschrieben. Nur das Auswählen der Objekte wurde mit Hilfe des Touchscreens realisiert. Diese Steuerung wurde anschließend mit einer reinen Maussteuerung evaluiert. Diese beiden Eingabemöglichkeiten unterscheiden sich darin, dass die Gestensteuerung nicht etabliert ist. Sie besitzt allerdings den Vorteil, dass sie im dreidimensionalen Raum ausgeführt werden kann. Die Maus hingegen ist geläufig, beschreibt aber nur einen zweidimensionalen Raum als Eingabe. Es stellt sich also die Frage, ob bei der dreidimensionalen Interaktion von Objekten eine Maussteuerung oder eine Gestensteuerung bevorzugt wird. Das Ergebnis beläuft sich daran, dass die Maus favorisiert wird. Jedoch liegt die Gestensteuerung in manchen Bereichen nah an dem Ergebnis der Maus.
Entwicklung eines augmentierten Montageszenarios mit Lego-Bausteinen für die Microsoft HoloLens
(2017)
Augmented Reality ist schon seit einigen Jahren in verschiedenen Formen verfügbar. Durch Fortschritte in der Technik können nun auch kompakte Augmented Reality Brillen hergestellt werden, wodurch sich viele neue Möglichkeiten der Interaktion und Anwendung von Augmented Reality eröffnen.
Diese Arbeit beschäftigt sich mit der Microsoft HoloLens und den Möglichkeiten, welche die Brille für Verbraucher und Industrie bieten kann. Im Rahmen dieser Arbeit wurde eine interaktive und augmentierte Anwendung entwickelt, um die Grenzen und Möglichkeiten der Microsoft HoloLens zu bewerten. Dazu wurde exemplarisch ein Montageszenario nachgestellt, bei dem ein Modell aus Lego-Bausteinen zusammengesetzt wird. Die HoloLens zeigt dabei schrittweise an, wo die nächsten Bausteine platziert werden sollen. Dabei stellte sich heraus, dass die HoloLens schon heute Vorteile bei der Montage bietet und gut zur Unterstützung von Arbeitsschritten verwendet werden kann, es wurden allerdings auch einige Schwächen deutlich.
Diese Bachelorarbeit beschäftigt sich mit dem Entwurf und der Implementation einer virtuellen Realitätserfahrung. Ziel ist es, zwei Fragen zu beantworten: Ist es möglich, eine immersive virtuelle Anwendung zu erschaffen, die hauptsächlich Impulse und Trigger benutzt, um Angst und Schrecken bei den Benutzern zu erzeugen? Zweitens, ist diese Immersion ausreichend, die Benutzer so zu illusionieren, dass sie die virtuelle Welt für die Reale halten. Zur Erschaffung dieser Erfahrung wurde die Programmierumgebung Unity3D sowie Visual Studios 2017 verwendet. Um festzustellen, ob diese VR-Anwendung tatsächlich immersiv für den Anwender ist, wurde ein Experiment mit sieben Probanden durchgeführt. Nach der Spieltestung wurden die Probanden zu Ihren Erfahrungen mittels eines Fragebogens befragt. Es konnte dadruch gezeigt werden, dass diese Anwendungen Tendenzen zur Immersion aufweisen. Jedoch waren sich die Benutzer der Situation, in der sie sich befanden, stets bewusst. Daraus lässt sich schlussfolgern, dass die Immersion nicht stark genug war, um die Probanden bezüglich der virtuellen und realen Welt zu täuschen.
In dieser Arbeit werden zwei Verfahren zur Berechnung der globalen Beleuchtung vorgestellt. Das Erste ist eine Erweiterung von Reflective Shadow-Maps um einen Schattentest, womit Verdeckungsbehandlung erreicht wird. Das zweite Verfahren ist ein neuer, auf Light-Injection basierender, bidirektionaler Ansatz. Dabei werden Strahlen aus Sicht der Lichtquelle verfolgt und in der Linespace Datenstruktur in Schächten gespeichert, die eine Diskretisierung der Raumrichtungen darstellen. Die Linespaces sind dabei in ein Uniform Grid eingebettet. Beim Auslesen der vorberechneten indirekten Beleuchtung sind im Idealfall keine Traversierung der Datenstruktur und keine weitere Strahlverfolgung mehr notwendig. Damit wird eine Varianzreduzierung und eine schnellere Berechnung im Vergleich zu Pathtracing erzielt, wobei sich insbesondere Vorteile in stark indirekt beleuchteten Bereichen und bei Glas ergeben. Die Berechnung der globalen Beleuchtung ist allerdings approximativ und führt zu sichtbaren Artefakten.
Hubschrauber sind aus heutiger Sicht unverzichtbar. Eine Reihe von Anwendungsgebieten zeigt das Einsatzspektrum, die andere Flugmuster im Vergleich zum Hubschrauber nicht leisten können. Allerdings handelt es sich bei einem Hubschrauber um ein sowohl technologisch als auch physikalisch hochkomplexes System. Entsprechend aufwendig ist die Aus- und Weiterbildung von Piloten. Gerade in den letzten zwei Jahrzehnten hat sich daher die Flugsimulation als wertvolle Ergänzung zum klassischen Training herausgestellt. Mittels Flugsimulatoren ist es möglich, schwierige oder gar gefährliche Situationen bedarfsgerecht nachzuempfinden und zu üben. Im Rahmen dieser Arbeit soll ein vereinfachter Hubschraubersimulator, basierend auf Starkörperkinematik, entwickelt werden. Dabei wird ein idealisiertes Rotormodell angenommen und auf komplexe strömungsmechanische Phänomene verzichtet, um eine Implementation übersichtlich zu illustrieren und echtzeitfähig zu sein. Dabei sind die Module dementsprechend in der Unreal Engine umgesetzt, dass eine Adaption an andere Flugmuster ohne großen Aufwand möglich ist.
Die Entwicklung der echtzeitfähigen Computergrafik ermöglicht mittlerweile immer realistischere Bilder und die Hardware kann dafür optimal ausgenutzt werden, wodurch immer glaubwürdigere Lichtverhältnisse simuliert werden können. Eine große Anzahl von Algorithmen, effizient implementiert auf der Grafikkarte (GPU, auch Grafikprozessor)), sind fähig komplexe Lichtsituationen zu simulieren. Effekternwie Schatten, Lichtbrechung und Lichtreflexion können mittlerweile glaubwürdig erzeugt werden. Besonders durch Reflexionen wird der Realismus der Darstellung erhöht, da sie glänzende Materialien, wie z.B. gebürstete Metalle, nasse Oberflächen, insbesondere Pfützen oder polierte Böden, natürlich erscheinen lassen. Dabei geben sie einen Eindruck der Materialeigenschaften, wie Rauheit oder Reflexionsgrad.rnAußerdem können Reflexionen vom Blickpunkt abhängen: Eine verregnete Straße zum Beispiel würde Licht, abhängig von der Entfernung des Betrachters reflektieren und verwaschene Lichtreflexe erzeugen. Je weiter der Betrachter von der Lichtquelle entfernt ist, desto gestreckter erscheinen diese. Ziel dieser Bachelorarbeit ist, eine Übersicht über existierende Render-Techniken für Reflexionen zu geben, um den aktuellen Stand der Technik abzubilden. Reflexion entsteht durch den Einfall von Licht auf Oberflächen, die dieses in eine andere Richtung zurückwerfen. Um dieses Phänomen zu verstehen, wird eine Auffassung von Licht benötigt. Kapitel 2.1 beschreibt daher ein physikalisches Modell von Licht, gefolgt von Kapitel 2.2, das anhand von Beispielen ästhetisch wirkender Reflexionseffekte aus der realenrnWelt und den Medien die Motivation dieser Arbeit darlegt. In Kapitel 3 soll die generelle Vorgehensweise beim Rendern von Reflexionen deutlich gemacht werden. Danach wird in Kapitel 4 eine grobe Übersicht über existierende Ansätze gegeben. In Abschnitt 5 werden dann drei wesentliche Algorithmen vorgestellt, die zur Zeit oft in Spiel- und Grafikengines verwendet werden: Screen Space Reflections (SSR), Parallax-corrected cube mapping (PCCM) und Billboard Reflections (BBR). Diese drei Ansätze wurden zusammen in einem Framework implementiert. Dieses wird in Kapitel 5 vorgestellt und erklärt, gefolgt von detaillierten Beschreibungen der drei Techniken. Nachdem ihre Funktionsweise erklärt wurde, werden die Ansätze analysiert und auf ihre visuelle Qualität sowie ihre Echtzeitfähigkeit getestet. Abschließend werden die einzelnen Verfahren miteinander verglichen, um ihre Vor- und Nachteile zu untersuchen. Außerdem werden die gewonnenen Erfahrungen beschrieben und Verbesserungsansätze vorgeschlagen. Danach wird ein kurzer Ausblick zur voraussichtlichen Entwicklung von Render-Techniken spekularer Effekte gegeben.
In der Computergrafik stellte die Berechnung von Reflexionen lange ein
Problem dar. Doch mit der ständigen Weiterentwicklung der Hardware
und Vorstellung neuer Verfahren ist eine realitätsnahe,
echtzeitfähige(durchschnittlich 60 FPS) Berechnung von Reflexionen möglich. In der folgenden Ausarbeitung werden verschiedene Reflexionsverfahren vorgestellt. Alle mathematischen und physikalischen Grundlagen werden gegeben, um die Algorithmen nachvollziehen zu können. Da eine Reflexion immer das Abtasten eines reflektierten Vektors bedeutet, werden zwei verschiedene Abtastungsverfahren für blickabhängige Reflexionen vorgestellt und anschließend implementiert. Zuletzt werden die Verfahren auf Basis von Qualität und Performance gegenübergestellt.
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.
In dieser Bachelorarbeit wird ein System zur Kameratracking implementiert, dass auf Basis eines Partikelfilters arbeitet. Dazu wird ein Markertracking realisiert und anhand der Markerposition die Kameraposition errechnet. Der Marker soll mit ein Partikelfilter gefunden werden und um das zu bewerkstelligen werden mögliche Markerpositionen simuliert, auch Partikel genannt, und mit Likelyhood Funktionen gewichtet. Fokus liegt auf der Evaluation von verschiedenen Likelyhood-Funktionen des Partikelfilters. Die Likelyhood-Funktionen wurden in CUDA umgesetzt als Teil der Implementation.
In dieser Arbeit wird eine interaktive Applikation für das Android OS entwickelt. Bei der Applikation handelt es sich um ein Virtual-Reality-Spiel. Das Spiel gehört zum Ego-Shooter-Genre und spielt in einem Weltraumszenario. Durch den Einsatz eines Stereo-Renderers ist es möglich, das Spiel in Kombination mit einer Virtual-Reality-Brille zu spielen.
Diese Arbeit behandelt die Konzeption und Implementation eines Action-Rollenspiels mithilfe der Game Engine Unity. Im Rahmen einer Evaluation sollte das Spiel hinsichtlich der Bedienbarkeit der integrierten Steuerungsarten, der visuellen Überzeugung der Animationen und der Benutzerfreundlichkeit über zur Verfügung gestellte Hilfsmittel und Visualisierungen bewertet werden. Zusätzlich sollten Schwachstellen und Probleme im Spiel über offenes Feedback herausgefunden werden. Die Auswertung der Evaluation ergab, dass das Spiel im Hinblick auf die Bedienbarkeit und Benutzerfreundlichkeit zwar noch ausbaufähig ist, aber insgesamt einen guten Eindruck bei den Probanden hinterlassen hat.
In dieser Arbeit wird die Konzeption, Implementierung und Evaluierung einer Augmented Reality-App beschrieben. Diese wurde mit dem Ziel entwickelt, Objekte im realen Raum mit virtuellen Hilfsmitteln auszumessen, sodass diese Anwendung einen Holzgliedermaßstab ersetzen kann. Hinzu kommt die praktische Speicherung der Messwerte. Angefertigt wurde die App mit der Unity Engine und programmiert in C#.
Schwerpunkte dieser Arbeit sind die Benutzerfreundlichkeit der App, sowie die Eignung von AR Foundation für das Ausmessungstool.
Die Anwendung wird auf die genannten Kriterien im Rahmen eines Nutzertests in einer abschließenden Evaluation bewertet.
Als Ergebnis ließ sich festhalten, dass sich die AR-App noch im Prototyp-Stadium befindet, aber im Allgemeinen schon als benutzerfreundlich gilt. Kleinere Änderungen sollen und müssen noch vorgenommen werden, um auch den Umgang mit dem AR-Tool zu vereinfachen.
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.
Simulation von Schnee
(2015)
Physik-Simulationen erlauben die Erstellung dynamischer Szenen auf dem Rechner. Sie lassen die Computergrafik lebendig werden und finden unter anderem Anwendung in Film, Spiel und Ingenieurswesen. Durch GPGPU-Techniken kann diese Arbeit erstmals auf der Grafikkarte stattfinden. Die dynamische Simulation von Schnee ist ein Gebiet, das aufgrund seiner physikalischen Komplexität noch wenig erforscht ist. Die Materie-Punkt-Methode ist das erste Modell, dass in der Lage ist die Dynamik und verschiedenen Arten von Schnee darzustellen.
Die hybride Nutzung von Lagrange-Partikeln und einem kartesischen Euler-Gitter ermöglichen das Lösen der partiellen Differentialgleichungen. Die Partikel werden dazu auf die Gitterknoten transformiert. Durch Anwendung der Finite-Elemente-Methode auf das Gitter können Gradienten zur Aktualisierung der Geschwindigkeit berechnet werden. Die Geschwindigkeiten werden dann auf die Partikel zurückgewichtet, um diese in der Simulation voranschreiten zu lassen. Gepaart mit einem spezifischen Materialmodell wird die dynamische Natur von Schnee erlangt. Diese schließt Kollision und Bruch mit ein.
Diese Bachelorarbeit verbindet die kürzlich erschienenen GPGPU-Techniken von OpenGL mit der Materie-Punkt-Methode, um die verschiedenen Schneearten dynamisch, visuell ansprechend und effizient zu simulieren
Diese Arbeit vermittelt einen grundlegenden Überblick über die Funktionsweise und Implementierung von aktuellen Voxelisierungsstrategien auf der GPU. Neben etablierten Voxelisierungsverfahren mithilfe der Rasterisierungspipeline werden neue Möglichkeiten mithilfe von GPGPU-Programmierung untersucht. Auf der Basis der Programmiersprache C++ und der Grafikbibliothek OpenGL wird die Implementierung mehrerer Verfahren erläutert.rnDie Verfahren werden hinsichtlich der Performanz und der Qualität der Voxelisierung verglichen und im Bezug auf mögliche Anwendungsfälle kritisch bewertet. Weiterhin werden zwei Beispielanwendungen beschrieben, in denen die Verwendung einer voxelisierten Szene eine Erweiterung von bestehenden Echtzeitgrafikverfahren ermöglicht. Zu diesem Zweck werden die Konzepte und die Implementierungen von Transmittance Shadow Mapping und von Reflective Shadow Mapping, das um voxelbasierte Umgebungsverdeckung erweitert wird, erläutert. Abschließend wird die anhaltende Relevanz von Voxelisierung in einem Ausblick auf aktuelle Forschungen und weitere Anwendungen und Erweiterungen der vorgestellten Verfahren aufgezeigt.
Simulation von Schnee
(2019)
Mit Hilfe von Physiksimulationen lassen sich viele
Naturphänomene auf dem Rechner nachbilden. Ziel ist, eine physikalische
Gegebenheit möglichst korrekt zu berechnen, um daraus Schlüsse für die
reale Welt zu ziehen. Anwendungsgebiete sind beispielsweise die Medizin,
die Industrie, aber auch Spiele oder Filme.
Schnee ist aufgrund seines physikalischen Aufbaus und seinen Eigenschaften
ein sehr komplexes Naturphänomen. Um Schnee zu simulieren, müssen
verschiedene Materialeigenschaften beachtet werden.
Die wichtigste Methode, die sich mit der Simulation von Schnee und seiner
Dynamik befasst, ist die Material-Point-Method. In ihr werden die auf
der Kontinuumsmechanik basierenden Lagrange-Partikel mit einem kartesischen
Gitter vereint. Das Gitter ermöglicht die Kommunikation zwischen
den eigentlich nicht verbunden Schneepartikeln. Zur Berechnung werden
Daten der Partikel auf die Gitterknoten übertragen. Dort werden Berechnungen
mit Informationen über benachbarte Partikel durchgeführt. Die Ergebnisse
werden danach zurück auf die Partikel übertragen.
Durch GPGPU-Techniken lassen sich physikalische Simulationen auf der
Grafikkarte implementieren. Verfahren wie die Material-Point-Method lassen
sich durch diese Techniken gut parallelisieren.
Diese Arbeit geht auf die physikalischen Grundlagen der Material-Point-
Method ein, und implementiert diese mit Hilfe von Compute-Shadern auf
der Grafikkarte. Anschließend werden Performanz und Qualität bewertet.
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.