Mesh Parametrisierung Katja Bühler, Mathematische Methoden der Computergrahik Papers: • MAPS – Multiresolution Adaptive Parametrization of Surfaces A. Lee, W. Swelden, P. Schröder, L. Cowsar, D. Dobkin Siggraph 1998 • Hierarchical Parametrizations of Triangulated Surfaces K. Hormann, G. Greiner, Swen Campagna Wozu Parametrisieren? Surface fitting: Parametrische glatte Flächen approximieren 3D Datenpunkte Texture Mapping: Farbinformation / Texturen werden über Parametergebieten definiert und auf die Fläche abgebildet. Morphing / Mesh editing Remeshing: Die Triangulierung eines Meshes wird so verändert, dass ein Mesh eine Unterteilungshierarchie (subdivision connectivity) besitzt. (z.B. i.A. nicht der Fall für 3D Scanner Output) Parametrisierung erlaubt adaptives Remeshing ohne die subdivision connectivity zu verlieren. Beispiel für Parametrisierungen Arten von Parametrisierungsalgorithmen? • 1. Ansatz: Direkte Abbildung des Meshes in die Ebene. Dieses Parameter-Mesh kann mittels Optimierungsalgorithmen verbessert werden • 2. Ansatz: Eng verbunden mit Vereinfachungs-algorithmen: – Zwei “Schulen”: • Klassische Multiresolution Darstellungen • Sequenzielle Vereinfachung (PMs) • Optimale Parametrisierung: – Hängt stark von der Anwendung ab, z.B. Minimierung der #Dreiecke, Minimierung des Approximationsfehlers, Minimierung der Verzerrung. Allgemeine Problemstellung • Gegeben: – Ein Dreiecks-Mesh, d.h. eine Menge von Punkten pi und dazugehörigen Dreiecken Ti im R3. – Ein Parametergebiet G im R2. • Gesucht: – Parameterwerte (ui,vi) aus G für jeden Punkt pi, so daß die Topologie des Meshes erhalten bleibt. D.h. die den Dreiecken Ti entsprechenden Dreiecke ti im Parametergebiet dürfen sich nicht überlappen. Lokale Parametrisierung • Parametrisierung der Nachbarschaft W0,…,Wn eines Referenzknotens V durch “Plätten” der Nachbarschaft. • Die Abbildung hat folgende Eigenschaften – || wi – vi || = || Wi – Vi || – Winkel zum Nachbarknoten im “geplättete” Dreieck: i i n j 0 j Globale Parametrisierung • Komplexes Problem! – Direkte Abbildung einer gerümmten Fläche in die Ebene ist immer mit Verzerrungen verbunden. – Manche Algorithmen zerstückeln die Fläche – Was soll erhalten werden? (Flächeninhalt, Winkel, geodätische Krümmung……) – Optimierungsalgorithmen finden bezüglich vorgegebener Randwerte optimale Parametrisierungen. Hierarchische Parametrizierungen • Nutzen Mesh-Hierarchien aus, um “gute” Parametrisierungen zu erhalten. • Idee: Gute Parametrisierungen lassen sich für weniger komplexe Meshes leichter berechnen und dann auf die feineren Levels übertragen. • Wichtige Fragestellung: Wie berechne ich sinnvoll die Parameter und deren zusammenhänge in den einzelnen Levels? Hierarchical Parametrizations Hormann et al. • Relativ simples Paper • Idee: • Verwende Progressive Meshes um ein gute Anfangsmesh für den Optimierungsprozess zu bekommen und ihn so zu beschleunigen. Hormann – Algorithmus 1 • Berechne alle Hierarchie-Levels. • Bei jedem Half Edge Collaps berechne außerdem die baryzentrischen Koordinaten des eliminierten Punktes bezüglich der lokalen Parametrisierung des umgebenden Dreiecks. • Speichere baryzentrische Koordinaten und Index des Mutterdreiecks. Hormann – Algorithmus 2 • Parametrisierung: – Beginne mit dem gröbsten Mesh und berechne eine optimale Parametrisierung – Verwende die gespeicherten baryzentrischen Koordinaten um die fehlenden Dreiecke in das nächst feineren Level einzufügen. – Nehme diese Parametrisierung als Anfangswert für die Optimierung des nächstfeineren Levels, usw. Hormann - Ergebnisse MAPS – Multiresolution Adaptive Parametrization of Surfaces Lee et. al. • Ähnlicher Ansatz wie bei Hormann • Mesh-Hierarchie basiert auf einem Algorithmus von Dobkin und Kirkpatrick (DK), der eine maximale Anzahl von O(log N) Levels garantiert. Um was geht’s genau? • Gegeben: Irreguläre Triangulierungen von Mannigfaltigkeiten vom Geschlecht 2, z.B. Daten aus einem Laserscanner, oder Ergebnis des Marching Cubes-Algorithmus,…. • Gesucht: “Glatte, schöne Parametrisierung” des original Meshes • Ansatz: – Hierarchische Vereinfachung induziert eine Parametrisierung des originalen Meshes über einer kleinen Anzahl von Dreiecken im Parameterraum – Verbesserung der Parametrisierung durch hierarchisches Glätten basierend auf Loop-Subdivision. Aufbau der Mesh-Hierarchie: Der DK-Algorithmus • Ein Vereinfachungschrittbesteht daraus, soviele Knoten wie möglich mit minimaler Valenz zu eliminieren. • Originalalgorithmus verwendet topologische Information um die Knoten zu bestimmen. • Hier: Priority Queue, die geometrische und topolgische Information enthält. Der DK-Algorithmus 1. Setze alle Knoten unmarkiert 2. Bestimme zufällig einen unmarkiert Knoten mit Valenz < 12 3. Entferne den Knoten und retrianguliere das entstandene Loch. 4. Markiere die Knoten der Nachbarschaft des entfernten Knotens. 5. Wiederhole Schritt 2.-4. solange bis kein Knoten mehr entfernt werden kann. Verbesserung des DK-Algorithmus - Auswahl der Knoten • Die zufällige Auswahl der Knoten kann ersetzt werden durch eine Priority Queue, die die Krümmung der Nachbarschaft eines Knotens mit in den Entscheidungsprozess einbezieht. • Zuerst werden die Knoten mit Valenz < 12 ausgewählt, die eine “flache” Umgebung haben. • Dadurch können wesentlich mehr Knoten entfernt werden (~1/4 statt mindestens 1/24) Verbesserung des DK-Algorithmus - Retriangulierung • Abbildung der Nachbarschaft auf die Ebene mit Hilfe einer konformen Abbildung (winkeltreu, minimale metrische Verzerrung, bijektiv) • Retriangulierung in der Ebene mit “Constrained Delaunay Triangulation” DK Mesh - Hierarchie Parametrisierung • Beginne mit einer Parametrisierung des feinsten Meshes • Falls ein Punkt einen Vereinfachungsschritt überlebt, bleibt auch seine Parametrisierung bestehen • Falls ein Punkt entfernt wird, so wird er bezüglich des Dreiecks parametrisiert, in dem er liegt. • Früher entfernte Punkte werden ebenfalls entsprechend reparametrisiert. Probleme • Die Abbildung der einzelnen Knoten in das Parametergebiet führt nicht unbedingt zu einer Triangulierung, wenn die Knoten verbunden werden – Dreiecke können z.B. auch auf nicht-konvexe Gebiete abgebildet werden. Gerade Verbindung führen zu überlappenden gebieten • Lösungen: – Unterteile das Mesh in den problematischen Gebieten weiter, oder – Führe Dreiecksflips durch. Tagging and Feature Lines • Die Nachbarschaft wird entlang der Feature Line in zwei Bereiche aufgeteil und getrennt retrianguliert. Uniform Remeshing • Baue eine 1:4 Unterteilungshierarchie des Parametergebietes auf. • Bestimme, in welchem Dreieck eines Levels ein Knoten liegt. • Verwende baryzentrischen Koordinaten bezüglich des original Dreiecks um die Position des neuen Knotens im Mesh zu bestimmen. Glätten der Parametrisierung • Problem: Parametrisierung geht nicht glatt über die Kanten der Basis-Dreiecke • Lösung: Verwende Modifizierte (flache) Loop Subdivision. • Details siehe Paper….. Adaptive Remeshing • Problem: Normalerweise wirde die komplette Hierarchie eines Meshes aufgebaut und dann werden einzelne Äste des Meshes abgeschnitte. • Hier: Verfeinerung im Remeshing-Prozess findet nur statt, wenn der Abstand zum “Mutter”-Dreieck eine bestimmten Wert übersteigt. Ergebnisse Ergebnisse