Präsentation herunterladen
Die Präsentation wird geladen. Bitte warten
Veröffentlicht von:Catharina Weiner Geändert vor über 7 Jahren
1
Multiskalige Repräsentation von Geländemodellen
Meik Kühnen
2
Überblick Allgemeines Probleme Lösungsansätze Meik Kühnen
3
Motivation Echtzeitdarstellung von 3D Geländemodellen für jederman
Meik Kühnen
4
Was möchte man erreichen?
Beispiele Durchstreifen eines Geländes zum planen einer Wanderung 3D Simulatoren für Piloten Entwicklung 3D- Strategien beim Militär 3D animierte Wettervorhersage Meik Kühnen
5
Bisherige Anwendungsgebiete
3D Computer Spiele Filme (Bsp: Herr der Ringe) Meik Kühnen
6
Allgemeines Darstellung von 3D Geländemodellen Verwendungszweck
Polygonbasierte Darstellung (TIN oder GRID) Annäherung des Höhenfeldes durch Polygonbildung Verwendungszweck Visuelle Sichtbarmachung von Geländeunebenheiten Meik Kühnen
7
Erzeugung von 3D Geländemodellen
1.) durch Triangulation des Höhenfeldes 2.) Belegung der so ermittelten Dreiecke mit Texturen 3.) Zeichnung von Objekten innerhalb des Geländes Beispiele: Wasserflächen, Gebäude, Vegetation 4.) Steigerung der Realitätsnähe durch Dunst-, Schatteneffekte Meik Kühnen
8
Probleme Große Menge an Daten => sehr langsam
Niedrige Framerate => sehr langsam Artefakte beim plötzlichen Annähern an ein Objekt Sichtbarkeit der Objekt* * Siehe Vortrag T. Eicker Meik Kühnen
9
Lösung Multiskalige Darstellung von Geländemodellen 26.06.2003
Meik Kühnen
10
Multiskalig Multiskalig heißt, daß des Systems nicht an eine bestimmte räumliche Skala und Auflösung gebunden ist, sondern eine Anwendung in allen Skalenbereichen (Mikro-, Meso- und Makroskala) mit entsprechend unterschiedlicher räumlicher Auflösung möglich ist. Quelle: Meik Kühnen
11
Anforderung an den Algorithmus
Unterschiedliche Level of Ditail (LoD) für unterschiedlich weit entfernte Objekte Schnelles rendering (digitale Berechnung) der sichtbaren Polygone Schnelle Berechnung der Sichtbarkeit Geringer Speicherbedarf Meik Kühnen
12
Algorithmen Große Anzahl von Algorithmen Beispiele:
Lindström Algorithmus Röttger Algorithmus ROAM (real-time optimally adapting meshes) Diamond Algorithmus Diamond Algorithmus Meik Kühnen
13
Diamond Algorithmus Allgemeine Struktur v2
alle Dreiecke zeigen nur nach Oben oder Unten n1 c n3 a b d Scheitelpunkte aller Dreiecke sind im Uhrzeigesinn sortiert v1 v3 n2 alle Dreiecke haben genau 3 Nachbarn alle Dreiecke haben genau 4 Kinder Meik Kühnen
14
Diamond Algorithmus 2 Mechanismen für Änderung der LoD
split = aufspalten Meik Kühnen
15
Diamond Algorithmus 2 Mechanismen für Änderung der LoD
split = aufspalten merge = verschmelzen Meik Kühnen
16
Diamond Algorithmus Diamond Algorithmus benutzt 4 Warteschlangen (queues) -SplitAbove -SplitBelow -MergeAbove -MergeBelow Above und Below gibt an, welche Priorität ein Objekt gegenüber der Zielpriorität hat, d.h. ob es über oder unterhalb einer bestimmten LoD liegt. Meik Kühnen
17
Erzeugen der queues begin
reset mesh and queues cull, prioritize and enqueue the primary triangles end else begin pass through SplitBelow, reevaluate priority and requeue item to SplitAbove if necessary (SplitAbove will start-out empty) pass through MergeAbove, reevaluate priority and requeue item to MergeBelow is necessary (MergeBelow will start-out empty) end Merge all items in MergeBelow queue Split all items in SplitAbove queue Durchlaufe sb, bewerte Priorität neu und füge bei bedarf item in sa überschreiten Sie durch SplitBelow, bewerten Sie Priorität neu und requeue Einzelteil zu SplitAbove wenn notwendig Meik Kühnen
18
Split Splitting of a tri:
if tri enqueued, dequeue (from SplitAbove) if parent enqueued, dequeue (from a Merge queue) if a neighbour is less refined (bigger) then tri, then split the neighbour if a neighbour's parent is enqueued, dequeue (from a Merge queue) generate child triangles from tri cull and prioritize children, enqueue into SplitAbove/SplitBelow as appropriate if tri is mergeable, enqueue (into MergeAbove) falls Tri in eine Warteschlange eingereiht, aus der Warteschlange nehmen (von SplitAbove) falls Elternteil in eine Warteschlange eingereihte, aus der Warteschlange nehmen (von einer Mischenwarteschlange) falls ein Nachbar weniger verfeinert (grösseres) als Tri ist, spalten Sie dann den Nachbar, falls das Elternteil eines Nachbars in eine Warteschlange eingereiht wird, aus der Warteschlange nehmen (von einer mergewarteschlange) erzeugen Kinddreiecke von Tri auswählen und Priorität geben der Kinder, in eine Warteschlange einreihen in SplitAbove/SplitBelow wo es passt, wenn Tri mergeable, in Warteschlange einreihen (in MergeAbove) wenn tri´s Kinder haben aber keine Enkelkinder sind sie mergeable Meik Kühnen
19
Merge Merging of a tri: if children enqueued, dequeue (from a Split queue) dequeue tri (from MergeBelow) correct neighbour child pointers if necessary delete children from tri if a neighbour's parent can now merge, enqueue (into the appropriate Merge queue) if tri's parent can now merge, enqueue (into appropriate Merge queue) enqueue tri (into SplitBelow) Wenn Kind in Warteschlange, entferne es aus splitqueue Entferne tri aus MergeBelow Koregiere Nachbar Kind Zeiger falls notwendig Entferne Kinder aus tri, verschmelze die Kinder Wenn Eltern des Nachbarn nun verschmelzen können, reihe es in passende Warteschlange (entweder mergeabove/mergebelow) ein Wenn Eltern der tris nun verschmelzen können, reihe sie in passende Warteschlange Meik Kühnen
20
Last but not least Letzte wichtige Schritt:
generieren und rendern der Maschen Meik Kühnen
21
Generieren und Rendern
Zwei Faktoren sind zu beachten - Ausrichtung der Dreiecke (tri orientation) - Dreiecksverbindung (tri connectivity) Meik Kühnen
22
tri orientation Problem:
Orientierung der Dreiecke (wichtig, um zu wissen in welche Richtung gedreht wird) Lösung: Neuordnung der Scheitelpunkte Meik Kühnen
23
tri connectivity Problem: Stelle an der LoD wechselt Lösung:
Zusätzliche Dreiecke Meik Kühnen
24
tri connectivity Scheitelpunkte der neu gebildeten Dreiecke sind dabei Scheitelpunkte von Nachbardreiecken und daher bekannt Meik Kühnen
25
Ergebnis Vor Einsetzen des Algorithmuses ca. 62.500 Polygone
Meik Kühnen
26
Ergebnis Nachher ca Polygone Meik Kühnen
27
Danke für Ihre Aufmerksamkeit
Meik Kühnen
28
Meik Kühnen
29
Texturen Texturen sind den Flächen eines Objekts zugewiesene Oberflächeneigenschaften. Eine Textur besteht aus verschiedenen Texturkanälen wie Farbe, Relief oder Glanzlicht. In den meisten Kanälen können neben Farbe auch Bilder (bitmap, jpeg, usw.) verwendet werden. Auf diese Weise können Materialen wie Holz, Marmor oder Glas erstellt werden. Texturen sind den Flächen eines Objekts zugewiesene Oberflächeneigenschaften. Eine Textur besteht aus verschiedenen Texturkanälen wie Farbe, Relief oder Glanzlicht. In den meisten Kanälen können neben Farbe auch Bilder (bitmap, jpeg, usw.) verwendet werden. Auf diese Weise können Materialen wie Holz, Marmor oder Glas erstellt werden. Quelle: Meik Kühnen
30
Framerate Bei der Beurteilung der 3D-Leistung von Grafiken wird mit der Framerate angegeben, wieviele Bilder pro Sekunde die Grafikkarte darstellen kann. Bei weniger als etwa 20 Bildern (Frames) pro Sekunde werden Bewegungen nicht mehr als flüssig wahrgenommen. Das Fernsehbild hat 25 Frames pro Sekunde. Quelle: Meik Kühnen
31
Artefakte Artefakte sind Bildfehler, die durch eine verlustbehaftete Kompression entstehen. Sie unterscheiden sich je nach Kompressions-Verfahren. Am bekanntesten sind die unschönen blockartigen Bildfehler, die bei der JPEG- sowie MPEG-Kompression auftreten. Quelle: Meik Kühnen
Ähnliche Präsentationen
© 2025 SlidePlayer.org Inc.
All rights reserved.