In der vorliegenden Studienarbeit wird eine OpenGL-Applikation vorgestellt, die Geometrie-Shader in einem Feedback-Loop einsetzt, um auf der GPU Geometrie zu erzeugen. Dargelegt werden die erforderlichen Grundlagen Geometrie-Shader und Transform Feedback betreffend, die Umsetzung der Anwendung und die eingesetzten GLSL-Shader.
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.
Diese Arbeit vermittelt die mathematischen Grundlagen des Ray-Casting Algorithmus und bespricht eine interaktive Umsetzung auf Grafikkarten mit Hilfe einer modernen Schnittstelle. Die Implementation erfolgt im Rahmen eines umfassenden Programmes, welches weitere Techniken und Verbesserungen des Algorithmus für den Nutzer anwählbar macht. Unter anderem wird von Transferfunktionen und lokaler Beleuchtung Gebrauch gemacht, um realistische Materialien darstellen zu können. Die Benutzeroberfläche bietet die Möglichkeit, Volumina zu importieren, Transferfunktionen zu definieren, Parameter der Darstellung einzustellen und weitere Techniken zu aktivieren, deren Grundlagen und Umsetzung ebenfalls in dieser Arbeit dargelegt werden. Der Nutzen der anwählbaren Optionen wird je nach Fall auf optische Qualität oder Vorteil in der Performance hin untersucht.
Die vorliegende Arbeit befasst sich mit der Anwendung und Optimierung globaler Beleuchtung in dreidimensionalen Szenen. Dabei wird nicht nur die direkte Beleuchtung in Abhängigkeit einer oder mehrerer Lichtquellen, sondern auch indirekte Beleuchtung durch umliegende Objekte berücksichtigt. Schwerpunkt dieser Arbeit ist es, die Ergebnisse eines globalen Beleuchtungsverfahrens durch die Implementation unter OpenGL 4.4 zu verbessern. Dies geschieht mithilfe einer Voxelisierung der Szene. Durch eine Traversierung der entstehenden Voxel-Struktur werden zusätzliche Informationen der Szene entnommen, was zu einer realistisch wirkenden globalen Beleuchtung beiträgt.
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.
Winzige vom Wind getriebene Wellen, flache, lange Wellen, steile sich überlagernde Wellen oder stürmische Brecher, sie alle kommen in jedem der Weltmeere und sogar in kleinen Seen vor. Die Wasseroberfläche ist eines der vielfältigsten Naturphänomene. Nicht nur die Bewegung der Wellen, auch die Spiegelung von Himmel, Sonne und Küste machen die Meeresoberfläche einzigartig. Gerade diese einzigartige Komplexität stellt ihre ganz eigenen Herausforderungen an die Nachahmung solcher Phänomene. Deshalb stellt die Berechnung von Wellen schon seit gut 400 Jahren Mathematiker vor eine große Aufgabe.
In den letzten fünfzig Jahren hat sich diese Herausforderung immer mehr in den Bereich der Informatik verschoben. Computergrafiker versuchen seit Jahrzehnten Wasser realistisch darzustellen. Die Forschung auf diesem Gebiet reicht mittlerweile von einfachen Ansätzen wie Rauschfiltern bis zu mathematisch hoch komplexen Ansätzen, wie der Fourier Transformation.
In der nachfolgenden Arbeit wird sowohl auf die geschichtliche Entwicklung der heutigen Wellentheorien, als auch auf die mathematischen Grundlagen dieser eingegangen. Schwerpunkt der Arbeit ist es, diese Methoden in OpenGL 3.3 zu implementieren.
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
Die folgende Arbeit analysiert die Funktionsweise und Programmiermöglichkeiten von Compute Shadern. Dafür wird zunächst in Kapitel 2 eine Einführung in Compute Shader gegeben, in der gezeigt wird, wie diese funktionieren und wie sie programmiert werden können. Zusätzlich wird das Zusammenspiel von Compute Shadern und OpenGL 4.3 anhand zweier einführender Beispiele gezeigt. Kapitel 3 beschreibt dann eine N-Körper Simulation, welche implementiert wurde um die Rechenleistung von Compute Shadern und den Einsatz von gemeinsamen Speicher zu zeigen. Danach wird in Kapitel 4 gezeigt, inwiefern sich Compute Shader für physikalische Simulationen eignen und wo Probleme auftauchen können. In Kapitel 5 wird ein eigens konzipierter und entwickelter Algorithmus zur Erkennung von Linien in Bildern beschrieben und anschließend mit der Hough Transformation verglichen. Zuletzt wird in Kapitel 6 ein abschließendes Fazit gezogen.