3D-Kompression Multimedia-Seminar, WS 2001/2002 Michael Weyel
Inhalt Aufbau von 3D-Modellen Motivation Level of Detail Progressive Meshes Quadric Error Metric Ausblick
Aufbau von 3D-Modellen Häufigste Darstellungsform : Polygonales Modell Motivation Level of Detail Progressive Meshes Quadric Error Metric Ausblick Häufigste Darstellungsform : Polygonales Modell Bestandteile : Punkte (Vertices) und Flächen (Faces)
Aufbau von 3D-Modellen Vertex-Eigenschaften: Flächen-Eigenschaften: Motivation Level of Detail Progressive Meshes Quadric Error Metric Ausblick Vertex-Eigenschaften: Position ( x, y, z ) Farbe ( r, g, b ) Normalenvektor ( nx, ny, nz ) Texturkoordinaten ( tu, tv ) ... Flächen-Eigenschaften: Materialkonstante Normalenvektor
Aufbau von 3D-Modellen Vorteile der polygonalen Darstellung Motivation Level of Detail Progressive Meshes Quadric Error Metric Ausblick Vorteile der polygonalen Darstellung Weit verbreitet und akzeptiert Flexibel Durch Hardware unterstützt Nachteile der polygonalen Darstellung Wirklich „runde“ Oberflächen nicht darstellbar U.u. viele Vertices und Faces pro Modell nötig
Aufbau von 3D-Modellen 1000 Faces 424000 Faces Aufbau von 3D-Modellen Motivation Level of Detail Progressive Meshes Quadric Error Metric Ausblick 1000 Faces 424000 Faces
Aufbau von 3D-Modellen Andere Darstellungsmöglichkeiten Motivation Level of Detail Progressive Meshes Quadric Error Metric Ausblick Andere Darstellungsmöglichkeiten Parametric Spline Surfaces NURBS
Motivation Grafikanwendungen brauchen viel Rechenzeit Aufbau von 3D-Modellen Motivation Level of Detail Progressive Meshes Quadric Error Metric Ausblick Grafikanwendungen brauchen viel Rechenzeit 3D-Modelle häufig zu detailliert Polygondichte nicht angepasst Verwendete Hardware unterschiedlich Übertragungszeit bei Online-Anwendungen
Motivation Anzahl der Objekte wird nicht berücksichtigt Aufbau von 3D-Modellen Motivation Level of Detail Progressive Meshes Quadric Error Metric Ausblick Anzahl der Objekte wird nicht berücksichtigt
Motivation Aufbau von 3D-Modellen Motivation Level of Detail Progressive Meshes Quadric Error Metric Ausblick Entfernung der Objekte zum Betrachter wird nicht berücksichtigt
Level of Detail ( LoD ) Aufbau von 3D-Modellen Motivation Level of Detail Progressive Meshes Quadric Error Metric Ausblick Speicherung oder Real-Time-Erzeugung mehrer Detailstufen eines 3D-Modells Anzeige der einzelnen Detailstufen nach vorgegebenen Kriterien
Level of Detail ( LoD ) Ziel : Erzeugung eines „Multiresolution Model“ Aufbau von 3D-Modellen Motivation Level of Detail Progressive Meshes Quadric Error Metric Ausblick Ziel : Erzeugung eines „Multiresolution Model“ Unterschieden wird in Discrete Multiresolution ( Verwendung von festen Vereinfachungsstufen ) Continuous Multiresolution (Kontinuierliche Vereinfachung oder Verfeinerung)
Level of Detail ( LoD ) Discrete Multiresolution Aufbau von 3D-Modellen Motivation Level of Detail Progressive Meshes Quadric Error Metric Ausblick Discrete Multiresolution Renderer entscheidet zur Laufzeit, welche Detailstufe angezeigt wird (Dist, AoI, ...) Übergang darf nicht rechenzeitaufwendig sein Problem: „popping artifacts“
Level of Detail ( LoD ) Discrete Multiresolution Aufbau von 3D-Modellen Motivation Level of Detail Progressive Meshes Quadric Error Metric Ausblick Discrete Multiresolution
Level of Detail ( LoD ) Discrete Multiresolution Lösungsansätze Aufbau von 3D-Modellen Motivation Level of Detail Progressive Meshes Quadric Error Metric Ausblick Discrete Multiresolution Lösungsansätze LoD-Blending (Alpha Blending) Geomorphing Geschwinddigkeit beider Verfahren Hardwareabhängig DM-Verfahren rückläufig, weitere Nachteile vorhanden
Level of Detail ( LoD ) Continuous Multiresolution Aufbau von 3D-Modellen Motivation Level of Detail Progressive Meshes Quadric Error Metric Ausblick Continuous Multiresolution Vereinfachung der Oberfläche zur Laufzeit Vereinfachung wird in sehr kleinen Schritten vorgenommen Es muss nur das Ausgangsmodell gespeichert werden ( zusätzlich, je nach Verfahren, die Vereinfachungsschritte )
Level of Detail ( LoD ) Continuous Multiresolution Aufbau von 3D-Modellen Motivation Level of Detail Progressive Meshes Quadric Error Metric Ausblick Continuous Multiresolution Ermöglicht „variables“ und „blickwinkelabhängiges“ LoD
Level of Detail ( LoD ) Mögliche Verfahrensweisen: Aufbau von 3D-Modellen Motivation Level of Detail Progressive Meshes Quadric Error Metric Ausblick Mögliche Verfahrensweisen: Manuelle Bearbeitung Automatische Erzeugung der Detailstufen Zwei Ansätze : Refinement ( Verfeinerung ) Decimation ( Dezimierung )
Level of Detail ( LoD ) Refinement Aufbau von 3D-Modellen Motivation Level of Detail Progressive Meshes Quadric Error Metric Ausblick Refinement Ausgangspunkt : Stark vereinfachtes Modell Hinzufügen von Elementen Anwendungsbereiche : Vereinfachung von 2D-Kurven ( Douglas-Peucker-Algorithmus ) Vereinfachung von Höhen-Feldern z = f(x,y) ( „Greedy insertion“ ) Nachteil : Original und vereinfachtes Ausgangsmodell nötig
Level of Detail ( LoD ) Decimation Aufbau von 3D-Modellen Motivation Level of Detail Progressive Meshes Quadric Error Metric Ausblick Decimation Ausgangspunkt : Detailreiches Modell Wegnehmen oder Verschmelzen von Elementen Anwendungsbereiche Vereinfachung von beliebigen Oberflächen
Level of Detail ( LoD ) Decimation Vertex Clustering Aufbau von 3D-Modellen Motivation Level of Detail Progressive Meshes Quadric Error Metric Ausblick Decimation Vertex Clustering Legen eines Gitters „in“ das Modell Verschmelzen aller Vertices im selbem Gitterbereich
Level of Detail ( LoD ) Decimation Vertex Clustering Vorteile Schnell Aufbau von 3D-Modellen Motivation Level of Detail Progressive Meshes Quadric Error Metric Ausblick Decimation Vertex Clustering Vorteile Schnell Arbeitet gut, wenn Modell „überdetailliert“ Unterstützt „Non-Manifold Surfaces“ Nachteile Vereinfachungen meist qualitativ schlecht Ergebnis hängt stark von der Unterteilung und Platzierung des Gitters ab
Level of Detail ( LoD ) (Non-) Manifold Surfaces Aufbau von 3D-Modellen Motivation Level of Detail Progressive Meshes Quadric Error Metric Ausblick (Non-) Manifold Surfaces Die Nachbarn jedes Punktes (außer Grenzpunkte) liegen so, dass sie einen geschlossenen Fächer bilden und jede Kante innerhalb dieses Fächers hat 2 Nachbarn
Level of Detail ( LoD ) Decimation Vertex Clustering Vorteile Schnell Aufbau von 3D-Modellen Motivation Level of Detail Progressive Meshes Quadric Error Metric Ausblick Decimation Vertex Clustering Vorteile Schnell Arbeitet gut, wenn Modell „überdetailliert“ Unterstützt „Non-Manifold Surfaces“ Nachteile Vereinfachungen meist qualitativ schlecht Ergebnis hängt stark von der Unterteilung und Platzierung des Gitters ab
Level of Detail ( LoD ) Decimation Vertex Decimation Aufbau von 3D-Modellen Motivation Level of Detail Progressive Meshes Quadric Error Metric Ausblick Decimation Vertex Decimation Einen Vertex löschen Retriangulation des entstandenen Loches
Level of Detail ( LoD ) Decimation Vertex Decimation Vorteile Aufbau von 3D-Modellen Motivation Level of Detail Progressive Meshes Quadric Error Metric Ausblick Decimation Vertex Decimation Vorteile Relativ effizient Gut bei „rauhen“ Oberflächen Nachteile Topologie des Modells bleibt immer bestehen Schlecht bei „weichen“ Oberflächen Unterstützt keine „Non-Manifold Surfaces“
Level of Detail ( LoD ) (Non-) Manifold Surfaces Aufbau von 3D-Modellen Motivation Level of Detail Progressive Meshes Quadric Error Metric Ausblick (Non-) Manifold Surfaces Die Nachbarn jedes Punktes (außer Grenzpunkte) liegen so, dass sie einen geschlossenen Fächer bilden und jede Kante innerhalb dieses Fächers hat 2 Nachbarn
Level of Detail ( LoD ) Decimation Iterative Contraction Aufbau von 3D-Modellen Motivation Level of Detail Progressive Meshes Quadric Error Metric Ausblick Decimation Iterative Contraction 2 Arten : Egde Contraction, Vertex Contraction „Zusammenziehen“ einer Kante oder zweier unabhängiger Punkte
Level of Detail ( LoD ) Decimation Iterative Contraction Vorteile Aufbau von 3D-Modellen Motivation Level of Detail Progressive Meshes Quadric Error Metric Ausblick Decimation Iterative Contraction Vorteile Unterstützt „Non-Manifold Surfaces“ Topologie kann geändert werden Mittlerweile weit verbreitet Nachteile Je nach verwendetem Algorithmus langsam
Progressive Meshes Aufbau von 3D-Modellen Motivation Level of Detail Progressive Meshes Quadric Error Metric Ausblick Iterative Edge Contraction – Verfahren von Hugues Hoppe (96) Aufwendige Vereinfachung eines Modells Effiziente Verfeinerung und Speicherung möglich Algorithmus beachtet auch „Aussehen“ des Modells Verfeinerung mittels „Vertex-Splitting“
Progressive Meshes Effiziente Speicherung der Werte Aufbau von 3D-Modellen Motivation Level of Detail Progressive Meshes Quadric Error Metric Ausblick Effiziente Speicherung der Werte 2 Möglichkeiten für Edge Contraction
Progressive Meshes Vereinfachung basiert auf„Energiefuntion“ Aufbau von 3D-Modellen Motivation Level of Detail Progressive Meshes Quadric Error Metric Ausblick Vereinfachung basiert auf„Energiefuntion“ E(M)=Edist(M)+Espring(M)+Escalar(M)+Edisc(M) Ermitteln dieses Wertes für jeden möglichen Vereinfachungsschritt Edist + Espring : Erhaltung der Oberflächengeometrie Escalar : Erhaltung der skalaren Vertex-Komponenten Edisc : Erhaltung der Diskontinuitäten
Progressive Meshes Vorteile Nachteile Aufbau von 3D-Modellen Motivation Level of Detail Progressive Meshes Quadric Error Metric Ausblick Vorteile Effizient (RAM, Zeit für Verfeinerung) Progressive Transmission möglich Gute Ergebnisse Nachteile Vereinfachung dauert lange (Modell „cessna“ von 13,546 Faces auf 150 Faces in 23 Minuten auf Indigo2/150
Progressive Meshes Aufbau von 3D-Modellen Motivation Level of Detail Quadric Error Metric Ausblick
Quadric Error Metric Aufbau von 3D-Modellen Motivation Level of Detail Progressive Meshes Quadric Error Metric Ausblick Iterative Vertex Contraction – Verfahren von Michael Garland (99) Schnell bei optisch guten Resultaten Vertices v1 und v2 werden in v3 zusammengeführt Quadric Error Metric leicht erweiterbar
Quadric Error Metric Ablauf des Algorithmus: Aufbau von 3D-Modellen Motivation Level of Detail Progressive Meshes Quadric Error Metric Ausblick Ablauf des Algorithmus: Kandidaten von Vertexpaaren für die Zusammenlegung auswählen „Kosten“ für jede Zusammenlegung bestimmen Alle Kandidaten in Heap-Speicher ablegen, geringste Kosten zuoberst Solange gewünschte Vereinfachung nicht erreicht: Ersten Vertexpaar vom Heap entfernen Diese Vertices zusammenlegen Kosten für umliegende Vertexpaare neu berechnen
Quadric Error Metric Kostenberechnung: Aufbau von 3D-Modellen Motivation Level of Detail Progressive Meshes Quadric Error Metric Ausblick Kostenberechnung: Basiert auf Beachtung lokaler Unterschiede Abstandsmessung eines Punktes zu den Ebenen, welche seine Nachbarn aufspannen Bildung einer Matrix aus den Normalenvektoren dieser Ebenen Schnelle Berechnung, da nicht jeder Abstand (Vertex-Ebene) einzeln berechnet werden muss Detailunabhängig durch Gewichtung
Quadric Error Metric Beachtung der Flächengröße Aufbau von 3D-Modellen Motivation Level of Detail Progressive Meshes Quadric Error Metric Ausblick Beachtung der Flächengröße Beachtung der Grenzlinien
Quadric Error Metric Vorteile: Nachteile: Aufbau von 3D-Modellen Motivation Level of Detail Progressive Meshes Quadric Error Metric Ausblick Vorteile: Sehr schnell (Modell „Bunny“ von 69,451 Faces auf 150 Faces in 7 sec!! auf PPro/200) Einfach erweiterbar Progressive Transmission möglich Nachteile: Andere Techniken können bessere Ergebnisse liefern ( aber langsamer )
Quadric Error Metric Aufbau von 3D-Modellen Motivation Level of Detail Progressive Meshes Quadric Error Metric Ausblick
Ausblick Similarity of Appearance Area of Interest Adaptive Refinement Aufbau von 3D-Modellen Motivation Level of Detail Progressive Meshes Quadric Error Metric Ausblick Similarity of Appearance Area of Interest Adaptive Refinement Noise Reduction Verbesserung und Verfeinerung der vorhandenen Algorithmen (z.B. Symmetrieerkennung, effizientere Behandlung von sehr großen Modellen(>1,000,000 Faces) )