Diese Arbeit stellt ein neues Verfahren zur Darstellung von volumenbasierten Daten mit LOD-Mechanismus vor. Das angedachte Einsatzgebiet ist Terrain. Da die anvisieren Frameworks und Anwendungen Dreiecke verarbeiten (mittels OpenGL oder Direct3D), ist eine indirekte Darstellung der Volumendaten nötig, die mittels eines Polygonnetzes die Informationen approximiert. Eine direkte Darstellung würde auf die Umwandlung in Dreiecke verzichten und z.B. mit einem Raytracer ohne Umweg zeichnen. Dabei werden verschiedene, vorhandene Algorithmen wie Dual Marching Cubes (DMC) und triplanare Texturierung eingesetzt. Das LOD-Verfahren ist von "Chunked Level of Detail Control" inspiriert und überträgt dessen Strategie von auf Höhenfeld basierten auf volumenbasierte Terrains. Die dort zur Schließung von Lücken verwendeten "Skirts2 werden hier mittels Marching Squares adaptiert.
Inhaltsverzeichnis
1. Einleitung
1.1. Problemstellung
1.2. Vorgehensweise
2. Volumenmodell
3. Zusammenhängende Entwicklung
3.1. Isosurface Generierung
3.2. Material
3.3. Höhenfeld basiertes Terrain
3.4. Volumenbasiertes Terrain
4. Dichtefunktion
4.1. 3D Texturen
4.2. Constructive Solid Geometry
4.2.1. Grundformen
4.2.2. Operatoren
4.2.3. Ein Constructive Solid Geometry Baum
5. Verfahren der Volumendarstellung
5.1. Dual Marching Cubes
5.1.1. Generierung des Octrees
5.1.2. Isolierung von Features
5.1.3. Bilden des Dualgitters
5.1.4. Konturierung des Dualgitters
5.2. Marching Squares Skirts
5.3. Material
5.3.1. Triplanare Texturierung
5.3.2. Normal Mapping
5.3.3. Beleuchtung
5.3.4. Nebel
5.4. Level of Detail
5.4.1. Aufbau des Chunkbaums
5.4.2. Chunkauswahl beim Zeichnen
6. OGRE
6.1. Google Summer of Code 2012
6.2. Wichtige Klassen für das Projekt
7. Softwarearchitektur
7.1. Aufbau des Chunkbaums
7.2. Auswahl der Chunks beim Zeichnen
7.3. Weitere Funktionen
8. Implementierung
8.1. Dichtefunktion
8.2. Chunkbaum
8.3. Material
8.4. Chunkauswahl beim Zeichnen
9. Abschlussbetrachtung
9.1. Leistungsfähigkeit
9.1.1. Ladezeit
9.1.2. Laufzeit
9.2. Ergebnis des Google Summer of Code 2012
9.3. Zukünftige Entwicklung
9.3.1. Entwicklung eines grafischen Editors
9.3.2. Paging
9.3.3. Constructive Solid Geometry
9.3.3.1. CSGXML
9.3.3.2. Rauschfunktion
9.3.3.3. Verbesserte CSG Operatoren
9.3.3.4. Matrix CSG
9.3.3.5. Weitere Grundformen
9.3.4. Schnitt mit Strahlen und den generierten Dreiecken
9.3.5. Material
9.3.5.1. Mehrere Textursets bei der triplanaren Texturierung
9.3.5.2. Ambient Occlusion
9.3.5.3. Parallax Occlusion Mapping
9.3.6. Verbesserung des Polygonnetzes
9.3.6.1. Implementierung von Marching Cubes 33
9.3.6.2. Extraktion von scharfen Kanten
9.3.6.3. Verbesserung der LOD-Wechsel
9.3.6.4. Reduzierung der Anzahl kleiner Dreiecke
9.4. Fazit
Zielsetzung & Themen
Das Hauptziel dieser Arbeit ist die Entwicklung und Implementierung eines effizienten Verfahrens zur Echtzeitdarstellung volumetrischer Daten, insbesondere von Terrain, unter Verwendung eines Level-of-Detail (LOD) Mechanismus. Dabei wird eine Lösung angestrebt, die komplexe Strukturen wie Überhänge oder Höhlen ermöglicht und durch eine hierarchische Baumstruktur sowie adaptive Triangulierung eine flüssige Bildrate bei der Darstellung großer Datenmengen sicherstellt.
- Entwicklung eines volumetrischen Modells unter Nutzung von 3D-Texturen und Constructive Solid Geometry (CSG).
- Adaption von Dual Marching Cubes zur effizienten Generierung von Polygonnetzen aus den Volumendaten.
- Implementierung eines LOD-Systems (Chunkbaum) zur performanten Auswahl und Darstellung von Geometrieabschnitten.
- Integration von Techniken zur realistischen Materialdarstellung, einschließlich triplanarer Texturierung und Normal Mapping.
Auszug aus dem Buch
1.2. Vorgehensweise
Zuerst wird das Kernkonzept der volumetrischen Modellierung beschrieben und dann ein Blick auf die zusammenhängende Entwicklung geworfen. Sie besteht aus den Themengebieten der Isosurface Generierung, des Materials, des Höhenfeld basierten und volumetrischen Terrain.
Bei der Dichtefunktion werden die zwei implementierten Möglichkeiten gezeigt, sie zu definieren. Um Daten „von Außen“ (z.B. aus einem Editor) darstellen zu können, sind 3D Texturen wegen ihrer Einfachheit ein praktisches Format, da sie zu jeder diskreten Koordinate einen Wert definieren. In diesem Fall stellt er die Dichte dar. Constructive Solid Geometry (CSG) ist mit Volumendaten einfach umzusetzen und hat viele Anwendungen. Einige Grundformen wie Kugeln, Ebenen und Kuben können mittels CSG mit Mengenoperationen (Vereinigung, Schnitt, Differenz, ...) in einem Binärbaum kombiniert werden [OM04, S. 157-158].
Das nächste Kapitel zeigt das entwickelte Verfahren zur Volumendarstellung. Anhand der Dichtefunktion werden mittels DMC Polygonnetze gebildet. Auftretende Lücken zwischen den Polygonnetzen schließen sich durch einer Variante von Marching Squares. Die Dreiecke bekommen anschließend ein Material zugewiesen. Aus einzelnen Polygonnetzen wird nun ein Baum beim LOD Verfahren gebildet, aus dem abhängig von der Kameraposition die zu zeichnenden Teile ausgewählt werden.
Es folgt eine Betrachtung der zur Implementierung ausgewählten Bibliothek Object-Oriented Graphics Rendering Engine (OGRE) 1. Das Projekt wurde im Google Summer of Code (GSoC) entwickelt und ist mittlerweile Bestandteil von OGRE.
Anschließend werden die Softwarearchitektur und die Implementierungsdetails erörtert.
Zusammenfassung der Kapitel
1. Einleitung: Beschreibt die Motivation zur Verwendung von volumetrischem Terrain und führt in die Problemstellung sowie das Ziel der Arbeit ein.
2. Volumenmodell: Erläutert das Konzept der Dichtefunktion als Basis zur Definition von Volumendaten und das Prinzip der Isosurface-Extraktion.
3. Zusammenhängende Entwicklung: Gibt einen Überblick über existierende Methoden zur Isosurface-Generierung, Materialdarstellung und verschiedene Terrain-Rendering-Ansätze.
4. Dichtefunktion: Detailliert die zwei umgesetzten Datenquellen für das System: 3D-Texturen sowie Constructive Solid Geometry.
5. Verfahren der Volumendarstellung: Beschreibt den zentralen Algorithmus (Dual Marching Cubes), die Marching Squares Skirts zur Lückenschließung sowie die LOD-Steuerung.
6. OGRE: Stellt die verwendete Rendering-Bibliothek und den Kontext der Entwicklung im Rahmen des Google Summer of Code 2012 dar.
7. Softwarearchitektur: Dokumentiert das Design der Softwarekomponenten und deren Interaktion zur Erstellung des Chunkbaums.
8. Implementierung: Bietet technische Einblicke in die praktische Umsetzung der Dichtefunktionen, des Chunkbaums und der Materialsteuerung.
9. Abschlussbetrachtung: Evaluiert die Leistungsfähigkeit des Systems anhand verschiedener Testszenarien und diskutiert zukünftige Entwicklungsmöglichkeiten.
Schlüsselwörter
Volumendaten, Echtzeitdarstellung, Level of Detail, Terrain Rendering, Dual Marching Cubes, Octree, Constructive Solid Geometry, Triplanare Texturierung, Normal Mapping, OGRE, Chunkbaum, Geometrieoptimierung, Shaderprogrammierung, Polygonnetz, Grafik-Rendering
Häufig gestellte Fragen
Worum geht es in dieser Arbeit grundsätzlich?
Die Arbeit befasst sich mit der Echtzeitdarstellung von komplexen Volumendaten, wobei der Fokus auf der Erzeugung von volumetrischem Terrain liegt, das moderne Grafik-Engines wie OGRE für dynamische Szenen effizient nutzbar macht.
Welche zentralen Themenfelder werden bearbeitet?
Zentrale Themen sind die Modellierung von Volumendaten über CSG und 3D-Texturen, die algorithmische Generierung von Polygonnetzen mittels Dual Marching Cubes, die adaptive Detaillierung über Level-of-Detail-Strukturen sowie die realistische Materialdarstellung.
Was ist das primäre Ziel oder die Forschungsfrage?
Das Ziel ist die Entwicklung eines neuen Verfahrens, das volumetrisches Terrain in Echtzeit mit einem LOD-Mechanismus darstellt, um hohe Effizienz bei gleichzeitig hoher geometrischer Flexibilität (z.B. Höhlen, Überhänge) zu erreichen.
Welche wissenschaftlichen Methoden werden verwendet?
Es werden Verfahren aus der Computergrafik wie Marching Cubes Algorithmen, Octree-Datenstrukturen zur räumlichen Unterteilung und Techniken wie triplanare Texturierung und Normal Mapping zur Materialsimulation eingesetzt.
Was wird im Hauptteil der Arbeit behandelt?
Der Hauptteil gliedert sich in die theoretische Erläuterung der Volumendarstellung, die detaillierte Beschreibung der Algorithmen (DMC, LOD), die Softwarearchitektur der OGRE-Komponente sowie die empirische Evaluierung der Performance.
Welche Schlüsselwörter charakterisieren die Arbeit?
Wichtige Begriffe sind Volumendarstellung, Level of Detail (LOD), Dual Marching Cubes, Octree, Constructive Solid Geometry (CSG) und die Rendering-Engine OGRE.
Warum ist der "Chunkbaum" für die Darstellung so wichtig?
Der Chunkbaum ermöglicht eine hierarchische Organisation der Geometrie. Durch das Traversieren dieses Baums und die Auswahl passender "Chunks" basierend auf dem Screen-Space-Fehler kann der Detailgrad adaptiv an die Distanz zur Kamera angepasst werden.
Welchen Einfluss hat das Material auf die Laufzeit?
Wie die Messergebnisse zeigen, haben komplexe Material-Shader, insbesondere mit aktivem Normal Mapping oder Kantenglättung, einen erheblichen Einfluss auf die Performance, weshalb Material-LOD-Strategien sinnvoll eingesetzt werden.
Wie werden Lücken zwischen Chunks vermieden?
Zur Vermeidung von Lücken an den Nahtstellen zwischen Chunks unterschiedlicher Detaillierungsstufen werden sogenannte "Marching Squares Skirts" verwendet, die den Übergang räumlich schließen.
Welchen Vorteil bietet die Verwendung von CSG in diesem Projekt?
CSG erlaubt eine prozedurale und speichereffiziente Definition des Volumens durch die Kombination grundlegender mathematischer Formen, was besonders für die Modellierung komplexer, veränderbarer Geometrien von Vorteil ist.
- Quote paper
- Philip Lehmann-Böhm (Author), 2012, Echtzeitdarstellung von Volumendaten mit einem Level of Detail System, Munich, GRIN Verlag, https://www.grin.com/document/425416