Filtern
Dokumenttyp
- Bachelorarbeit (1)
- Dissertation (1)
Sprache
- Englisch (2) (entfernen)
Volltext vorhanden
- ja (2) (entfernen)
Schlagworte
- Line Space (2) (entfernen)
Die Raytracing-Beschleunigung durch dedizierte Datenstrukturen ist schon lange ein wichtiges Thema der Computergrafik. Im Allgemeinen werden dafür zwei unterschiedliche Ansätze vorgeschlagen: räumliche und richtungsbezogene Beschleunigungsstrukturen. Die vorliegende Arbeit stellt einen innovativen kombinierten Ansatz dieser beiden Bereiche vor, welcher weitere Beschleunigung der Strahlenverfolgung ermöglicht. Dazu werden moderne räumliche Datenstrukturen als Basisstrukturen verwendet und um vorberechnete gerichtete Sichtbarkeitsinformationen auf Basis von Schächten innerhalb einer originellen Struktur, dem Line Space, ergänzt.
Im Laufe der Arbeit werden neuartige Ansätze für die vorberechneten Sichtbarkeitsinformationen vorgeschlagen: ein binärer Wert, der angibt, ob ein Schacht leer oder gefüllt ist, sowie ein einzelner Vertreter, der als repräsentativer Kandidat die tatsächliche Oberfläche approximiert. Es wird gezeigt, wie der binäre Wert nachweislich in einer einfachen, aber effektiven Leerraumüberspringungs-Technik (Empty Space Skipping) genutzt wird, welche unabhängig von der tatsächlich verwendeten räumlichen Basisdatenstruktur einen Leistungsgewinn beim Raytracing von bis zu 40% ermöglicht. Darüber hinaus wird gezeigt, dass diese binären Sichtbarkeitsinformationen eine schnelle Technik zur Berechnung von weichen Schatten und Umgebungsverdeckung auf der Grundlage von Blockerapproximationen ergeben. Obwohl die Ergebnisse einen gewissen Ungenauigkeitsfehler enthalten, welcher auch dargestellt und diskutiert wird, zeigt sich, dass eine weitere Traversierungsbeschleunigung von bis zu 300% gegenüber der Basisstruktur erreicht wird. Als Erweiterung zu diesem Ansatz wird die repräsentative Kandidatenvorberechnung demonstriert, welche verwendet wird, um die indirekte Lichtberechnung durch die Integration von kaum wahrnehmbaren Bildfehlern signifikant zu beschleunigen. Schließlich werden Techniken vorgeschlagen und bewertet, die auf zweistufigen Strukturen und einer Nutzungsheuristik basieren. Diese reduzieren den Speicherverbrauch und die Approximationsfehler bei Aufrechterhaltung des Geschwindigkeitsgewinns und ermöglichen zusätzlich weitere Möglichkeiten mit Objektinstanziierungen und starren Transformationen.
Alle Beschleunigungs- und Speicherwerte sowie die Näherungsfehler werden gemessen, dargestellt und diskutiert. Insgesamt zeigt sich, dass durch den Line Space eine deutliche Erhöhung der Raytracing Leistung auf Kosten eines höheren Speicherverbrauchs und möglicher Annäherungsfehler erreicht wird. Die vorgestellten Ergebnisse zeigen damit die Leistungsfähigkeit des kombinierten Ansatzes und eröffnen weitere Möglichkeiten für zukünftige Arbeiten.
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.