Die Anfänge Subdivision Zoo Mathematische Methoden der Computergraphik Siggraph Course Notes 2000 • Idee: Erzeuge glatte Flächen aus beliebigen Netzen. Katja Bühler Die ersten Unterteilungsalgorithmen The Idea of Subdivision • Catmull-Clark: Verallgemeinerung bikubischer Patches • „Subdivision defines a smooth curve or surface as the limit of a sequence of successive refinements“ • Doo-Sabin: Verallgemeinerung biquadratischer Patches Wichtige Kriterien für Unterteilungsregeln? Vergleich verschiedener Flächendarstellungen • Effizienz: wenig Gleitkommaoperationen • Effizienz: Wichtiger Aspekt für Modellierungstools • Kompakter Support: Knoten sollten nur lokalen Einfluss haben • Lokale Definition: Punkte sollten aufgrund ihrer unmittelbaren Umgebung berechnet werden können – Subdivision: Einfach zu implementieren, effizient, erlauben Level-of Detail, adaptive Verfeinerung und Kompression. • Affine Invarianz – B-Splines: Sonderfall der Subdivision • Einfachheit: einfache und wenige Regeln • Stetigkeit der Grenzfläche – Implizit: Teure Darstellung, z.B. Triangulierung durch Marching Cube – Variational Surfaces: Optimierungsalgorithmus ist nötig bei jeder Veränderung der Fläche 1 Vergleich verschiedener Flächendarstellungen Vergleich verschiedener Flächendarstellungen • Veränderbare, beliebige Topologie • Flächenmerkmale – Splines: keine veränderbare Topologie, Stetigkeitsprobleme an außergewöhnlichen Punkten. – Implizite Flächen: Sehr gute Methoden! Können auch mit sich verändernder Topologie umgehen, beliebiger Genus der Fläche. Aber: Schwer zu kontrollieren. – Subdivision: Beliebige Topologie und Genus, veränderbar, beliebige Netzstruktur ohne Effizienzverlust und Stetigkeitsproblemen Kontrollierbarkeit spezieller Flächenmerkmale, wie Kanten, Spitzen, Rillen. – Variational Surfaces: Höchstes Maß an Kontrolle und Flexibilität – Splines: Sehr präzise Kontrolle, aber schwierig neue Merkmale hinzuzufügen und teuer. – Subdivision: Erhaltung von Merkmalen bei Subdivision braucht spezielle Regeln + evtl. Interaktion. Vergleich verschiedener Flächendarstellungen Stationäre, reguläre Unterteilungsflächen • Genauigkeit der Darstellung Hier: Subdivision Schemata sind – Splines / Implizite Flächen: Genaue Analytische/algebraische Beschreibung der Fläche. Werden zur Darstellung und zum Design von „Class A Surfaces“ verwendet – Subdivision: Zu ungenau für „Class A“ – Stationär, d.h. die Parameter bleiben für jeden Unterteilungsschritt gleich (Gegenteil: „Variational“, d.h. die Unterteilungsregeln ändern sich entsprechend globaler Energieminimierungsfunktionen.) – Regulär, d.h. extra Regeln müssen nur für Ausnahmefälle festgelegt werden – generieren mindestens C 1 -stetige Flächen Charakterisierung von Unterteilungsalgorithmen Charakterisierung von Unterteilungsalgorithmen Art der Unterteilungsregel: • Art des generierten Meshs • Primal: • Interpolierend oder approximierend – Flächen werden unterteilt – Flächen bilden Quadtree • Glätte der Grenzfläche (C1, C2,....) • Dual: – Knoten werden aufgesplittet – Knoten bilden Quadtree – „Corner Cutting“ – Es gibt keine dualen Unterteilungsalgorithmen für Dreiecksnetze! 2 Klassifikation Beispiele Nicht in dieses Schema passen: • 3 Unterteilung (Kobbelt) • Unterteilung von 4-k Meshes (Velho, Gomes) Notationen / Begriffe Notationen / Begriffe • Außergewöhnliche Knoten: • Ränder und scharfe Kanten: – Dreiecksnetz: Valenz anders als 6 – Hier müssen spezielle Regeln – Vierecksnetz: Valenz anders als 4 festgelegt werden, die diese Features erhalten. • Gerade / Ungerade Knoten: – Knoten, die in dem gerade aktuellen Unterteilungsschritt generiert wurden heißen ungerade. • Kanten und Flächenknoten: – Je nach Unterteilungsschema, die Stelle, an der der Knoten eingefügt wurde • Masken: – Masken sind Bilder / Schemata, die zeigen, wie aus alten Kontrollpunkten neue Knoten generiert werden. Notationen / Begriffe Spezielle Regeln • Indexierung von Knoten bezüglich eines fest gewählten Knotens • Wieviele Unterteilungsregeln sind nötig? • Subdivision Level: j – Innere Punkte – Ränder + Ecken • Kurzform: p(vji,l ) = p ji,l – Scharfe Kanten 3 Problem mit konkaven Ecken: Knotenarten • Es gibt also vier verschiedene Arten von Knoten: – Innere Knoten – Randknoten – Konvexe Knoten – Konkave Knoten Loop Subdivision - Eigenschaften Loop Subdivision - Masken • Approximierendes Schema für Dreiecksnetze • Basiert auf Box-Splines • C2 -stetig auf regulären Netzen, sonst C1-stetig • Primales Schema Loop Subdivision - Masken Loop Subdivision - Masken • Für reguläre Netze: • Schema (4.3) garantiert keine C1 Stetigkeit an Knoten mit Valenz k > 7 • Schema rechts garantiert C1-Stetigkeit an Kanten und Knoten mit Valenz k > 7 • Noch besser: Ersetze im Schema ½ -> ¼ + ¼ cos 2π/(k-1) ¼ -> ½ - ¼ cos 2π/(k-1) 4 Loop Subdivision – Tangenten und Normalen • Tangenten in einem inneren Knoten: Loop Subdivision – Grenzwerte Grenzposition eines Kontrollpunktes: • Für Randpunkte: • Tangente entlang einer Randkurve: • Tangenten über den Rand (Tangentenstetigkeit) Loop Subdivision – Tangenten und Normalen • Für innere Punkte: verwende Subdivision Schema für innere Punkte (n = Valenz) und ersetze β durch Loop Subdivision - Gallery • Normalen: – t1 x t2 – Entspricht hier der gewichteten Summe der Normalen aller direkt benachbarten Dreiecke Loop Subdivision - Gallery Loop Subdivision • Applet 5 Butterfly Subdivision - Eigenschaften • Für beliebige Dreiecksnetze definiert • Interpolierend • Nicht Spline-basiert, d.h. es werden Modifiziertes Butterfly - Masken keine stückweise polynomialen Flächen als Grenzfläche generiert! • Stetigkeit: – Original Butterfly: C1 -stetig auf regulären Netzen und für Knoten mit Valenz k<8 und ungleich 3 – Modifiziertes Butterfly: C1 -stetig für beliebige Netze (Nicht C2 stetig!) • Primales Schema Modifizierter Butterfly – Regeln für den Rand/Kanten Modifizierter Butterfly – Regeln für den Rand/Kanten • Figur 4.6 mit Bildunterschrift Modifizierter Butterfly – Regeln für den Rand/Kanten Modifiziertes Butterfly - Tangenten • Figur 4.7 mit Bildunterschrift + Formel obendrüber + formel für theta_k • An außergewöhnlichen Punkten verwende gleiches Schema wie für Loop. • An regulären Punkte: – Ordne 2-Nachbarschaft (19 Punkte) des Punktes in einem Vektor an: p = [p0 , p0,1, p1,1 , ….., p5,1, p0,2, p1,2, ….., p5,3, ] – Berechne t1 = (l1,p) und t2 = (l2,p) mit 6 Butterfly - Grenzpositionen Butterfly - Galerie • Schema ist interpolierend, d.h. jeder berechnete Knoten liegt bereits auf der Grenzfläche • Ein paar schöne ButterflySubdivis ion Bilder. Butterfly - Applet Catmull-Clark - Eigenschaften • Applet • Für Vierecksnetze definiert • Basiert auf bikubischen Tensorprodukt-Splines • C2 in regulären Punkten, sonst C1 • Primal Catmull Clark - Masken Catmull Clark – Masken • Figur 4.8 inkl Bildunterschrift • Wahl der α und β • Figur 4.10 inkl. Bildunterschr. 7 Catmull Clark - Masken Catmull-Clark für beliebige Netze • • Das Schema kann auch für Netze mit beliebigen polygonalen Seitenflächen verwendet werden • Spezielle Regel für ungerade Knoten, die an einen außergwöhnlichen Knoten angrenzen (C1 -stetig) Figur 4.9 • Im ersten Schritt wird das Netz zu einem Vierecksnetz gemacht. • Berechne – neue Flächenkontrollpunkte als Mittel der umgebenden Knoten • Bessere Wahl der Koeffizienten: 5/8 -> 3/8 + ¼ cos 2π/(k-1) 1/8 -> 3/8 - ¼ cos 2π/(k-1) – neue Kantenknoten als Mittel der beiden Kantenendpunkte und neuer Flächenknoten angrenzender Flächen – Formel für gerade Knoten: Formel Seite 77 Catmull-Clark für beliebige Netze Kobbelt - Eigenschaften • Bild 11 Seite 151. Linkes + mittleres Netz • Definiert für Vierecksnetze. Beliebige Netze können in Vierecksnetze umgewandelt werden. • Interpolierendes Schema • Generelle C 1-Stetigkeit für innere Knoten Kobbelt - Unterteilung Prinzipielle Vorgehensweise S (p i ) a p'i 1. Berechne alle neuen Kantenknoten Vier-Punkte-Schema: Formel (11) seite 149 Kobbelt - Masken • Allgemeines Schema mit 0 < w < 2(sqrt(5)-1): • Figur 13, Seite 150 Inkl. Unterschrift 2. Berechne Flächenknoten mit gleichem Schema (Richtung egal) 8 Kobbelt – Masken w=1 Kobbelt – Masken außergewöhnliche Punkte • Bild 4.11 links Seite 78 • Bild 14 Seite 150 • Formel (15) + • (16) Seite 151 Kobbelt - Tangenten Kobbelt für beliebige Netze • Eigenvektoren der Unterteilungsmatrix können nicht explizit berechnet werden, d.h. Tangenten können nicht präzise berechnet werden. • Für offene Netze: Anwendung des erste Catmull Clark-Schrittes um Vierecksnetz zu generieren. • Für geschlossene Netze: Hier werden nur Face-Splits vorgenommen. Topologische Wurzel des Catmull Clark-Schrittes, d.h. zweifache Anwendung entspricht einem CC-Schritt. Die Anzahl der generierten Flächen ist nur halb so hoch wie beim CC. • Deshalb verwende Loop-Tangent zur Approximation. Kobbelt für beliebige Netze Kobbelt - Bilder • Figur 11 Seite 151 9 Kobbelt - Applet Doo-Sabin/Midedge - Eigenschaften • Applet • Duales Schema (Vertex-Split) • Kann auf allgemeine Netze verallgemeinert werden • Kein Unterscheidung zwischen geraden und ungeraden Knoten • C1 -stetig (Doo-Sabin), C0-stetig (Midedge), Doo-Sabin - Masken Midedge - Masken Doo-Sabin/Midedge - Analyse Generalized Biquartic • Unterteilung kann in eine Reihe von Mittelungsschritten unterteilt werden • Duales Schema für beliebige Netze • Nutzt das Prinzip der wiederholten Mittelung aus DooSabin • C3 -stetig in regulären Knoten, sonst C1-stetig Midedge 10 Generalized Biquartic Generalized Biquartic • Bilder 4.16 + 4.17 • Formel (4.5) Vergleich der Unterteilungsschemata • Vergleich der Unterteilungsschemata “Schönheit” der Fläche – Approximierende Schemata generieren schönere Flächen. Je enger interpoliert wird, desto “eckiger” und unansehlicher die Flächen. – C2 Schemata sind schöner als C1 (Loop + Catmull Clark) • Größe der Fläche – Approximierende Schemata lassen die Fläche schrumpfen – Interpolierende Schemata expandieren die Fläche • Ähnlichkeit zum ursprünglichen Netz • Sensitivität gegenüber scharfen Kanten im Ursprungsnetz – Am größten für interpolierende Netze – Besonders hoch bei interpolatorischen Schemata Vergleich der Unterteilungsschemata Vergleich der Unterteilungsschemata 11 Vergleich der Unterteilungsschemata Vergleich dualer Vierecksschemata • Dreiecksnetz oder Vierecksnetz? • Einzige Kategorie mit mehreren Mitgliedern: Midedge – Vierecksnetze sind natürlicher: Doo-Sabin Biquartic. • Texture Maps • Mehr Symmetrie • Das Netz kann entlang der beiden Hauptkrümmungen ausgerichtet werden • Welche Schemata sind die Besten? – Dreiecksnetze: Loop – Vierecksnetze: Catmull-Clark Vergleich dualer Vierecksschemata Midedge Doo-Sabin Biquartic. Grenzen stationärer Unterteilungsalgorithmen • Krümmungsstetigkeit – Nicht alle Schemata sind C 2-stetig – C2-stetige Schemata haben i.A. große Masken oder C 0-Stetigkeit an außergewöhnlichen Punkten – Fehlende Krümmungsstetigkeit führt zu visuellen Artefakten Grenzen stationärer Unterteilungsalgorithmen Grenzen stationärer Unterteilungsalgorithmen • • Ungerade Struktur des Netzes Verminderung der Glattheit in der Umgebung von Knoten mit hoher Valenz – Dominanz von Eigenwerten geht verlohren – Scharfe Kanten können abrupt beginnen/aufhören • Entstehen von Rillen an außergewöhnlichen Punkten – Die Größe der Dreiecke, die an einen Knoten grenzen verändern sich in zwei aufeinanderfolgenden Unterteilungsschritten im Verhältnis ungefähr proportional zum Wert des subdominanten Eigenwertes – Auf regulären Netzen haben C1-stetige Unterteilungsalgorithmen immer den subdominanten Eigenwert 1/2 . – Wenn die Eigenwerte in der Nähe außergewöhnlicher Punkte extrem von ½ abweichen wird die Struktur des Netzes ungerade. 12 Grenzen stationärer Unterteilungsalgorithmen Grenzen stationärer Unterteilungsalgorithmen • Optimierung der Unterteilungsregeln – Anpassung von Unterteilungskoeffizienten um Anhäufung von Eigenwerten und große Unterschiede von Eigenwerten zwischen regulären und außergewöhnlichen Knoten zu verhindern. – Solche Unterteilungsschemata haben ein besseres Verhalten nahe außergewöhnlicher Punkte und weniger Rillen. Parametrisierung von Unterteilungsflächen Natürliche Parametrisierung von Unterteilungsflächen • Unterteilungsflächen sind Grenzflächen einer unendlichen Reihe von Unterteilungen • • • Parametrisierungen sind nötig um – die Grenzfläche zu untersuchen – Texturen auf die Fläche abzubilden,….. Rekursive Parametrisierung Parametrisierung f(u,v,m), wobei m die Nummer des Dreiecks ist. • Für reguläre, offene Netze: Ebene als Parametergebiet Für beliebige Netze: Parametrisierung über dem ursprünglichen Kontrollpolyeder (natürliche Parametrisierung) Bei Selbstdurchdringungen: Bilde Netz auf (höherdimensionales) Polyeder ohne Selbstdurchdringungen ab. “Local Support” + “Local Influence” • Wichtig für die Analyse von Unterteilungsalgorithmen ist das Wissen darüber, – welche Knoten auf ein Flächenstück Einfluß haben – welches Flächenstück von einem bestimmten Knoten beeinflußt wird. 13 Unterteilungsmatrix Unterteilungsmatrix - Beispiel • Enthält alle Unterteilungsregeln für Flächen, Kanten und Knoten um einen bestimmten Knoten herum • Erlaubt Analyse Lokaler Eigenschaften der Fläche in diesem Knoten bzw. In seinem Grenzwert. Unterteilungsmatrix - Beispiel Unterteilungsmatrix - Beispiel Unterteilungsmatrix - Beispiel Unterteilungsmatrix - Beispiel 14 Unterteilungsmatrix - Beispiel Unterteilungsmatrix - Beispiel Unterteilungsmatrix - Beispiel Unterteilungsmatrix - Beispiel Unterteilungsmatrix - Beispiel Was kann man aus der Matrix ablesen? • Affine Invarianz: Zeilen summieren sich zu 1 • Stationär: Matrix bleibt in jedem Level gleich • Symmetrisch: Zyklische Blocks 15 Analyse der Eigenwerte der Matrix Dekomposition der Matrix in Eigenvektoren • Die Eigenwerte λi , i=0,….n der Unterteilungsmatrix S werden in absteigender Reihenfolge sortiert. • Um Invarianz in Bezug auf Rotation und Translation zu gewährleisten muss λ0 =1 sein • Um numerische Stabilität der Unterteilung zu garantieren, muß λi <1 , i=1,….n gelten. Dekomposition der Matrix in Eigenvektoren Analyse der Eigenwerte der Matrix • Verhalten der Fläche bei Unterteilung hängt von den Eigenvektoren ab, die zu den größten Eigenwerten gehören • Die Eigenwerte λ 1 und λ 2 heißen Subdominante Eigenwerte des Schemas Berechnung der Tangenten + Grenzposition ART SDS Examples #1 • Gesucht: – a0 Grenzposition des Knotens – a1, a2 Tangenten • Ist X=(x 0 ,….,x n ) die Matrix der Eigenvektoren und X-1 die Inverse, dann heißen die Zeilen von X-1 linke Eigenvektoren l i • Die li können mit einer kleineren Submatrix (1Nachbarschaft) approximiert werden • Es gilt dann a i = (l i ,p), i=0,1,2 16 ART SDS Examples #2 ART SDS Examples #3 17