Angkor - Geländevisualisierung

Ähnliche Dokumente
Games Engines. Realtime Terrain Rendering

Programmierpraktikum 3D Computer Grafik

Vorlesung Geometrische Algorithmen Generierung von Nicht-uniformen Netzen Sven Schuierer

Seminar Computerspiele Räumliche Datenstrukturen. Ralf Pramberger

2015 Sebastian Wahner - Die teilweise oder vollständige Weiterverbreitung dieses Werkes ist ohne Einverständnis des Autors

3D - Modellierung. Arne Theß. Proseminar Computergraphik TU Dresden

Programmierpraktikum 3D Computer Grafik

Lösungen zu Kapitel 5

Electronic Design Automation (EDA) Technology Mapping

Algorithmen und Datenstrukturen. Bäume. M. Herpers, Y. Jung, P. Klingebiel

Darstellungsarten für 3D-Körper. Boundary Representation (BRep):

Algorithmen zur Visualisierung von Graphen

{0,1} rekursive Aufteilung des Datenraums in die Quadranten NW, NE, SW und SE feste Auflösung des Datenraums in 2 p 2 p Gitterzellen

Optimierungsalgorithmen

Relationen und DAGs, starker Zusammenhang

Seminar-Vortrag von Michael Vollmer

Polygontriangulierung

Formeln für Formen 4. Flächeninhalt. 301 Berechne die Höhe h von einem Rechteck, einem Parallelogramm und einem Dreieck, die jeweils den Flächeninhalt

Programmbeschreibung: EASY-TOOLS 3.0 für ArCon

Klausur Algorithmen und Datenstrukturen II 29. Juli 2013

Nichtrealistische Darstellung von Gebirgen mit OpenGL

Kennen, können, beherrschen lernen was gebraucht wird

Quad-trees. Benjamin Niedermann Übung Algorithmische Geometrie

Idee: Wenn wir beim Kopfknoten zwei Referenzen verfolgen können, sind die Teillisten kürzer. kopf Eine Datenstruktur mit Schlüsselwerten 1 bis 10

Lernmodul 7 Algorithmus von Dijkstra

Was bisher geschah. 1. Zerlegung in monotone Polygone 2. Triangulierung der monotonen Teilpolygone

FRAKTALE. Eine Dokumentation von Dominik Assmann, Philipp Gewessler und Paul Maier

Computergrafik 1. Blatt 5

QUASI-SPLINE-INTERPOLATION BEZÜGLICH GLEICHMÄSSIGER UNTERTEILUNGEN

3D Programmierpraktikum: Szenegraphen und Texturierung

Beschleunigung von kräftebasierten Graphzeichenalgorithmen mittels wohlseparierten Paardekompositionen

neue dokumente anlegen Menüleiste: Datei > Neu Kurzbefehl: cmd + N

Isomorphie von Bäumen

12 (2-4)-Bäume Implementierbare Funktionen. (2-4)-Bäume sind durch folgende Eigenschaften deniert: 1. Alle Äste sind gleich lang

5 BINÄRE ENTSCHEIDUNGS- DIAGRAMME (BDDS)

Schriftliche Prüfungsarbeit zum mittleren Schulabschluss 2009 im Fach Mathematik. Nachschreiber 15. Juni 2009

1 Der Baum. Informatik I: Einführung in die Programmierung 11. Bäume. Bäume in der Informatik. Bäume in der Informatik - Definition.

Algorithmische Bioinformatik 1

Logische Datenstrukturen

1 Der Baum. Informatik I: Einführung in die Programmierung 11. Bäume. Bäume in der Informatik. Bäume in der Informatik - Definition.

Füllen von Primitiven

7. Dynamische Datenstrukturen Bäume. Informatik II für Verkehrsingenieure

Vorlesung Algorithmische Geometrie. Streckenschnitte. Martin Nöllenburg INSTITUT FÜR THEORETISCHE INFORMATIK FAKULTÄT FÜR INFORMATIK

Bildbearbeitung und Texturierung

Kollisionserkennung

9. Kombination von Vektor- und Rasterdaten

Matthias Treydte Fakultät für Informatik TU Chemnitz

Einführung in die Programmierung (EPR)

4. Tries und kd-bäume

Marching Cubes - Erstellung von Polygonmodellen aus Voxelgittern

Informatik B Sommersemester Musterlösung zur Klausur am

Unterrichtsmaterialien in digitaler und in gedruckter Form. Auszug aus: Multimedia für Referate und Präsentationen

(1) Geometrie. Vorlesung Computergraphik 3 S. Müller U N I V E R S I T Ä T KOBLENZ LANDAU

13 (2-4)-Bäume Implementierbare Funktionen. (2-4)-Bäume sind durch folgende Eigenschaften deniert: 1. Alle Äste sind gleich lang

Vorlesung Algorithmische Geometrie. Streckenschnitte. Martin Nöllenburg INSTITUT FÜR THEORETISCHE INFORMATIK FAKULTÄT FÜR INFORMATIK

Vorlesung Algorithmen für hochkomplexe Virtuelle Szenen

Computer-orientierte Mathematik

Vorlesung Algorithmen für hochkomplexe Virtuelle Szenen

Tagged Image File Format. Im Printbereich neben EPS sehr verbreitet.

Eintragsbearbeitung. Inhaltsverzeichnis

2.4. Triangulierung von Polygonen

11.1 Grundlagen - Denitionen

Hauptseminar KDD SS 2002

Grafikformate 2

Vorlesung Datenstrukturen

1 DFS-Bäume in ungerichteten Graphen

1 DFS-Bäume in ungerichteten Graphen

Entscheidungsverfahren für die Software-Verifikation. 4 - BDDs

Vektorgrafik / Bitmap (bmp)

Boolesche Operationen und lokale Manipulationen

deegree 3d mit Open Source in die dritte Dimension

Algorithmen und Datenstrukturen 2 VU 3.0 Nachtragstest SS Oktober 2016

KD-Bäume. ein Vortrag von Jan Schaefer

Graphen: Rundwege, Kodierung von Bäumen

Bildgrösse Millionen Farben. Breite in Pixel Höhe in Pixel Farbtiefe in Bit : 8 = Bildgrösse in Byte

Geometrie 2. Julian Fischer Julian Fischer Geometrie / 30

Fraktale Terrainerzeugung. Fraktale. Ziel der Ausarbeitung. fbm) Fractional Brownian Motion (fbm( Eigenschaften von fbm

Übersicht über Informatik und Softwaresystemtechnik WS 99/00, Prof. Dr. Andreas Schwill

Klasse räumlicher Indexstrukturen, die den Datenraum rekursiv in 4 gleich große Zellen unterteilen (Quadranten NW, NE, SW, SE)

Automatisch-generierte Texturen aus Laserpunktwolken

Übersicht. Datenstrukturen und Algorithmen. Übersicht. Heaps. Vorlesung 8: Heapsort (K6) Joost-Pieter Katoen. 7. Mai 2015

4.4 Quadtrees. Literatur

Software-Praktikum für! Anfänger und Fortgeschrittene! Susanne Krömker, Hubert Mara!

Datenstrukturen. einfach verkettete Liste

Datenstrukturen und Algorithmen (SS 2013)

Kantengraphen und Planare Graphen. Seminararbeit

Algorithmische Geometrie: Delaunay Triangulierung (Teil 1)

Algorithmische Geometrie: Abfragen Orthogonaler Bereiche

Clustering 2010/06/11 Sebastian Koch 1

Landesabitur 2007 Beispielaufgaben 2005_M-LK_A 7. Eine quadratische Pyramide (Grundkante 4 und Höhe 6) steht neben einer Stufe. 1.

TERRA X5.Fried und Google Earth

WINTERSEMESTER 2006/2007. Mehrdimensionale Bäume

Hilfe 1 FLÄCHENINHALT. Der Flächeninhalt des Rechtecks beträgt 4,20m 6,60m = 27,72m²

Algorithmen und Datenstrukturen II

Grundlagen zur Delaunay-Triangulierung und zur konvexen Hülle. zum Begriff des Voronoi-Diagramms (vgl. auch Vorlesung "Algorithmische Geometrie"):

Aufgabenblatt 6. Kompetenzstufe 1. Allgemeine Informationen zum Aufgabenblatt:

Bildbearbeitung mit Gimp

An Overview of the Signal Clock Calculus

Transkript:

Visualization and Numerical Geometry Group Universität Heidelberg 24. Juni 2005

Einführung 1/2 Eine einfache und weit verbreitete Art der Visualisierung von großflächigem Gelände besteht in der Visualisierung mit einer Heightmap. Heightmap: Eine Heightmap ist ein beliebiges Datenformat, welches in einem rechteckigen Gebiet G zu gegebenen endlichen Koordinaten die Höhe in diesem Punkt liefert. (x,y) G h(x, y) 2

Einführung 2/2 Der in diesem Vortrag vorgestellte Algorithmus verwendet ein quadratisches Gebiet der Länge 2 i + 1 mit i. Als Datenformat wird ein Bitmap verwendet. An den Koordinaten (x,y) des Bitmaps gibt die Farbe des Pixels die Höhe an. In der Praxis hat es sich bewährt, nicht die komplette Farbpalette zu verwenden. Meist werden zum Sparen von Speicherplatz nur Graustufen im Grafikformat verwendet. Man spricht in solchem Fall auch von grayscale maps. Ich habe mich für ein Bitmap entschieden, da es für jeden Pixel die Daten ohne Verlust an Informationen speichert. Dankbar wären allerdings auch andere Formate wie PNG, TIF. Beide speichern ebenfalls verlustfrei. Möglich wäre es auch, ein eigenes Datenformat zu verwenden. 3

Quadtree 1/4 Wollte man alle Dreiecke zeichnen, die das Gelände darstellen, so würde man sehr schnell eine viel zu hohe Datenlast haben. Bei einer Seitenlänge von 2 i + 1 müßte man 2 2i+1 Dreiecke zeichnen. Im Beispiel ist i = 2, somit müssen also 32 Dreiecke gezeichnet werden. 4

Quadtree 2/4 Quadtree: Ein Quadtree ist eine Baumstruktur, in der jeder Knoten außer den Blättern (leafs) genau vier Kindknoten besitzt. ROOT 1 2 1 2 3 4 5 6 7 8 ROOT 5 6 3 4 7 8 5

Quadtree 3/4 - Cracks Teilt man das Terrain in einen Quadtree wie oben, so kann es zu so genannten cracks kommen, das sind Löcher zwischen zwei angrenzenden Quads (rot markiert). Im Bild ergänzen die grauen Linien das zugrunde liegende Drahtgittermodel (mesh). 6

Quadtree 4/4 Der Vorteil eines Quadtrees besteht darin, die kleineren Gebiete (quads) nur so weit teilen zu müssen, bis sie gewissen Bedingungen genügen. Im folgenden Algorithmus wird diese Bedingung ein sog. Pixelfehler sein. Da durch die Struktur eines Quadtrees einige Höhendaten nicht beachtet werden, wird es unter Umständen zu Abweichungen vom Original kommen. Damit diese nicht zu sehr auffallen, wird der Pixelfehler als Maß für die Abweichung dienen. Beidem (dem Vermeiden von Cracks und einer möglichst guten Annäherung an das originale Mesh) wird der SOAR - Algorithmus Rechnung tragen. 7

SOAR 1/6 Zur Vermeidung der oben angesprochenen Cracks, wird die Struktur des Quadtrees leicht geändert. Als zusätzliche Bedingung soll nun gelten: Wird in ein Quad geteilt, so soll auch der Quad des zugehörigen Elternknotens geteilt werden. Dies allein würde allerdings noch nicht die Problematik der Cracks beheben. Es werden zusätzliche Knoten in unserem Baum eingefügt. Die eingefügten Knoten befinden sich zwischen den Ebenen der Quads und repräsentieren die Kante von jeweils zwei adjazenten Quads. Etwas anschaulicher wird dies sicherlich anhand folgender Abbildung. 8

SOAR 2/6 A B C R D 1 E 2 F B G K P G H R J K L 3 M 4 N 1 2 3 4 O P Q A C D E F H J L M N O Q 9

SOAR 3/6 An obigen Beispiel verdeutlicht müßten also die rot markierten Knoten geteilt werden. Dadurch ergeben sich neue Dreiecke, deren Kanten durch die roten Linien markiert sind. Auf diese Weise werden Cracks wirkungsvoll verhindert. 10

SOAR 4/6 Diese Vorgehensweise entspricht einem bottom-up Prinzip. Allerdings ist diese Vorgehensweise nicht erwünscht, da dies hieße, alle Quads zu betrachten. Idealer wäre es einen top-down Ansatz zu verfolgen. Hier hieße dies, vom Wurzel-Knoten ausgehend die Quads so lange zu unterteilen, bis eine Unterteilung nicht mehr nötig ist. Dies läßt sich erreichen durch die Einführung des oben angesprochenen Pixelfehlers. Dazu stellt man als Bedingung an die Knoten, daß der Fehler eines Elternknoten größer/gleich aller Fehler der Kindknoten ist. Solange dieser Fehler größer als ein fest vorgegebener Wert ist, teilt man das entsprechende Quad. Die Berechnung des Fehlers setzt sich dabei aus zwei Teilen zusammen. 11

SOAR 5/6 Abweichung: Die Abweichung gibt den Fehler zwischen einem Quad und dem original Mesh an. Sie wird für jeden Quad in einem preprocessing-schritt berechnet. Beginnend bei den leafs errechnet man den Fehler und stellt sicher, daß dieser monoton wachsend zum nächsten Elternknoten ist. Dieser Schritt ist sehr rechenintensiv. Entfernung: Damit ist die Entfernung zwischen dem aktuellen Kamerapunkt und den Koordinaten des aktuellen Knoten gemeint. Wegen des top-down Schrittes müssen nicht sehr viele dieser Berechnungen durchgeführt werden. Pixelfehler: Er ist die Kombination beider Fehler. 12

SOAR 6/6 Auf die genaue Berechnung dieser Fehler soll hier nicht eingegangen werden. In meiner Implementierung habe ich ausgehend von den leafs die Abweichung als das Volumen zwischen Original und Quad betrachtet. Denkbar wäre auch die maximale oder die mittlere Abweichung zu verwenden. Prinzipiell ist die Wahl der Berechnung der Abweichung zweitrangig, muß aber obigen Bedingungen genügen. Eine gute Berechnung aller Fehler kann allerdings den Algorithmus enorm beschleunigen, da u.u. ein großer Teilbaum aus der Berechnung genommen werden kann. 13

Höhendaten 1/2 Wie anfangs erklärt, basiert dieser Algorithmus auf einer Heightmap. Interessant in diesem Zusammenhang ist die Frage, wo man Höhendaten erhalten kann. http://srtm.usgs.gov/data/obtainingdata.html Hier kann man sich zu fast allen Orten der Welt eine mehr oder weniger detaillierte Karte mit Höheninformationen beschaffen. Kambodscha mit dem Angkor Gelände ist allerdings nur mit einer Auflösung von ca. 1800 Metern erhältlich. http://www.vterrain.org Diese Seit ist eine sehr gute Anlaufstelle, wenn es um Visualisierung von Terrain geht. Hier gibt es Links zu Papern wie dem SOAR Algorithmus, Berechnung von Wasser, Wolken und anderer Umgebung. Über diese Seite gelangt man auch zu anderen Homepages, in denen es Höhendaten gibt. 14

Höhendaten 2/2 ArcView ist ein Programm zum Betrachten und Bearbeiten von Geographischen Daten. Darunter fallen auch Höhendaten. Aus Kambodscha haben wir Vektordaten, die mit ArcView gelesen werden können, mitgebracht. Diese Daten decken einen Großteil von Kambodscha inklusive dem Angkor-Gebiet ab. 15

Texturierung Zusätzlich ist es möglich, Texturen auf des Gelände zu projizieren. Dadurch wird eine bessere Orientierung im 3D-Raum erreicht. Aus Kambodscha haben wir 167 Satellitenbilder mitgebracht. Zusammengefügt und für den Algorithmus aufbereitet wird ein Gelände von mehr als 400 km 2 abgedeckt. 16

Bibliotheken Das Programm SR main benötigt folgende Bibliotheken: SDL Die Simple Directmedia Layer Bibliothek ist unter http://www.libsdl.org/index.php erhältlich. Dies ist eine Open-Source Bibliothek unter der GNU LGPL Lizenz. Sie erleichtert die Arbeit mit Input-Events wie Maus-, Tastatur-, Joystick- usw. Eingaben. OpenGL OpenGL ist eine 3D Grafik Bibliothek, die es schon seit Jahren für alle gängigen Betriebssysteme gibt. Sehr reichliche Informationen gibt es unter http://www.opengl.org/. 17

Literatur [1] P. Lindstrom, D. Koller, W. Ribarsky, L. Hodges, N. Faust and G. Turner. Real-time continous level of detail rendering of height fields. Proceedings of SIGGRAPH 95 [2] P. Lindstrom and V. Pascucci. Visualization of large terrains made easy. IEEE Visualization 2001 Proceedings 18