DE602004001882T2 - Verfahren zur Unterteilung eines Maschengitters oder Polygonzuges - Google Patents

Verfahren zur Unterteilung eines Maschengitters oder Polygonzuges Download PDF

Info

Publication number
DE602004001882T2
DE602004001882T2 DE602004001882T DE602004001882T DE602004001882T2 DE 602004001882 T2 DE602004001882 T2 DE 602004001882T2 DE 602004001882 T DE602004001882 T DE 602004001882T DE 602004001882 T DE602004001882 T DE 602004001882T DE 602004001882 T2 DE602004001882 T2 DE 602004001882T2
Authority
DE
Germany
Prior art keywords
mesh
subdivision
polygon
degree
vertices
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
DE602004001882T
Other languages
English (en)
Other versions
DE602004001882D1 (de
Inventor
Ian F. Stewart
Andre R. Foisy
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Avid Technology Inc
Original Assignee
Avid Technology Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Avid Technology Inc filed Critical Avid Technology Inc
Publication of DE602004001882D1 publication Critical patent/DE602004001882D1/de
Application granted granted Critical
Publication of DE602004001882T2 publication Critical patent/DE602004001882T2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • G06T17/20Finite element generation, e.g. wire-frame surface description, tesselation

Landscapes

  • Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Computer Graphics (AREA)
  • Geometry (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Image Generation (AREA)
  • Meat, Egg Or Seafood Products (AREA)

Description

  • 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:
    Figure 00090001
    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:
    Figure 00090002
  • Die Prozedur kann nun wie folgt umstrukturiert werden, was zu der folgenden Prozedur führt, welche die gleichen Schritte wie Simple_Modified ausführt:
    Figure 00100001
  • 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:
    Figure 00100002
    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:
    Figure 00110001
    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:
    Figure 00120001
    wiederum ausgehend vom oben beschriebenen Simple_Modified_Rearranged, können Paare von Dual-Arbeitsvorgängen mit EvenSmoothMesh Arbeitsvorgängen ersetzt werden:
    Figure 00120002
    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:
    Figure 00130001
  • 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:
    Figure 00150001
    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.

Claims (13)

  1. Computerimplementiertes Verfahren zum Unterteilen eines Graphikelements, wobei das Graphikelement durch ein Maschengitter definiert wird, welches eine Vielzahl von Eckpunkten, eine Vielzahl von Kanten und eine oder mehrere Flächen aufweist, oder durch einen Polygonzug definiert wird, welcher eine Vielzahl von Eckpunkten und ein oder mehrere Segmente aufweist, wobei das Verfahren aufweist: lineares Vor-Unterteilen des Maschengitters oder Polygonzuges; und Durchführen der Schritte für jede aus einer Anzahl von gewünschten Unterteilungsstufen: lineares Unterteilen des Maschengitters oder Polygonzuges; und Glätten des linear unterteilten Maschengitters oder Polygonzuges für jeden aus einer Anzahl von Oberflächen- oder Kurvengraden abzüglich eins.
  2. Verfahren gemäß Anspruch 1, wobei die Gradanzahl eine gerade Zahl ist.
  3. Verfahren gemäß Anspruch 1, weiter aufweisend: Übertragen von mit dem Maschengitter oder dem Polygonzug verbundenen Eigenschaften auf das geglättete und linear unterteilte Maschengitter oder den Polygonzug.
  4. Verfahren gemäß Anspruch 2, weiter aufweisend: Kennzeichnen einer Kante des Maschengitters mit einem Faltenwert, welcher eine Faltenintensität kennzeichnet; Durchführen einer Polygonzug-Unterteilung entlang der mit dem Faltenwert gekennzeichneten Kante gemäß dem Faltenwert, um ein Ergebnis bereitzustellen; und Interpolieren zwischen dem geglätteten und linear unterteilten Maschengitter an der gekennzeichneten Kante und dem Ergebnis der Polygonzug-Unterteilung der gekennzeichneten Kante.
  5. Verfahren gemäß einem der vorhergehenden Ansprüche, wobei der Oberflächen- oder Kurvengrad eine Bruchzahl zwischen einer ersten und zweiten ganzen Zahl ist, und wobei das Glätten des linear unterteilten Maschengitters oder Polygonzuges aufweist: Glätten des linear unterteilten Maschengitters oder Polygonzuges, um ein Ergebnis bereitzustellen; Glätten des Ergebnisses; und Interpolieren zwischen dem Ergebnis und dem geglätteten Ergebnis gemäß der Bruchzahl.
  6. Verfahren gemäß einem der vorhergehenden Ansprüche, wobei jedem Eckpunkt eine Zahl zugeordnet wird, welche einen lokal an dem Eckpunkt gewünschten Zielgrad spezifiziert.
  7. Verfahren gemäß Anspruch 6, wobei für mindestens einen Eckpunkt die Zahl eine Bruchzahl ist.
  8. Verfahren gemäß Anspruch 6 oder Anspruch 7, wobei der Grad, welcher eine Anzahl von durchzuführenden Glättungsvorgängen definiert, für jeden Eckpunkt durch die Zahl definiert wird, welche dem Eckpunkt zugeordnet ist, und wobei die jedem Eckpunkt zugeordnete Zahl in dem Maschengitter oder dem Polygonzug variieren kann.
  9. Verfahren gemäß einem der Ansprüche 6 bis 8, wobei ein Eckpunkt, welcher von der linearen Unterteilung an dem Mittelpunkt einer Kante oder eines Segmentes eingebracht wird, mit einer Zahl verbunden ist, welche einen Oberflächen- oder Kurvengrad gemäß einer Durchschnittszahl von Eckpunkten spezifiziert, welche die Kante oder das Segment definieren.
  10. Verfahren gemäß einem der Ansprüche 6 bis 9, wobei einem Eckpunkt, welcher von der linearen Unterteilung an dem Schwerpunkt einer Fläche eingebracht wird, eine Zahl zugeordnet wird, welche den Oberflächengrad gemäß einer Durchschnittszahl von an den Eckpunkten der Fläche spezifizierten Graden spezifiziert.
  11. Computerprogramm oder Computerprogrammprodukt zum Unterteilen einer Oberfläche, welche durch ein Maschengitter mit einer Vielzahl von Eckpunkten, einer Vielzahl von Kanten und mit einer oder mehreren Flächen definiert wird, oder zum Unterteilen eines Polygonzuges mit einer Vielzahl von Eckpunkten und einem oder mehreren Segmenten, wobei das Computerprogramm oder Computerprogrammprodukt einen Softwarecode aufweist, welcher dafür geeignet ist, wenn er auf einer datenverarbeitenden Vorrichtung ausgeführt wird, die Schritte durchzuführen: lineares Vor-Unterteilen des Maschengitters oder Polygonzuges; lineares Unterteilen des vor-unterteilten Maschengitters oder Polygonzuges; wiederholtes Glätten des linear unterteilten, vor-unterteilten Maschengitters oder Polygonzuges für jeden aus einer Anzahl von Oberflächen- oder Kurvengraden abzüglich eins; und Wiederholen der Schritte des linearen Unterteilens und wiederholten Glättens für jede aus einer Anzahl von gewünschten Unterteilungsstufen.
  12. Computerprogramm oder Computerprogrammprodukt gemäß Anspruch 11, wobei der Softwarecode ferner dafür geeignet ist, ein Verfahren gemäß einem der Ansprüche 2 bis 10 durchzuführen.
  13. Vorrichtung zum Durchführen einer Unterteilung einer Oberfläche, welche durch ein Maschengitter mit einer Vielzahl von Eckpunkten, einer Vielzahl von Kanten und mit einer oder mehreren Flächen definiert wird, oder zum Durchführen einer Unterteilung eines Polygonzuges mit einer Vielzahl von Eckpunkten und einem oder mehreren Segmenten, wobei die Vorrichtung aufweist: Mittel zum linearen Vor-Unterteilen des Maschengitters oder Polygonzuges; Mittel zum wiederholten linearen Unterteilen des Maschengitters oder Polygonzuges und zum Glätten des linear unterteilten Maschengitters oder Polygonzuges für jede aus einer Anzahl von gewünschten Unterteilungsstufen, Mittel einschließend zum Glätten des linear unterteilten Maschengitters oder Polygonzuges für jeden aus einer Anzahl von Oberflächen- oder Kurvengraden abzüglich eins.
DE602004001882T 2003-01-20 2004-01-20 Verfahren zur Unterteilung eines Maschengitters oder Polygonzuges Expired - Fee Related DE602004001882T2 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/347,922 US7617079B2 (en) 2003-01-20 2003-01-20 Unified subdivision for arbitrary and partial degree surfaces and curves with consistent property propagation
US347922 2003-01-20

Publications (2)

Publication Number Publication Date
DE602004001882D1 DE602004001882D1 (de) 2006-09-28
DE602004001882T2 true DE602004001882T2 (de) 2007-03-08

Family

ID=32594901

Family Applications (1)

Application Number Title Priority Date Filing Date
DE602004001882T Expired - Fee Related DE602004001882T2 (de) 2003-01-20 2004-01-20 Verfahren zur Unterteilung eines Maschengitters oder Polygonzuges

Country Status (4)

Country Link
US (1) US7617079B2 (de)
EP (1) EP1439494B1 (de)
CA (1) CA2455285A1 (de)
DE (1) DE602004001882T2 (de)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8687917B2 (en) * 2005-05-02 2014-04-01 Agency For Science, Technology And Research Method and apparatus for registration of an atlas to an image
US9147288B1 (en) 2006-11-08 2015-09-29 Lucasfilm Entertainment Company Ltd. Subdivision of surfaces approximation
US8393377B2 (en) 2011-02-18 2013-03-12 Superior Communications, Inc. Protective material applicator device
US8905107B2 (en) 2011-02-18 2014-12-09 Superior Communications Protective material applicator device
US9010396B2 (en) 2011-02-18 2015-04-21 Superior Communications, Inc. Protective material applicator device
US9918418B2 (en) 2011-02-18 2018-03-13 Superior Communications, Inc. Protective material applicator device
US9033019B2 (en) 2011-02-18 2015-05-19 Superior Communications, Inc. Protective material applicator device
US8326383B1 (en) * 2011-05-24 2012-12-04 Superior Communications Adhesive case for a mobile communication device
US9047704B2 (en) * 2012-03-27 2015-06-02 IntegrityWare, Inc. Method for filleting 3D mesh edges by subivision
KR20180065135A (ko) * 2016-12-07 2018-06-18 삼성전자주식회사 셀프 구조 분석을 이용한 구조 잡음 감소 방법 및 장치
US11481974B2 (en) * 2020-01-22 2022-10-25 Vntana, Inc. Mesh optimization for computer graphics

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5636338A (en) * 1993-01-29 1997-06-03 Silicon Graphics, Inc. Method for designing curved shapes for use by a computer
US5963209A (en) * 1996-01-11 1999-10-05 Microsoft Corporation Encoding and progressive transmission of progressive meshes
US6078331A (en) * 1996-09-30 2000-06-20 Silicon Graphics, Inc. Method and system for efficiently drawing subdivision surfaces for 3D graphics
US6130673A (en) * 1997-04-18 2000-10-10 Silicon Graphics, Inc. Editing a surface
US6037949A (en) * 1997-08-04 2000-03-14 Pixar Animation Studios Texture mapping and other uses of scalar fields on subdivision surfaces in computer graphics and animation
US6222553B1 (en) * 1997-08-04 2001-04-24 Pixar Animation Studios Hybrid subdivision in computer graphics
US6300960B1 (en) * 1997-08-04 2001-10-09 Pixar Animation Studios Realistic surface simulation in computer animation
US6204860B1 (en) * 1998-07-02 2001-03-20 Silicon Graphics, Inc. Method and apparatus for geometric model deformation using wires
US6256038B1 (en) * 1998-12-10 2001-07-03 The Board Of Trustees Of The Leland Stanford Junior University Parameterized surface fitting technique having independent control of fitting and parameterization
US6356263B2 (en) * 1999-01-27 2002-03-12 Viewpoint Corporation Adaptive subdivision of mesh models
US7227545B2 (en) * 2002-05-24 2007-06-05 Autodesk, Inc. Unified subdivision scheme for polygonal modeling

Also Published As

Publication number Publication date
EP1439494B1 (de) 2006-08-16
DE602004001882D1 (de) 2006-09-28
US20040143426A1 (en) 2004-07-22
CA2455285A1 (en) 2004-07-20
EP1439494A3 (de) 2005-02-16
EP1439494A2 (de) 2004-07-21
US7617079B2 (en) 2009-11-10

Similar Documents

Publication Publication Date Title
DE69815687T2 (de) Verfahren und vorrichtung zur texturabbildung und andere anwendungen von skalarfeldern auf unterteilungsoberflächen in rechnergraphik und animation
DE60032832T2 (de) Darstellung einer gekrümmten Oberfläche in mehreren Auflösungen
DE69725487T2 (de) Gitternetze mit veränderbarer Auflösung
DE69830767T2 (de) Verfahren und Vorrichtung zum Zusammensetzen geschichteter synthetischer graphischer Filter
DE60026197T2 (de) Detailgerichtete hierarchische Distanzfelder in der Objektmodellierung
DE69727200T2 (de) Verfahren und Program zur Erzeugung und Modifizierung von Kurven auf einen Rechnerbildschirm
DE69927738T2 (de) Verfahren und Vorrichtung zum Editieren von skizzierten Kurven
DE69534331T2 (de) Verfahren und Vorrichtung zur Hervorhebung der Einzelheit einer Baumstruktur
DE69534695T2 (de) Verfahren und Vorrichtung zum Erzeugen von Mustern
DE102005050846A1 (de) Perspektiveneditierwerkzeuge für 2-D Bilder
DE602004011749T2 (de) Umschlagsdeformation mittels unterteilten Oberflächen
DE602004001882T2 (de) Verfahren zur Unterteilung eines Maschengitters oder Polygonzuges
DE102007021711A1 (de) System und Verfahren zum Identifizieren von ursprünglichen Entwurfselementen unter Benutzung von 3D-Abtastdaten
DE102007021697A1 (de) System und Verfahren für Gitter- und Körperhybridmodellierung unter Benutzung von 3D-Abtastdaten
DE102007043923A1 (de) System und Verfahren zum Berechnen von Verbundflächen unter Verwendung von 3D-Abtastdaten
WO2005103850A1 (de) Bestimmung von prozess-operationen zur beschreibung von umformprozessen an einem umformteil
DE19807013A1 (de) Volumetrisches Vorabschneidungsverfahren, das eine minimale Anzahl von Abtastpunkten durch ein Volumen gewährleistet
DE69915837T2 (de) Parametrische Flächenauswertung im Eigenraum der Unterteilungsmatrix eines irregulären Flächenstücks
DE69830766T2 (de) Verfahren und Vorrichtung zum Bestimmen des Anwendungsumfangs geschichteter synthetischer graphischer Filter
DE102022112888A1 (de) Benutzerschnittstellen und Verfahren zum Erzeugen eines neuen Artefakts auf der Grundlage vorhandener Artefakte
DE19581872B4 (de) Dreidimensionales Graphikaufbereitungssystem
DE112011105126T5 (de) Texturkartierungsvorrichtung
AT525294A1 (de) Verfahren zum Erzeugen einer hierarchischen Datenstruktur, hierarchische Datenstruktur sowie Verfahren zum Streamen von dreidimensionalen Objekten
EP1386287A2 (de) Bildverarbeitungsverfahren
DE69910980T2 (de) Antialiasing mit unterabtastung für textur-raender

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8339 Ceased/non-payment of the annual fee