-
In
vielen Computergraphikanwendungen, wie dreidimensionale Modellierung
und Animation, ist ein bekanntes Problem das Erstellen glatter Oberflächen aus
Maschinengitter beliebiger Topologie. Typischerweise werden derartige
Oberflächen
definiert, indem mit einem beliebigen Maschengitter begonnen wird,
welches Flächen,
Eckpunkte und Kanten und deren Zusammenhang definiert. Das Maschengitter
wird wiederholt unterteilt, um Zwischen-Maschengitter in einem Verfahren
zu erzeugen, welches sich an eine glatte Grenzoberfläche annähert. In
der Praxis werden die erzeugten Zwischen-Maschengitter als eine
Näherung
der Grenzoberfläche
verwendet.
-
Für Maschengitter,
in welchen die Flächen
Vierecke sind, sind bekannte Unterteilungsverfahren entweder primal,
was ein Teilen von Flächen
umfasst, oder dual, was ein Teilen von Eckpunkten umfasst, indem Eckpunkte
durch Flächen
und Flächen
durch Eckpunkte ersetzt werden. Im Allgemeinen sind Verfahren zum Erzeugen
von einer Grenzoberfläche
mit ungeradem Grad Primal-Verfahren, welche eine lineare Unterteilung und
einen Glättungsarbeitsvorgang
verwenden, um das Ergebnis zu errechnen. Ein beispielhaftes Primal-Verfahren, welches
eine Oberfläche
mit Grad 3 erzeugt, ist in "Recursively
Generated B-Spline
Surfaces on Arbitrary Topological Meshes" von E. Catmull und J. Clark, in Computer-Aided Design, Band
10, Nr. 6 (November 1978), Seiten 350–355 beschrieben. Im Allgemeinen
sind Verfahren zum Erzeugen einer Grenzoberfläche mit geradem Grad Dual-Verfahren, welche
eine lineare Unterteilung und einen Arbeitsvorgang verwenden, welcher
ein Maschengitter mit seiner Dual-Topologie ersetzt. Ein Beispiel
für ein
Dual-Verfahren, welches eine Oberfläche mit Grad 2 erzeugt, ist
in "Behaviour of
recursive division surfaces near extraordinary points" von D. Doo und M.
Sabin, in Computer-Aided Design, Band 10, Nr. 6 (November 1978),
Seiten 356–360
beschrieben.
-
Es
wurden mehrere Versuche unternommen, um die Verfahren zu vereinen,
welche zum Erzeugen von Grenzoberflächen mit geradem Grad und ungeradem
Grad verwendet werden. Z.B. beschreibt Jos Stam, "On Subdivision Schemes
Generalizing Uniform B-spline Surfaces of Arbitrary Degree", Computer-Aided
Geometric Design – Special
Edition on Subdivision Surfaces, Band 18, Seiten 383–396, 2001,
("the Unified Reference") ein verallgemeinertes
Verfahren für
Grenzoberflächen
mit beliebigem Grad, welches das Dual-Verfahren verwendet. Jedoch erklärt die "Unified Reference", wie das verallgemeinerte
Verfahren zu modifizieren ist, so dass für Grenzoberflächen mit
ungeradem Grad das Dual-Verfahren
nicht benötigt
wird, weist jedoch darauf hin, dass das Dual-Verfahren noch zum
Erzeugen von Grenzoberflächen
mit geradem Grad benötigt wird.
-
Ein
besonderes Problem bei der Unterteilung eines Maschengitters in
dreidimensionaler Modellierung und Animation besteht darin, dass
das Maschengitter ein oder mehrere Eigenschaften aufweisen kann,
welche mit einer Fläche,
Kante oder mit einem Eckpunkt verbunden sind. Beispielhafte Eigenschaften
schließen
Polygonfarben und Oberflächenstrukturkoordinaten
ein, sind aber nicht darauf beschränkt. Diese Eigenschaften werden
auf die unterteilte Topologie übertragen.
Diese Übertragung
von Eigenschaften ist besonders schwierig, wenn ein Unterteilungsverfahren
die Dual-Arbeitsweise verwendet, weil kein direkter Zusammenhang
zwischen Komponenten des ursprünglichen
Maschengitters und dem gleichen Typ von Komponenten in dem Dual besteht.
Z.B. stellt eine einzelne Fläche
in dem Dual Teile von mehreren Flächen des ursprünglichen
Maschengitters dar. Falls die mit den ursprünglichen Flächen verknüpfte Eigenschaft sich von Fläche zu Fläche verändert, gibt
es keine einzelne Wahl von dem Wert für die Eigenschaft für die Fläche in dem
Dual, welcher jene Eigenschaft in dem Dual korrekt darstellt. Ein
besonderes Problem tritt bei Strukturkoordinaten auf, welche verwendet
werden, um eine Struktur auf der Oberfläche anzuordnen. Diese Koordinaten
sind typischerweise mit Eckpunkten verbunden, können aber abhängig von
dem benachbarten Polygon variieren. Jedoch haben Eckpunkte keine
entsprechenden Eckpunkte in dem Dual. Daher, falls die Strukturkoordinaten
an einem Eckpunkt variieren, kann die Diskontinuität in der
Struktur an dem Eckpunkt nicht richtig in dem Dual dargestellt werden.
-
Ein
weiteres Problem bei der Unterteilung eines Maschengitters besteht
darin, wie geometrische Grenzen und Falten handzuhaben sind. Eine
geometrische Grenze ist eine Kante, welche nur eine einzelne benachbarte
Fläche
aufweist. Falten sind auf Kanten der ursprünglichen Topologie definiert
und werden verwendet, um Erhöhungen
zu der endgültigen
Grenzoberfläche
hinzuzufügen,
wie in "Subdivision
Surfaces in Character Animation",
von T.D. DeRose, M. Kass und T. Truong, in Proceedings of SIGGRAPH
98 (Juli 1998), Seiten 85–94
(die "Crease-Reference") beschrieben. Für Unterteilungsverfahren
ungeraden Grades werden Regeln für
auf einer Grenze oder Falte liegende Eckpunkte in der Weise festgelegt,
dass die Kanten, welche die Grenze oder Kante bilden, zu einer Kurve
mit dem gleichen ungeraden Grad wie die endgültige Oberfläche konvergieren.
Jedoch, wie in der Unified Reference angemerkt, ist es in keinster
Weise offensichtlich, wie Grenz- und Faltenregeln zu einem Unterteilungsverfahren
hinzuzufügen
sind, welches eine Dual-Arbeitsweise verwendet, weil die Kante,
welche die Falte oder Grenze definiert, nicht in der Dual-Topologie
vorhanden ist. Auch besitzt für
alle Maschengitter mit geometrischen Grenzen das Dual des Maschengitters
grundsätzlich
weniger Flächen
als das ursprüngliche
Maschengitter. Als Folge, wenn wiederholte Dual-Arbeitsvorgänge auf
einem Maschengitter durchgeführt
werden, besitzt das Maschengitter weniger Flächen. Wenn der Dual-Arbeitsvorgang oft
genug wiederholt wird, besitzt das Maschengitter schließlich keine
Grenzen oder keine Polygone. Jedoch benützen die Verfahren beliebigen
Grades in der „Unified
Reference" wiederholt
einen Dual-Arbeitsvorgang. Auch verwenden frühere Unterteilungsverfahren
geraden Grades das Dual mindestens einmal und weisen daher dieses
Problem in einem gewissen Ausmaß auf.
Wenn derartige Grenzen und Falten benötigt werden, empfiehlt die „Unified
Reference" Primal-Unterteilungsverfahren,
weil sie nicht die Dual-Arbeitsweise verwenden, was impliziert,
dass nur Oberflächen
ungeraden Grades erzeugt werden können, wenn Grenzen und Falten
benötigt
werden. Gegenwärtige
Unterteilungsverfahren erzeugen auch eine Grenzoberfläche mit
einem konstanten Grad. Es gibt kein Verfahren zum Erzeugen von Oberflächen, welches
zwischen zwei Grenzoberflächen
verschiedenen Grades interpoliert oder erlaubt, dass der Ziel-Oberflächengrad über die
endgültige Oberfläche variiert.
-
Die „Unified
Reference" erwähnt auch,
dass Verfahren, welche den Dual-Arbeitsweise verwenden, ineffizient
sind, weil sich die Topologie wesentlich verändert. Um diese Ineffizienz
zu beseitigen, ist eine spezialisierte Datenstruktur in "A Unified Framework
for Primal/Dual Quadrilateral Subdivision Schemes", von D. Zorin und
P. Schnöder,
in Computer-Aided Geometric Design, Band 18, Nr. 5 (Juni 2001),
Seiten 429–454)
beschrieben. Diese Datenstruktur codiert sowohl das Maschengitter
als auch ihr Dual. Wenn auch die Vorgehensweise der „Unified
Reference" langsamer
wegen der Dual-Arbeitsweise ist, besitzt sie den Vorteil, dass derartige
spezialisierte Datenstrukturen nicht benötigt werden.
-
Die
oben für
Oberflächen
aufgeführten
Probleme bestehen auch für
die Erzeugung von auf Polygonzügen
basierenden Kurven. Ein Polygonzug ist eine Gruppe von durch Liniensegmente
miteinander verbundenen Eckpunkten. Es gibt bekannte Polygonzug-Unterteilungsverfahren,
welche, wenn wiederholt angewendet, zu Kurven beliebigen Grades
konvergieren. Jedoch leiden diese Verfahren unter den analogen Problemen,
welche bei der Unterteilung von Oberflächen auftreten. Insbesondere
können
Eigenschaften nicht richtig übertragen
werden und es gibt kein Verfahren zum Interpolieren zwischen Grenzkurven
verschiedenen Grades oder zum Variieren des Zielgrades entlang der
Kurve.
-
Wenn
eine lineare Unterteilung auf einem Maschengitter oder ebenen Polygonen
durchgeführt
wird, ist die resultierende Topologie, wenn auch unterschiedlich,
lediglich in größerem Maße mosaikartig.
Daher ändert
sich die Form der Oberfläche
nicht. Dementsprechend kann ein Maschengitter, welches aus einem
Verfahren geraden Grades hervorgeht, modifiziert werden, indem ein
linearer Unterteilungsarbeitsvorgang verwendet wird, um zu einem
neuen Maschengitter mit der gleichen Oberflächenform zu führen, aber
in größerem Maße mosaikartig.
Ein Glätten-Arbeitsvorgang
ist herausgefunden worden, welcher die Eigenschaft besitzt, dass
ein Durchführen
des Duals eines Maschengitters, gefolgt von einer linearen Unterteilung, äquivalent
ist zu einem Durchführen
einer linearen Unterteilung, gefolgt von diesem Glätten-Arbeitsvorgang.
Der Glätten-Arbeitsvorgang
ist ein lokaler Arbeitsvorgang, was bedeutet, dass er für das Berechnen
eines bestimmten Eckpunktes Information über die Eckpunkte von nur jenen
zu dem Eckpunkt benachbarten Flächen
in dem Maschengitter verwendet.
-
Durch
Verwendung dieser Beziehung (nämlich,
dass ein Dual-Arbeitsvorgang gefolgt von einem linearen Unterteilungsarbeitsvorgang äquivalent
ist zu einem linearen Unterteilungsarbeitsvorgang gefolgt von diesem
Glätten-Arbeitsvorgang),
wurde ein Unterteilungsverfahren zum Erzeugen von Grenzoberflächen beliebigen
Grades definiert. Dieses Unterteilungsverfahren verwendet keinerlei
Dual-Arbeitsvorgänge,
sondern kann durchgeführt
werden, indem nur lineare Unterteilungs- und lokale Glätten-Arbeitsvorgänge, auch
für Grenzoberflächen geraden
Grades, verwendet werden. Dieses Unterteilungsverfahren liefert
die gleiche Oberflächenform
wie typische Dual- oder Primal-Unterteilungsverfahren, besitzt aber
eine in größerem Maße mosaikartige
Topologie.
-
Um
eine Grenzoberfläche
beliebigen Grades aus einem Maschengitter zu erzeugen, wird das
Maschengitter zuerst linear unterteilt. Zusätzliche lineare Unterteilungs-
und Glätten-Arbeitsgänge werden
auf dem linear vor-unterteilten Maschengitter durchgeführt. Die
Anzahl von Gruppen von linearen Unterteilungs- und Glätten-Arbeitsvorgängen hängt von
dem gewünschten
Oberflächengrad
und Unterteilungsgrad ab. Dieses Verfahren kann verwendet werden,
um Grenzoberflächen
beliebigen Grades ohne Durchführen
eines Dual-Arbeitsvorgangs
zu erzeugen. Während
der Unterteilung ist die Topologie des Zwischen-Maschengitters unabhängig von dem Zielgrad der Grenzoberfläche.
-
Als
ein Ergebnis werden mehrere Fähigkeiten
bereitgestellt. Erstens kann die Unterteilung eines Maschengitters
zu einem beliebigen Grad schnell berechnet und gerendert werden,
wobei das gleiche Verfahren und die gleichen Datenstrukturen für Grenzoberflächen sowohl
geraden als auch ungeraden Grades effizient verwendet werden. Das
Verfahren hat die Geschwindigkeit des Verfahrens in Zorin und Schnöder, aber,
wie die „Unified
Reference", benötigt es
nicht eine spezialisierte Datenstruktur. Bekannte Datenstrukturen
zum Beschleunigen oder zum Reduzieren des Speicherverbrauchs von
Primal-Unterteilungsverfahren können
verwendet werden, um dieses Verfahren zu beschleunigen. Grenz- und
Faltenregeln, welche derzeit für
Unterteilungen ungeraden Grades verwendet werden, können auch
erweitert werden, um in diesem Verfahren für eine Unterteilung geraden
Grades verwendet zu werden.
-
Zweitens
können
Oberflächeneigenschaften
von einem ursprünglichen
Maschengitter auf die Zwischen-Maschengitter und die Grenzoberfläche übertragen
werden, ungeachtet des Zieloberflächengrades.
-
Schließlich ist
es möglich,
zwischen Grenzoberflächen
verschiedenen Grades zu interpolieren und tatsächlich den Oberflächengrad
und den Umfang an Interpolation über
die Oberfläche
zu variieren. Dieses Verfahren ermöglicht ein Festlegen, auf den
ursprünglichen
Maschengitterkomponenten, der gewünschten Oberflächenglätte von
verschiedenen Teilen der Grenzoberfläche, einschließlich der
Grenzen. Eine glatte Oberfläche
wird automatisch zwischen Regionen verschiedenen Grades erzeugt.
-
Es
ist auch herausgefunden worden, dass ähnliche Verfahren auf Unterteilungsverfahrene
zum Erzeugen von Kurven aus Polygonzügen angewendet werden können. Es
gibt Unterteilungsverfahren, welche einen Polygonzug annehmen und
einen neuen Polygonzug ausgeben, welcher geglättet ist. Da das Unterteilungsverfahren
wiederholt den Polygonzug verändert,
konvergiert der Polygonzug zu einer Grenzkurve beliebigen Grades.
Wie bei der Unterteilung von Oberflächen, führen frühere Verfahren zum Erzeugen
von Kurven mit einem geraden Grad das Polygonzug-Äquivalent
des Dual-Arbeitsvorgangs durch. Es ist herausgefunden worden, dass
der Polygonzug-Dual-Arbeitsvorgang gefolgt von einer linearen Unterteilung
berechnet werden kann, indem eine lineare Unterteilung gefolgt von
einem bestimmten Glätten-Arbeitsvorgang
durchgeführt wird.
-
Durch
Ausnutzen dieser Tatsache wird ein Kurven-Unterteilungsverfahren
zum Erzeugen von Kurven beliebigen Grades definiert, welches keinerlei
Dual-Arbeitsvorgänge
verwendet. Das Verfahren beginnt, indem der Polygonzug linear unterteilt
wird, um einen Zwischen-Polygonzug
zu erzeugen. Der Zwischen-Polygonzug wird zu dem gewünschten
Unterteilungsgrad wiederholt linear unterteilt und geglättet. Der
Umfang an Unterteilung und Glättung
ist abhängig
von dem gewünschten
Unterteilungsgrad und dem gewünschten
Grad der Grenzkurve.
-
Ähnlich dem
Verfahren zum Unterteilen eines Maschengitters ermöglicht dieses
Verfahren zum Unterteilen eines Polygonzuges mehrere Fähigkeiten,
welche den für
eine Unterteilung von Oberflächen
ermöglichten
Fähigkeiten ähnlich sind.
Erstens können
Kurven ungeraden und geraden Grades erzeugt werden, indem die gleichen
Datenstrukturen und Verfahren verwendet werden und beliebige Beschleunigung-
oder Speicherverbrauchoptimierungen, welche für vorhandene Verfahren ungeraden
Grades existieren, können
auf dieses Verfahren angewendet werden. Zweitens können mit
den Eckpunkten und Segmenten verbundene Eigenschaften richtig auf
die Grenzkurve und die genäherten
Zwischen-Polygonzüge übertragen
werden. Zuletzt ist es möglich,
zwischen Grenzkurven verschiedenen Grades zu interpolieren und tatsächlich den
Kurvengrad und die Menge an Interpolation entlang der Kurve gleichmäßig zu variieren.
-
1 zeigt
eine Graphik eines beispielhaften Eingabe-Maschengitters.
-
2 zeigt
eine Graphik des Maschengitters von 1 nach einer
linearen Unterteilung.
-
3 zeigt
eine Graphik des Maschengitters von 2 nach einer
zweiten linearen Unterteilung.
-
4 zeigt
eine Graphik des Maschengitters von 3 nach einem
ersten Glätten-Arbeitsvorgang.
-
5 zeigt
eine Graphik des Maschengitters von 3 nach einem
zweiten Glätten-Arbeitsvorgang.
-
6 zeigt
ein Datenflussdiagramm einer Implementierung eines Unterteilungsarbeitsvorgangs
auf ein Maschengitter.
-
7 zeigt
eine Graphik eines beispielhaften Eingabe-Polygonzuges mit fünf Eckpunkten.
-
8 zeigt
eine Graphik des Polygonzuges von 7 nach einer
linearen Unterteilung.
-
9 zeigt
eine Graphik das Polygonzuges von 8 nach einer
zweiten linearen Unterteilung und dem ersten Glätten-Arbeitsvorgang.
-
10 zeigt
eine Graphik des Polygonzuges von 9 nach einem
zweiten Glätten-Arbeitsvorgang.
-
Um
eine glatte Oberfläche
mit beliebiger Topologie zu erstellen, wird ein ursprüngliches
Maschengitter durch Festlegen von Flächen, Eckpunkten und Kanten
definiert. Die Eckpunkte und Kanten definieren n-seitige Flächen. Typischerweise
besitzt ein Eingabe-Maschengitter
Flächen,
welche größtenteils,
aber nicht notwendigerweise alle, Vierecke sind. Dieses Maschengitter
wird wiederholt in einem begrenzenden Verfahren unterteilt, welches
zu einer glatten Oberfläche
konvergiert. Zwischen-Maschengitter werden als Näherung dieser glatten Grenzoberfläche verwendet.
Ein beispielhaftes Maschengitter, allein zum Zwecke der Erläuterung,
ist in 1 gezeigt. 1 stellt
einen Würfel 10 dar,
definiert durch acht Eckpunkte, z.B. 12, und zwölf Kanten, z.B. 14,
welche sechs Flächen
definieren, z.B. 16.
-
Ein
Maschengitter wird im Allgemeinen durch drei Arrays definiert, welche
die Eckpunkte, Kanten und Flächen
speichern. Die jeden Eckpunkt darstellende Datenstruktur kann z.B.
Daten einschließen,
welche sowohl seine Position als auch die Indices der benachbarten
Kanten und Flächen
definieren. Jeder Eckpunkt hat eine Valenz, welche gleich der Anzahl von
zu dem Eckpunkt benachbarten Polygonen ist. Ein Eckpunkt in einem
Viereck-Maschengitter
wird als regelmäßig bezeichnet,
wenn er die Valenz 4 besitzt; sonst wird er als nicht regulär bezeichnet.
Die jede Kante darstellende Datenstruktur kann z.B. Daten einschließen, welche
die Indices von ihren Endpunkten und die Indices von den zwei benachbarten
Flächen
definieren. Die jede Fläche darstellende
Datenstruktur kann z.B. Daten einschließen, welche die Indices von
ihren benachbarten Flächen, Kanten
und Eckpunkten definiert.
-
Eigenschaften,
wie Flächenmaterialdefinitionen
(Farbe, Spiegelungseigenschaften, Rauigkeit), und/oder Strukturen
können
mit dem Maschengitter verbunden sein. Strukturkoordinaten sind im
Allgemeinen mit Eckpunkt-Fläche-Paaren
verbunden, wobei die Fläche
eine der zu dem Eckpunkt benachbarten Flächen ist. Andere Eigenschaften
können
mit z.B., aber nicht beschränkt
auf, Eckpunkten, Kanten und/oder Flächen, Kante-Eckpunkt-Paaren
und Kante-Fläche-Paaren
verbunden sein.
-
Die
Unterteilung wird bis zu einem Grad durchgeführt, der Unterteilungsgrad
genannt, welcher die Anzahl darstellt, wie oft das Maschengitter
linear unterteilt wird. Ein linearer Unterteilungsarbeitsvorgang
auf einem Maschengitter betrifft nicht die Eckpunkte des ursprünglichen
Maschengitters. Neue Eckpunkte werden auf dem Mittelpunkt von jeder
Kante und auf dem Schwerpunkt jeder Fläche hinzugefügt. Kanten
werden hinzugefügt,
welche Flächenschwerpunkte
mit jedem der umgebenden Kantenmittelpunkte verbinden. Somit führt eine
N-seitige Fläche
zu N Vierecken in dem neuen Maschengitter. Wenn das Maschengitter
ebene Flächen definiert,
bleibt die Form der Oberfläche
die gleiche und die Topologie ist lediglich in größerem Maße mosaikartig.
Wenn das Maschengitter eine nicht ebene Fläche definiert, ist die Oberfläche nicht
gut definiert; jedoch kann der Schwerpunkt noch als eine gültige Abschätzung eines
Punktes auf jener Fläche
verwendet werden.
-
2 erläutert den
Würfel 10 von 1 nach
einem ersten linearen Unterteilungsarbeitsvorgang. Neue Eckpunkte,
z.B. 20, werden zu den Mittelpunkten von jeder Kante, z.B. 14,
und an dem Schwerpunkt 22 von jeder Fläche, z.B. 16, hinzugefügt. In ähnlicher
Weise werden in 3, welche den Würfel von 2 nach einem
zweiten linearen Unterteilungsarbeitsvorgang abbildet, neue Eckpunkte,
z.B. 30 und 32, und die Mittelpunkte von jeder
Kante und an dem Schwerpunkt, z.B. 34, von jeder Fläche hinzugefügt.
-
Nachdem
das Maschengitter für
jeden Grad linear unterteilt worden ist, wird ein zusätzlicher
Unterteilungsarbeitsvorgang, typischerweise ein Glätten-Arbeitsvorgang
oder ein Dual-Arbeitsvorgang,
wiederholt auf dem Maschengitter durchgeführt. Die Anzahl, wie oft dieser
Arbeitsvorgang durchgeführt
wird, variiert abhängig
von dem gewünschten
Grenzoberflächengrad,
genannt der Oberflächengrad,
welcher entweder gerade oder ungerade sein kann. Der Oberflächengrad
bestimmt, ob die unterteilte Oberfläche, wenn der Unterteilungsgrad
gegen unendlich geht, zu einer Grenzoberfläche geraden Grades oder zu
einer Grenzoberfläche
ungeraden Grades konvergiert.
-
In
der „Unified
Reference" wird
eine verallgemeinerte Prozedur, genannt "Simple", zum Erzeugen einer Grenzoberfläche beliebigen
Grades wie folgt definiert:
worin M ein Maschengitter,
d der Oberflächengrad
und L der gewünschte
Unterteilungsgrad ist. Wenn L gegen unendlich geht, nähert sich
die resultierende Oberfläche
einer Grenzoberfläche
vom Grad d an.
-
Wenn
eine lineare Unterteilung auf einem Maschengitter durchgeführt wird,
ist die resultierende Topologie, wenn auch unterschiedlich, lediglich
in größerem Maße mosaikartig.
Daher ändert
sich die Form der Oberfläche
nicht. Z.B. kann diese Simple-Prozedur in folgender Weise so modifiziert
werden, dass man ein neues Maschengitter mit der gleichen Oberflächenform
aber einer besonderen Topologie erhält:
-
Die
Prozedur kann nun wie folgt umstrukturiert werden, was zu der folgenden
Prozedur führt,
welche die gleichen Schritte wie Simple_Modified ausführt:
-
Es
ist zu beachten, dass auf den letzten Dual-Arbeitsvorgang der "for D"-Schleife der Simple_Modified_Rearranged
Prozedur immer eine lineare Unterteilung folgt.
-
Es
ist herausgefunden worden, dass, wenn keine geometrischen Grenzen
vorhanden sind, ein Dual-Arbeitsvorgang, welcher auf einem Maschengitter,
gefolgt von einem linearen Unterteilungsarbeitsvorgang durchgeführt wird,
die gleiche Topologie und die gleiche Oberflächenform erzeugt, wie ein linearer
Unterteilungsarbeitsvorgang, welcher auf dem Maschengitter, gefolgt
von einem bestimmten Glätten-Arbeitsvorgang durchgeführt wird,
welcher unten ausführlicher
beschrieben wird. Als eine Folge kann die Simple_Modified_Rearranged
Prozedur vereinfacht werden, indem Paare von Dual- und linearen
Unterteilungsarbeitsvorgängen
durch ein Paar von linearen Unterteilungs- und Glätten-Arbeitsvorgängen ersetzt
wird, was folgende Prozedur ergibt:
worin M ein Maschengitter,
L der Unterteilungsgrad und d der Oberflächengrad ist.
-
Der
SmoothMesh Arbeitsvorgang ist wie folgt. Für jeden Eckpunkt des Maschengitters
M wird eine neue Position gemäß den vorhandenen
Eckpunktpositionen berechnet, wobei eine SmoothVertex-Funktion (unten)
verwendet wird. Die Positionen werden in der Weise berechnet, dass
die Modifikation eines Eckpunktes sich nicht auf die Berechnung
eines anderen Eckpunktes auswirkt. Diese Berechnung kann zum Beispiel durchgeführt werden,
indem die neu berechneten Positionen in einem temporären Speicher
gespeichert werden. Nachdem all die neuen Positionen berechnet worden
sind, werden die neuen Positionen von dem temporären Speicher übertragen
und den Eckpunkten zugeordnet.
-
Für einen
bestimmten Eckpunkt v gibt es zwei Arten von Eckpunkten in der unmittelbaren
Umgebung. Benachbarte Eckpunkte sind Eckpunkte, die eine Kante mit
dem Eckpunkt v gemeinsam haben und diagonale Eckpunkte sind Eckpunkte,
die ein Viereck mit Eckpunkt v gemeinsam haben, aber nicht der Eckpunkt
v oder benachbart zu dem Eckpunkt v sind. Der SmoothVertex Arbeitsvorgang
wird definiert wie folgt:
wobei
v der zu glättende
Eckpunkt ist.
-
Der
Glätten-Arbeitsvorgang
ist ein lokaler Arbeitsvorgang, was bedeutet, dass für die Berechnung
eines bestimmten Eckpunktes Informationen über die Eckpunkte von nur jenen
zu dem Eckpunkt in dem Maschengitter benachbarten Flächen verwendet
wird. Der Glätten-Arbeitsvorgang wird
hier für
Eckpunktpositionen beschrieben, ist aber nicht auf Eckpunktpositionen
beschränkt.
Der Arbeitsvorgang kann auf eine beliebige mit den Eckpunkten verbundene
Eigenschaft angewendet werden, welche linear interpoliert werden
kann, d.h. jede Eigenschaft, bei welcher zwei Werte der Eigenschaft
gemittelt werden können,
um einen neuen Wert zu erzeugen.
-
Dieses
Verfahren basiert auf der Tatsache, dass ein Dual-Arbeitsvorgang
gefolgt von einem linearen Unterteilungsarbeitsvorgang, ersetzt
werden kann durch einen linearen Unterteilungsarbeitsvorgang, gefolgt von
einem Glätten-Arbeitsvorgang.
Diese Ersetzung ist nur theoretisch korrekt für Maschengitter ohne geometrische
Grenzen. Jedoch verhält
sich das Verfahren trotzdem in einer intuitiv richtigen Weise, auch
bei Vorhandensein von geometrischen Grenzen.
-
Eine
alternative Ersetzung kann auch durchgeführt werden. In einem Maschengitter
ohne Grenzen führen
zwei simultane Dual-Arbeitsvorgänge
zu der gleichen Topologie, aber geglättet. Zwei simultane Dual-Arbeitsvorgänge können von
einem EvenSmoothMesh Arbeitsvorgang ersetzt werden, wie in der „Unified Reference" beschrieben. Dieser
Glätten-Arbeitsvorgang berechnet
neue Werte, wie mit SmoothMesh, aber mit dem folgenden Arbeitsvorgang
pro Eckpunkt:
wiederum
ausgehend vom oben beschriebenen Simple_Modified_Rearranged, können Paare
von Dual-Arbeitsvorgängen
mit EvenSmoothMesh Arbeitsvorgängen
ersetzt werden:
worin M das ursprüngliche
Maschengitter, L der gewünschte
Unterteilungsgrad und d der gewünschte
Oberflächengrad
ist.
-
Diese
Ersetzung lässt
einen einzelnen Dual-Arbeitsvorgang übrig, wenn der Oberflächengrad
d gerade ist. Dieser letzte Dual-Arbeitsvorgang kann unter Verwendung
des oben beschriebenen Verfahrens vermieden werden:
-
Bezugnehmend
auf 4 und 5 wird ein erster Glätten-Arbeitsvorgang
auf dem Würfel
von 3 durchgeführt,
um das Maschengitter in 4 zu liefern. Ein zweiter Glätten-Arbeitsvorgang wird
auf dem Maschengitter von 4 durchgeführt, um
das Maschengitter in 5 zu liefern. In jedem von diesen
Glätten-Arbeitsvorgängen besitzt
jede Fläche
in dem Ergebnis, z.B. 50, in 5, eine
entsprechende Fläche
in dem ursprünglichen
Maschengitter, z.B. 40, in 4. Es gibt
auch eine eins-zu-eins Übereinstimmung
zwischen Eckpunkten und Kanten. Nur die Positionen der Eckpunkte
(und daher der Kanten und Flächen)
haben sich verändert.
-
Ein
Datenflussdiagramm von dieser Arbitrary_Degree_Subdivision Prozedur
wird nun in Verbindung mit 6 beschrieben.
Insbesondere wird ein Eingabemaschengitter 60 linear von
einem linearen Unterteilungsmodul 62 unterteilt, um ein
Zwischen-Maschengitter 64 zu erzeugen. Für jede Unterteilungsstufe
SL wird das Zwischen-Maschengitter dann linear von dem linearen
Unterteilungsmodul 62 unterteilt. Dieses linear unterteilte
Maschengitter wird dann von einem lokalen Glätten-Modul 66 geglättet, um
ein geglättetes
Maschengitter 68 zu erzeugen. Der Glätten-Arbeitsvorgang wird auf
das Maschengitter d-1 mal angewendet, wobei d der Oberflächengrad
ist. Für
zusätzliche
Unterteilungsstufen SL wird das geglättete Maschengitter 68 wieder dem
linearen Unterteilungsmodul 62 zugeführt, dessen Ausgabe dann wieder
dem Glätten-Modul 66 d-1
mal zugeführt
wird. Die Arbitrary_Degree_Subdivision Unterteilungsprozedur ersetzt
nicht das Maschengitter mit seiner Dual-Topologie, auch für Grenzoberflächen geraden
Grades. Wenn es keine geometrischen Grenzen gibt, liefert die Unterteilungsprozedur
die gleiche Oberflächenform
wie sowohl die Simple-Prozedur als auch andere typische Dual- oder
Primal-Unterteilungsprozeduren, hat aber eine in größerem Maße mosaikartige
Topologie, d.h. es weist eine zusätzliche lineare Unterteilung
auf. Diese zusätzliche
topologische Information ermöglicht,
dass Diskontinuitäten
in Eigenschaften, wie ein Farbwechsel, dargestellt werden können.
-
Dasselbe
Verfahren zum Erzeugen dieser Oberflächen-Unterteilungsprozedur
kann verwendet werden, um eine Polygonzug-Unterteilungsprozedur
mit ähnlichen
Eigenschaften zu erzeugen. Ein Polygonzug wird von einer geordneten
Gruppe von Eckpunkten definiert, welche durch Liniensegmente miteinander
verbunden sind. Der erste und letzte Eckpunkt von der Gruppe kann
optional durch ein Segment verbunden sein. Die Polygonzug-Unterteilungsprozedur,
wie die Oberflächen-Unterteilungsprozedur,
ist ein iterativer Prozess. An der Grenze erzeugt die Prozedur eine
glatte Kurve mit einem beliebigen Grad. Ein beispielhafter Polygonzug
ist nur zum Zwecke der Erläuterung
in 7 gezeigt. 7 stellt
einen Polygonzug mit fünf
Eckpunkten, z.B. 72, und fünf Liniensegmenten, z.B. 74,
dar.
-
Es
ist möglich,
eine Grenzkurve von einem Polygonzug durch wiederholtes Anwenden
von linearen Polygonzug-Unterteilungs- und Dual-Arbeitsvorgängen zu
erzeugen. Zwischen-Polygonzüge können verwendet
werden, um die Grenzkurve anzunähern.
Die linearen Polygonzug-Unterteilung- und Dual-Arbeitsvorgänge sind ähnlich zu
ihren Maschengitter-Gegenstücken: Die
lineare Unterteilung eines Polygonzuges bringt neue Eckpunkte an
dem Mittelpunkt von jedem Segment ein, während der Dual-Polygonzug-Arbeitsvorgang
jedes Segment durch einen Eckpunkt ersetzt und diese neuen Eckpunkte
mit neuen Segmenten verbindet, wenn die entsprechenden ursprünglichen
Segmente einen Eckpunkt gemeinsam hatten.
-
Der
Zielgrad der Grenzkurve, genannt der Kurvengrad, bestimmt, wie viele
Dual-Arbeitsvorgänge je Unterteilungsiteration
durchgeführt
werden. Die Anzahl von durchgeführten
Iterationen wird, wie bei den Maschengittern, der Unterteilungsgrad
genannt. Wenn der Unterteilungsgrad gegen unendlich geht, konvergiert der
resultierende Polygonzug zu einer Grenzkurve mit dem Oberflächengrad.
Ein Hinzufügen
eines zusätzlichen
linearen Unterteilungsarbeitsvorgangs an dem Ende dieses Verfahrens ändert nicht
die Form dieser Kurve; es erhöht
lediglich die Topologie. Wie bei der Unterteilung eines Maschengitters
können
aufeinanderfolgende Dual- und lineare Unterteilungsarbeitsvorgänge auf
Polygonzügen,
bei welchen jeder Eckpunkt zwei benachbarte Kanten aufweist, stattdessen
berechnet werden, indem eine lineare Unterteilung, gefolgt von einem Glätten-Arbeitsvorgang,
durchgeführt
wird.
-
8 stellt
den Polygonzug von 7 nach einer linearen Unterteilung
dar. Neue Eckpunkte, z.B. 80, werden an den Mittelpunkten
von jedem Liniensegment, z.B. 74 in 7, hinzugefügt.
-
Die
Prozedur für
eine Unterteilung beliebigen Grades eines Polygonzuges ist demnach
die folgende:
worin P der ursprüngliche
Polygonzug, L der gewünschte
Unterteilungsgrad und d der Grad "Kurvengrad" ist, zu welchem die Grenzkurve konvergiert,
wenn L gegen unendlich geht.
-
SmoothPolyline
ist analog zu SmoothMesh, abgesehen davon, dass für jeden
Eckpunkt der Glätten-Arbeitsvorgang
von SmoothVertex_Polyline durchgeführt wird, wobei der Eckpunkt
bei dem Mittelwert seiner benachbarten Eckpunkte angeordnet wird. 9 stellt
den Polygonzug von 8 nach einer zweiten linearen
Unterteilung und einem ersten Glätten-Arbeitsvorgang dar. 10 stellt
den Polygonzug von 9 nach einem zweiten Glätten-Arbeitsvorgang dar.
Z.B. wird die Position des Eckpunktes 92 in 9 zu
einem Mittelwert der Positionen von Eckpunkten 94 und 96 in 9 bewegt,
um zu der Position von Eckpunkt 102 in 10 zu
gelangen. In jedem dieser Glätten-Arbeitsvorgängen besitzt
jedes Segment in dem Ergebnis, z.B. 100 in 10,
ein entsprechendes Segment, z.B. 90 in 9,
in dem ursprünglichen
Polygonzug. Es gibt auch eine eins-zu-eins Übereinstimmung zwischen Eckpunkten
und Segmenten. Nur die Positionen der Eckpunkte (und daher der Segmente)
haben sich verändert.
-
Da
dieses Verfahren lineare Unterteilungs- und Glätten-Arbeitsvorgänge verwendet,
können
mit den Eckpunkten und Segmenten des Polygonzuges verbundene Eigenschaften
auf die Grenzkurve und die Zwischen-Polygonzug-Näherungen dieser Kurve ohne
Fehler oder Verzerrung übertragen
werden. Beispielhafte Eigenschaften schließen ein, sind aber nicht begrenzt
auf, ein Polygonzug mit Linienbreite und Farbe.
-
Wie
bei der Unterteilung eines Maschengitters hängt diese Prozedur zum Unterteilen
von Polygonzügen
von einem Ersetzen aufeinanderfolgender Dual-Arbeitsvorgänge und
linearen Unterteilung durch die aufeinanderfolgenden Arbeitsvorgänge des
linearen Unterteilens und Glättens
ab. Diese Ersetzung ist nur theoretisch korrekt für Polygonzüge, in welchen
jeder Eckpunkt genau zwei benachbarte Kanten aufweist. Jedoch verhält sich
das Verfahren trotzdem in einer intuitiv korrekten Weise, auch wenn
diese Voraussetzung nicht erfüllt
ist.
-
Wie
bei der Unterteilung eines Maschengitters kann eine beschleunigte
Version von Arbitrary_Degree_Subdivision_Polyline erzeugt werden,
indem eine Polygonzug-Version von EvenSmooth verwendet wird, um
Paare von Dual-Arbeitsvorgängen
zu ersetzen. Die Polygonzug-Version von EvenSmoothMesh glättet einen
Eckpunkt v dadurch, dass ein Viertel von jedem zu v benachbarten
Eckpunkt und die Hälfte
von v genommen wird.
-
Die
Polygonzug-Version der Unterteilungsprozedur kann auch verwendet
werden, um die Arbitrary_Degree_Subdivision Prozedur zu modifizieren,
um die Grenzen von Maschengitter in der gleichen Weise zu bearbeiten,
wie derzeitige Verfahren für
einen ungeraden Grad. Derzeitige Verfahren für einen ungeraden Grad weisen
spezielle Regeln in der Weise auf, dass Kanten, die eine Grenze
bilden, zu einer Kurve mit dem gleichen Grad wie die Oberfläche konvergieren.
Dieses Konvergenz kann erreicht werden, indem die Arbitrary_Degree_Subdivision_Polyline
Prozedur auf die Kanten, welche die Grenze bilden, angewendet wird. Dieses
Anwenden der Polygonzug-Unterteilungsprozedur führt zu einer minimalen Veränderung
der Oberflächen-Unterteilungsprozedur,
weil die Oberflächen-Unterteilungsprozedur
bereits die korrekte Anzahl von linearen Unterteilungs- und Glätten-Arbeitsvorgängen auf
den Kanten, welche die Grenze bilden, durchführt. Der SmoothVertex Arbeitsvorgang
wird lediglich modifiziert, um den SmoothVertex_Polyline Arbeitsvorgang
durchzuführen,
wenn der Eckpunkt auf einer Grenze liegt. Wenn der Eckpunkt auf
mehr als einer Grenze liegt, gibt es zwei Möglichkeiten. Die erste Möglichkeit
besteht darin, die Position des Eckpunktes nicht zu ändern. Die zweite
Möglichkeit
besteht darin, die Position des Eckpunktes zu dem Durchschnittswert
der Ergebnisse des Berechnens von SmoothVertex_Polyline auf jeder
Grenze zu verändern.
Obwohl es mehrere Möglichkeiten gibt,
wie die Grenzkanten um einen Eckpunkt zusammengepaart werden können, um
Grenzpolygonzüge
zu bilden, ist das Ergebnis das gleiche, unabhängig davon, wie sie gepaart
sind. Das Ergebnis ist lediglich der Durchschnittswert von all den
benachbarten Eckpunkten, welche eine Grenzkante mit dem aktuellen
Eckpunkt gemeinsam haben.
-
Daher
kann unter Verwendung der Arbitrary_Degree_Subdivision Prozedur
die Unterteilung eines Maschengitters zu einem beliebigen Grad,
sowohl gerade als auch ungerade, schnell und effizient berechnet
und gerendert werden, und die gleiche Prozedur und die gleichen
Datenstrukturen für
Unterteilungen von sowohl geradem als auch ungeradem Grad werden
verwendet. Diese Prozedur besitzt auch die gleiche Gesamtstruktur
wie übliche
Prozeduren für
einen ungeraden Grad, weil sie wiederholte lineare Unterteilungen
gefolgt von Glätten-Durchgängen aufweist.
Daher können
vorhandene Datenstrukturen, welche für Prozeduren für einen ungeraden
Grad verwendet werden, für
diese Prozedur verwendet werden.
-
Da
die Prozedur nur die Arbeitsvorgänge
lineare Unterteilung und Glätten
verwendet, unterstützt
die Prozedur auch die Weitergabe von Oberflächeneigenschaften an die Zwischen-Maschengitter und
an die endgültige
Grenz-Unterteilungsoberfläche,
unabhängig
von dem Zielgrad. Zum Beispiel, wenn jede Fläche des ursprünglichen
Maschengitters 10 in 1 eine mit
ihr verbundene Farbe besitzt, werden diese Farben an jedes Zwischen-Maschengitter weitergegeben,
wie in 2 bis 5 gezeigt. Während der Unterteilungsprozedur, wenn
eine Fläche
mit N Eckpunkten linear unterteilt wird, wird sie entfernt und durch
N neue Flächen
ersetzt. Jede dieser neuen Flächen übernimmt
einfach die Farbe der ursprünglichen
Fläche.
Wenn die unterteilte Oberfläche
geglättet
wird, werden Flächenfarben
einfach gelassen wie sie sind, da das Glätten lediglich die Positionen
der Eckpunkte verändert.
Daher werden auf der unterteilten Oberfläche die Farben der Oberfläche richtig weitergegeben,
etwas, das nicht möglich
ist, wenn das Dual verwendet wird. Insbesondere kann die Farbendiskontinuität, welche
an Kante 18 in 1 auftritt, nicht weitergegeben werden,
wenn ein Dual verwendet wird, da in dem Dual, welches die gleiche
Form wie die Topologie in 4 aufweist,
die Kante 42 fehlt.
-
Mit
Eckpunkten verbundene Eigenschaften werden in der gleichen Weise
unterteilt wie die Positionen der Eckpunkte. Neuen entlang der Kanten
eingebrachten Eckpunkte werden die Durchschnittswerte der Eigenschaften
der Endpunkte gegeben. Neuen an den Schwerpunkten von Flächen eingebrachten
Eckpunkten werden die Durchschnittswerte der Eigenschaften für alle Eckpunkte
des Polygons gegeben. Wenn ein Glätten durchgeführt wird,
wird der SmoothVertex Arbeitsvorgang verwendet, wie oben beschrieben,
wird aber eher auf die Eigenschaft als auf die Position angewendet.
Eigentlich ist die Position eines Eckpunktes lediglich eine weitere
Eckpunkteigenschaft.
-
Da
die Prozedur die Oberfläche
ein weiteres mal linear unterteilt, wird eine spezielle Topologie
erzeugt, welche die Übereinstimmung
zwischen geometrischen Komponenten ermöglicht und ermöglicht,
dass Eigenschaften ohne Verzerrung übertragen werden. Wenn keine
Falten vorhanden sind, dann ist manches dieser speziellen Topologie
nicht immer benötigt.
Mit Eckpunkten und Flächen
verbundene Eigenschaften können
nur an einer Kante des ursprünglichen
Maschengitters diskontinuierlich sein, und daher können Diskontinuitäten nur
an Kanten vorhanden sein, welche direkte Abkömmlinge der ursprünglichen
Kanten des Maschengitters sind, d.h. Kanten, welche man aus dem
Unterteilen einer Kante erhalten hat. Diese Beziehung kann zurückverfolgt
werden, indem Kanten markiert werden, wenn sie unterteilt werden.
Kanten, welche in dem letzten linearen Unterteilungsdurchgang hinzugefügt wurden,
aber nicht direkte Vorläufer
einer ursprünglichen
Kante sind, können
entfernt werden, wobei die zu der Kante benachbarten Flächen zusammengefügt werden.
Wenn ein Eckpunkt nach dem Entfernen nur zwei oder weniger benachbarte
Kanten besitzt, kann der Eckpunkt auch entfernt werden, wobei, wenn
nötig,
Kanten zusammengefügt
werden.
-
Es
ist auch möglich,
Grenzoberflächen
zu erzeugen, welche zwischen Grenzoberflächen verschiedener Grade interpolieren.
Eine beispielhafte Anwendung einer derartigen Interpolation ist
ein Interpolieren zwischen zwei Grenzoberflächen mit aufeinanderfolgenden
Graden. Mit derzeitigen Unterteilungsprozeduren ist die Topologie,
welche aus dem Unterteilen eines Maschengitters mit einem Dual-Verfahren
folgt, deutlich unterschiedlich von der Topologie, welche aus einem
Unterteilen unter Verwendung eines Primal-Verfahrens folgt.
-
Dieser
Unterschied macht es schwierig, ein Ergebnis zu erzeugen, welches
auf dem halben Weg zwischen einer Oberfläche geraden Grades und einer
Oberfläche
ungeraden Grades liegt. Durch die Verwendung der hierin beschriebenen
Prozedur besteht der einzige Unterschied zwischen einem Unterteilen
für eine
Grenzoberfläche
mit Grad 2 und eine Grenzoberfläche
mit Grad 3 in einem Glätten-Durchgang.
Ansonsten ist die Topologie identisch. Daher muss, um eine Grenzoberfläche, welche
x % zwischen einer Grad 2 und einer Grad 3 Oberfläche ist,
die Prozedur lediglich modifiziert werden, so dass sie einen Glätten-Durchgang durchführt, und
dann bei dem zweiten Glätten-Durchgang
(100-x) % des aktuellen Wertes und x % des Ergebnisses von SmoothVertex
nimmt.
-
Diese
Interpolation kann erweitert werden, um zu ermöglichen, dass der Oberflächengrad über die Oberfläche variiert.
Jeder Eckpunkt kann mit einer realen Zahl in Verbindung gebracht
werden, welche den Zieloberflächengrad
festlegt, welcher lokal an jenem Eckpunkt gewünscht ist. Ein gebrochener
Grad impliziert eine Interpolation der Grenzoberflächen mit
Graden der kleineren und der größeren ganzen
Zahl (z.B. würde 2,5
einen Durchschnittswert der Grenzoberflächen mit Grad 2 und Grad 3
festlegen). Dann wird die Zahl an durchgeführten Glätten-Durchgängen und die Menge an durchgeführter Interpolation
für jeden
Eckpunkt variiert, abhängig
von dem mit dem Eckpunkt verbundenen Grad. Insbesondere würde die Arbitrary_Degree_Subdivision
Prozedur modifiziert werden, um lediglich genug Glätten-Durchgänge durchzuführen, um
den an einem Eckpunkt festgelegten maximalen Grad zu erfüllen. Falls
dieser maximale Grad m ist, gäbe
es m-1 Glätten-Durchgänge. Zweitens
würde für jeden
Glätten-Durchgang
i, von 1 bis m-1, die SmoothMesh Funktion das Glätten nur auf einem Eckpunkt
durchführen,
wenn jener Eckpunkt einen Grad besitzt, welcher größer als
oder gleich groß wie
der aktuelle Glätten-Durchgang i ist.
Schließlich
würde die
SmoothVertex Funktion eine Interpolation durchführen, wenn der Eckpunkt einen
Grad aufweist, welcher größer als
i und kleiner als i+1 ist. Für
neue Eckpunkte, welche durch die lineare Unterteilung eingebracht
werden, wird der mit dem neuen Eckpunkt verbundene Oberflächengrad
in der gleichen Weise berechnet, in welcher Positionen berechnet
werden: Für
einen an dem Mittelpunkt einer Kante eingebrachten Eckpunkt wird
dem neuen Eckpunkt als Zieloberflächengrad der Durchschnitt der
zwei Endpunkte zugewiesen. In ähnlicher
Weise wird einem auf dem Schwerpunkt einer Fläche eingebrachten Eckpunkt
der Oberflächengrad
zugeordnet, welcher der Durchschnittswert von den an den Eckpunkten
der ursprünglichen
Fläche
festgelegten Graden ist.
-
Als
Folge ist es möglich,
für die
Eckpunkte eines Teils eines Maschengitters festzulegen, dass der
Zieloberflächengrad
3 ist, für
einen weiteren Teil der Grad 2 ist, und an einem dritten Ort der
Grad 6 ist. Die Oberfläche
wird dazu neigen, zu jenem Oberflächengrad zu konvergieren und
in den Gebieten, in welchen zwei verschiedene Zieloberflächengrade
zueinander benachbart sind, erzeugt die Prozedur eine Oberfläche, welche gleichmäßig zwischen
den zweien übergeht.
-
Die
Menge an durchgeführtem
Glätten
kann auf viele Arten festgelegt werden. Z.B. kann die Menge an Glätten durchgeführt werden,
indem man den Anwender die unterteilte Fläche einfärben lässt, oder kann geliefert werden,
indem eine Struktur gesucht wird, welche auf die Oberfläche aufgebracht
wird.
-
Die
mit den Eckpunkten verbundenen Grade können während der Unterteilungsprozedur
in der gleichen Weise wie die Positionen geglättet werden. Der Umfang an
auf der Gradeigenschaft durchgeführtem Glätten ist
jedoch unabhängig
von dem Umfang an auf den Positionen durchgeführtem Glätten. Daher können die
mit den Eckpunkten verbundenen Grade mehr, weniger oder im gleichen
Umfang wie die Positionen geglättet
werden, wenn sie überhaupt
geglättet
werden. Umso mehr geglättet
wird, umso gleichmäßiger ist
der Übergang
zwischen Gebieten verschiedener Grade. Wenn weniger Glätten auf
die Gradeigenschaft angewendet wird, ist der Übergang zwischen Gebieten verschiedenen
Grades abrupter. Natürlich
kann der Umfang an Glätten,
welcher auf die Grade angewandt wird, auch variiert werden. Diese
Variationsmöglichkeit
stattet den Benutzer mit einer gewissen Kontrolle über die
Oberflächenform
aus. Z.B. kann dem Anwender ein einfacher Schieber auf einer graphischen
Benutzerschnittstelle angeboten werden, welcher die Glätte eines Übergangs von
einem Teil der Form zu einem anderen steuert. Die graphische Benutzerschnittstelle
kann auch dem Anwender ermöglichen,
den gewünschten
Oberflächengrad
auf dem Maschengitter aufzutragen.
-
Alle
Eigenschaften, nicht nur die Punktpositionen, können zu verschiedenen und möglicherweise
variierenden Graden geglättet
werden.
-
Falten
und Diskontinuitäten
in Oberflächeneigenschaften
können
auch für
Oberflächenunterteilungen geraden
Grades richtig gehandhabt werden, indem für Oberflächenunterteilungen geraden
Grades bekannte Verfahren verwendet werden. Derzeitige Faltungsverfahren
ermöglichen
dem Anwender, Kanten mit einem Faltenwert zu markieren, welcher
die Faltenintensität
kennzeichnet. Während
des Glätten-Durchlaufs
wird eine Polygonzug-Unterteilung
entlang der Kanten mit Faltenwerten von ungleich Null durchgeführt. Die
endgültige berechnete
Position wird dann als eine lineare Interpolation zwischen dem aus
einem normalen Glättevorgang hervorgehenden
Wert und dem aus einer Polygonzug-Unterteilung hervorgehenden Wert festgelegt.
Die Menge an linearer Unterteilung wird durch den Faltenwert gesteuert.
-
Dieses
Verfahren kann nicht in der Simple-Prozedur der „Unified Reference" oder anderen Verfahren geraden
Grades angewendet werden, da sie den Dual-Arbeitsvorgang verwenden.
Die Kanten, welche die Falten in dem ursprünglichen Maschengitter definieren,
existieren nicht in dem Dual und daher können die geometrischen Falten
nicht dargestellt werden. Mit der Arbitrary_Degree_Subdivision Prozedur
existieren diese Kanten jedoch und Falten können erzeugt werden, indem
die Arbitrary-Degree_Subdivision_Polyline auf die Kanten angewendet
wird, welche als auf der Falte befindlich markiert sind. Dieses
Verfahren zur Handhabung von Falten kann jedoch weiter ausgebaut
werden, da die Topologie des Maschengitters unabhängig von
der Menge an Glätten
ist. Derzeitige Faltungsregeln sind gezwungen, Faltenkurven mit
ungeradem Grad zu erzeugen und zwischen dieser Kurve und einem normalen
Glätten
zu interpolieren. Jedoch können
mit dem hierin beschriebenen Verfahren Falten mit beliebigem Grad
erzeugt werden. Z.B. kann eine Oberfläche dritten Grades mit einer
Faltung zweiten Grades erzeugt werden. Zusätzlich, wie oben erwähnt, kann
der Faltungsgrad auch entlang des Polygonzuges variieren, welcher
die Faltung definiert. Faltungsregeln (wie jene in der Crease Reference
beschriebene) können
noch verwendet werden, um zwischen einem normalen Glätten und
der Faltungskurve zu interpolieren.
-
Derartige
Unterteilungsverfahren können
implementiert werden, indem ein Computerprogramm auf einem Computer
für allgemeine
Anwendung verwendet wird. Ein derartiges Computersystem schließt typischerweise
einen Prozessor, eine Eingabevorrichtung, eine Anzeigevorrichtung
und einen Speicher ein. Der Speicher speichert Software zum Durch führen der
verschiedenen oben beschriebenen Funktionen. Die Computeranzeigevorrichtung
zeigt eine Software-generierte Benutzerschnittstelle an, um einem
Anwender zu ermöglichen,
Daten einzugeben und eine unterteilte Oberfläche zu veranschaulichen. Das
Computerprogramm würde auf
einem Computer-lesbaren Medium gespeichert werden und von dem Computer
ausgeführt
werden, um den Computer zu veranlassen, die verschiedenen oben behandelten
Prozeduren und Arbeitsvorgänge
durchzuführen.
Ein Computerprogramm kann z.B. einen beliebigen oder mehrere Arbeitsvorgänge implementieren, welche
in dem in 6 beschriebenen Datenfluss gekennzeichnet
sind.
-
Das
Computersystem kann ein Computer für allgemeine Anwendung sein,
welcher von einer Anzahl von Computersystemherstellern lieferbar
ist, wie dies bei Fachleuten auf dem Gebiet wohlbekannt ist. Das Computersystem
führt ein
Betriebssystem aus, wie das WINDOWS Betriebssystem von Microsoft
Cooperation, das OS X Betriebssystem von Apple Computer, das SOLARIS
Betriebssystem von Sun Microsystems, Inc., das IRIX Betriebssystem
von Silicon Graphics, Inc. oder eine Version des UNIX Betriebssystems.
Die Erfindung ist nicht auf irgendein bestimmtes Computersystem
oder Betriebssystem beschränkt.
Der Speicher speichert Daten und Befehle. Der Speicher kann sowohl
einen flüchtigen
Speicher, wie ein RAM, und einen nicht flüchtigen Speicher, wie ein ROM,
eine magnetische Scheibe, eine optische Scheibe, eine CD-ROM oder ähnliches
einschließen.
Die Eingabevorrichtung ermöglicht
dem Anwender, mit dem Computersystem zu kommunizieren. Die Eingabevorrichtung
kann z.B. eines oder mehrere von einer Tastatur, einer Maus oder
einem Trackball einschließen.
Die Darstellungsvorrichtung stellt eine Benutzerschnittstelle dar.
Die Darstellungsvorrichtung kann z.B. eine Kathodenstrahlröhre (CRT
= Cathode Ray Tube), einen Flachbildschirm, oder irgendeine andere
Anzeigevorrichtung einschließen.
-
Nach
der Beschreibung einer beispielhaften Ausführungsform sollte es für Fachleute
offensichtlich sein, dass das vorangegangene lediglich erläuternd und
nicht beschränkend
ist, da es nur als Beispiel dargestellt worden ist. Zahlreiche Abänderungen
und andere Ausführungsformen
liegen im Handlungsspielraum eines Fachmanns in dem Gebiet und werden
als in den Schutzbereich der Erfindung fallend betrachtet.