Subdivision Zoo Die Anfänge Die ersten Unterteilungsalgorithmen

Werbung
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
Herunterladen