Mesh: Gesamtheit der Vertex- und Dreicksarrays eines Polygons Streambarer Mesh: Mesh dessen Daten nicht in ihrer Gesamtheit im Hauptspeicher vorhanden.

Slides:



Advertisements
Ähnliche Präsentationen
Algorithmen und Datenstrukturen
Advertisements

Der R-Baum Richard Göbel.
Algorithmentheorie 08 – Dynamische Programmierung (1)
Der k-d-Baum Richard Göbel.
So erstellen Sie bei komplexen Animationen Übersichten Ihrer Animationseffekte Herbert Manthei
• • • • • 3.2 Die projektive Erweiterung des E³
FH-Hof Der B-Baum Richard Göbel. FH-Hof Wahl des Verzweigungsgrad Verzweigungsgrad kann größer als 2 sein v Nachfolger für einen Knoten v-1 Werte in einem.
Suche in Texten (Stringsuche )
<d,a,s, ,i,s,t, ,e,i,n,e, ,L,i,s,t,e>
Kapitel 3: Listen Lineare Liste: endliche Folge von Elementen eines Grundtyps (n>=0), leere Liste falls n=0 Listenelemente besitzen.
5. Sortier-Algorithmen Vorbemerkungen:
Erschließen von semantischen Referenzen mit Ontology-Reasoning-Werkzeugen Das Ziel dieser Masterarbeit war die Erweiterung des ORBI Systems um ein Inferenz-System.
Sortierverfahren Richard Göbel.
Sortierverfahren Richard Göbel.
Der R-Baum Richard Göbel.
Effizienz: Indexstrukturen
Polymorphie (Vielgestaltigkeit)
Polymorphie (Vielgestaltigkeit)
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (23 – Sortieren vorsortierter Daten) Prof. Th. Ottmann.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (19 - Analyse natürlicher Bäume) Prof. Th. Ottmann.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen Halbzeit: Was haben wir bisher gelernt? Prof. Th. Ottmann.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (27 – Kürzeste Wege) Prof. Th. Ottmann.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (17 – Bäume: Grundlagen und natürliche Suchbäume) Prof. Th. Ottmann.
1 Vorlesung Informatik 2 Algorithmen und Datenstrukturen (21 – Kürzeste Wege) T. Lauer.
Algorithmen und Datenstrukturen
Geometrisches Divide and Conquer
Produktform der Inversen 1
Externe Datenstruktur lineare Liste
Access 2000 Datenbanken.
Minimum Spanning Tree: MST
Vortrag: Ingo Gensch, Mathias Reich am:
Raid 0.
Kakuro Regeln und Strategien
Effiziente Algorithmen
Eine Implementierung einer effiziente externe geordnete (!) lineare Liste Operationen: Search(x) Insert(x) Delete(x)
Einführung in die Programmierung
Effiziente Algorithmen
Computational Thinking Online Algorithmen [Was ist es wert, die Zukunft zu kennen?] Kurt Mehlhorn Konstantinos Panagiotou.
1 Nutzen Sie diese Powerpoint-Präsentation beim Selbstlernen oder in Veranstaltungen zur Einführung in das jeweilige Thema. Einführung Lernmodul Nutzungsbedingungen:
Ändern von Merkmalen Geometrie Topologie Attribute.
Effiziente Algorithmen Hartmut Klauck Universität Frankfurt SS
Quantum Computing Hartmut Klauck Universität Frankfurt WS 05/
Effiziente Algorithmen
Quantum Computing Hartmut Klauck Universität Frankfurt WS 04/
Quantum Computing Hartmut Klauck Universität Frankfurt WS 05/ /23.1.
Effiziente Algorithmen Hartmut Klauck Universität Frankfurt SS
Effiziente Algorithmen Hartmut Klauck Universität Frankfurt SS
Beweissysteme Hartmut Klauck Universität Frankfurt WS 06/
Hartmut Klauck Universität Frankfurt WS 06/
Einführung in die Programmierung Wintersemester 2009/10 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund.
Algorithmen und Datenstrukturen SS 2005 Mag.Th. Hilpold u. Dr. A.Stritzinger Institut für Wirtschaftsinformatik- Software Engineering JKU Linz.
ProSeminar WS 2007/08 Leo Hackstein
Vom Kontext zum Projekt V Carina Berning Sabrina Gursch Pierre Streicher Intelligente Dateisysteme.
Strategie der Modellbildung
1 Möglichkeiten, Texte darzustellen und zu formatieren.
ARBEITSEBENEN IN DER GESTALTUNG. Realisieren Bedingt durch die Notwendigkeit der Herstellung des gestalteten Produkts oder Prototyps dafür ist der Gestalter.
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Diskrete Mathematik II Vorlesung Datenstrukturen für den Algorithmus von.
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Diskrete Mathematik II Foliendesign: Jörg Steinrücken & Tobias Kahn Vorlesung
Routenplanung querfeldein - Geometric Route Planning
Stefan Nolting Andreas Goebels Larissa Timajev
Institut für Informationssysteme Technische Universität Braunschweig Institut für Informationssysteme Technische Universität Braunschweig Verdrängung von.
Aktueller Stand der Technik. Auf dem Markt sind heute bereits 64-Bit Mikrocontroller. Die meiste Verwendung finden allerdings noch immer die 8-Bit Modelle.
Algorithmen und Datenstrukturen Prof. Dr. Ralf Möller Universität zu Lübeck Institut für Informationssysteme Stefan Werner (Übungen) sowie viele Tutoren.
Binärbäume.
Programmiersprachen II Fortsetzung Datenstrukturen Hashing Prof. Dr. Reiner Güttler Fachbereich GIS HTW.
Programmiersprachen II Fortsetzung Datenstrukturen Balancierte Bäume 3 Prof. Dr. Reiner Güttler Fachbereich GIS HTW.
Tutorium Software-Engineering SS14 Florian Manghofer.
Pointer, Arrays und verkettete Listen. Mehrdimensionale Arrays  Pointer auf ein Array von Pointern  int32 **matrix = new int32*[3];  matrix: Zeiger.
Ich brauche eine Web-Seite vom Server im Internet
 Präsentation transkript:

Mesh: Gesamtheit der Vertex- und Dreicksarrays eines Polygons Streambarer Mesh: Mesh dessen Daten nicht in ihrer Gesamtheit im Hauptspeicher vorhanden sein müssen, um sie zu verarbeiten

Normale Darstellung von Meshes: Arrays von floats für die Vertexdaten, Array von Indizes auf die Vertexdaten für die Flächendaten Je komplexer das Polygon wird desto mehr Daten müssen abgelegt werden: mehrere Gigabyte Vertizedaten und mehrere Gigabyte Flächendaten

Um nur einzelne Teile des Meshes zu verwenden ohne alles zu dereferenzieren müssen Maßnahmen an Aufbau und Anordnung der Meshdaten vorgenommen werden

Es gibt immer die Möglichkeit der Speicherung der Daten auf externem Speicher (z.B Festplatte) Algorithmen die darauf arbeiten nennt man Out-of-core Verschiedene Möglichkeiten: Zerteilen des Meshes, externe Datenstrukturen, Dreieckssuppe, Streaming

Simples Verfahren, welches große Meshes in kleinere Abschnitte unterteilt Aber: dazu muss zunächst für den Cut dereferenziert werden

Ähnlicher Ansatz wie Mesh Cutting: Aufteilung in sog. Cluster Nutzung dieser Aufteilung um je nach aktuellem Bedarf zu pagen

Umgeht die Problematik der indizierten Daten indem man eben keine Indizes verwendet Dreiecke werden nacheinander von der Platte in den Speicher geholt Beziehungen werden rekonstruiert oder einfach ignoriert

Jedoch: Wieder initiales dereferenzieren aller indizierten Daten notwendig Ergo wie die anderen Varianten nicht die Lösung des Problems

Einführung einer neuen Information: Finalisierung Ist ein Vertex finalisiert wird er nicht länger für die Berechnungen benötigt Ist ein vertex finalisiert kann er also aus dem Hauptspeicher entfernt werden

Im Standardformat für Meshes werden keine Anforderungen daran gestellt wo die Vertices der einzelnen Dreiecke abgelegt werden Für die anfänglichen Meshes praktisch, heute jedoch problematisch, da keine bekannten Ordnungen existieren

Um die Güte der Streambarkeit einer Meshindexanordnung zu bestimmen brauchen wir Anhaltswerte Dreicksabstand : gibt an wieviele Dreiecke sich zwischen der ersten und der letzten Referenzierung des Vertex sind

Vertexabstand: maximal Indexdifferenz zwischen den Vertices eines Dreiecks Dreiecks- Vertexweite: maximale Anzahl die zwischen erstem und letztem Element von Vertexreferenz oder Dreiecksreferenz stehen Skip: Anzahl der Vertices welche die Indexreihefolge umgehen

Bereits erwähnt: kennzeichnung der Finalisierung Daraus ergibt sich die Menge der aktuell bearbeiteten Vertices, nämlich alle die zwischen Einführung und Finalisierung stehen Die maximale Anzahl bildet die Frontweite des Meshes

Es gibt 2 Arten von streambaren Meshes: Pre- und Post-Order Pre-Order: Vertex kommt vor allen Dreickecken die aud ihn referenzieren an Post-Order: Vertex kommt nach allen Dreicken die auf ihn referenziern an

Darzustellendes Polygon: Original Darstellung

Pre-OrderPost-Order

Vertexkompakt: jeder Vertex ist vom vorhergehenden oder nachfolgenden Dreieck referenziert Dreieckskompakt: letzter benötigter Vertex ist direkt davor oder danach im Stream zu finden Kompakt: beide Kompaktheitsformen

Schritt 1: Trennung von Vertex- und Dreiecksdaten Soll eine Anordnung von Indices nicht erhalten bleiben sondern umsortier kann diese verworfen werden Vertices müssen jedoch den auf sie referenzierenden Dreicken zugeordnet werden können

Schritt 2: Zuweisung von Keys für Dreicke t und zugehörigen Vertices v Wir erhalten zwei Datein mit Datensätzen und

Schritt 3: Sortierun und Anordnen der Datensätze in einen streambaren Datensatz Für pre-Order nach Dreiecken Für Post-Order nach Vertices Verschiedene techniken zum Anordnen

Wenn die Streamgüte des alten Layouts gut genug ist kann man einen Streambaren Mesh erhalten indem man einfach die Datensätze anpasst und Finalisierung vorsieht

Gerade bei hohem skip-Wert bietet sich Kompaktierung an Dadurch kann leicht Pre-Order erreicht werden: Sortierung der Vertices und Einfügen eines Dreiecks sobald alle dafür nötigen Vertices bereits vorher eingefügt wurden

Post-order: Einfügen der Dreiecke jeweils wenn ein Vertex dafür benötigt wird und vor dem besagten Vertex

Simple Sortierung der keys nach einer räumlichen Ausrichtung also x, y oder z danach Orientierung entweder an Vertices oder Dreiecken und erzeugen eines kompakten Meshes Alternativ aber ähnlich: Sortierung nach topologischen Richtlinien

Ordnung nach minimaler Weite und Abstand: da diese Werte die Güte der Streambarkeit angeben der natürlichste Ansatz Aber: das Trennen der Vertices und die Bildung von passenden Reihenfolgen erweist sich als NP-hartes Problem

Daher: Heuristiken werden benötigt Beliebt dafür ist das Spectral Sequencing: Aufteilung in Cluster, umordnen dieser per ACE-Clusterformatierung gut geformte Teile Dadurch wird ein ausreichend gutes gesamtbild erzeugt

I/O-effizientes Arbeiten da durch die Formatierung des Meshes die Dreicke sobald sie im Speicher eintreffen gerendert werden können und alle finalisierten Vertices aus dem Speicher entfernt werden können um Platz zu sparen

Nachteil: kein Mitführen von Informationen wie Valennzen, Inzidenzen und andere topologische Merkmale Dafür gibt es den Spezialfall von Streammeshes die sogeanntnen Processing Sequences

Zudem bietet das Sequenzielle Format der Streammeshes eine gute Möglichkeit für Komprimierung der Daten Normale Meshkompression benötigt Zugriff auf den Raum in zufälliger Folge, was beim Streamen nicht möglich ist Daher: eigene Kompression welche die Daten on-the-fly beim Streamen packt

Durch einfaches Umformatieren wird es ermöglicht auch mit wenig Speicher grosse Modelle zu rendern welche aufgrund der Datenmengen sonst nicht möglich wären Nicht an spezifisches Format gebunden, auch Standardformate können bei passenden Abständen genutzt werden (z.B. PLY, OBJ)

Einfache Formatierungsmethoden können auch direkt in einem Stream geschrieben werden Manche Ideen wie Ordnungserhaltende Kompression und die Kompaktierung der Meshanordung können auch an anderen Orten Anwendung finden