Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

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

Ähnliche Präsentationen


Präsentation zum Thema: "Mesh: Gesamtheit der Vertex- und Dreicksarrays eines Polygons Streambarer Mesh: Mesh dessen Daten nicht in ihrer Gesamtheit im Hauptspeicher vorhanden."—  Präsentation transkript:

1

2 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

3 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

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

5 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

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

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

8 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

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

10 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

11 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

12 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

13 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

14

15 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

16 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

17 Darzustellendes Polygon: Original Darstellung

18 Pre-OrderPost-Order

19 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

20 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

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

22 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

23 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

24 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

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

26 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

27 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

28 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

29

30 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

31 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

32 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

33 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)

34 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


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

Ähnliche Präsentationen


Google-Anzeigen