-
HINTERGRUND
-
Diese Beschreibung betrifft die Oberflächenmodellierung in Computergrafikanwendungen, wie etwa computergenerierte Animation und/oder computergestütztes Design von physikalischen Strukturen, die unter Anwendung von additiver Fertigung, subtraktiver Fertigung und/oder anderen Fertigungssystemen und - techniken hergestellt werden sollen.
-
Computergrafikanwendungen umfassen verschiedene Softwareprodukte und/oder -dienste, die die Generierung von Darstellungen dreidimensionaler (3D) Objekte unterstützen, die zur Erzeugung von den Objekten entsprechenden physischen Strukturen, zur Visualisierung von Szenen auf Anzeigerahmen, zur Animation und Videowiedergabe usw. verwendet werden können. Computer Aided Design (CAD)-Software wurde zur 3D-Darstellung von Objekten entwickelt und angewendet und Computer Aided Manufacturing (CAM)-Software wurde zur Herstellung der physikalischen Strukturen dieser Objekte entwickelt und angewendet, z. B. unter Verwendung von Computer Numeric Control (CNC)-Fertigungstechniken. Computer Aided Industrial Design (CAID)-Programme sind eine Untergruppe von CAD-Softwareprogrammen, die die Generierung von Darstellungen von 3D-Objekten unterstützen, wobei der Schwerpunkt auf technischen Aspekten der Designmethodik zur Darstellung organischer Formen und komplexer Kurven liegt. Computer-Aided Engineering (CAE)-Software unterstützt technische Analyseaufgaben und ermöglicht es Benutzern, Simulations-, Validierungs-, Bewertungs- und Optimierungsaufgaben im Zusammenhang mit der Herstellung physikalischer Einheiten unter Verwendung von CNC-Fertigungstechniken durchzuführen.
-
Normalerweise speichert CAD-Software die 3D-Darstellungen der Geometrie der modellierten Objekte unter Verwendung eines Grenzdarstellungs-(Boundary Representation, B-Rep)-Formats. Ein B-Rep-Modell ist ein Satz von verbundenen Oberflächenelementen, die Grenzen zwischen einem Festkörperbereich und einem Nicht-Festkörperbereich des modellierten 3D-Objekts festlegen. In einem B-Rep-Modell (oft einfach als B-Rep bezeichnet) wird die Geometrie im Computer im Gegensatz zu den diskreten und angenäherten Oberflächen einer Netzmodellgeometrie, mit denen die Arbeit in einem CAD-Programm schwierig sein kann, mit glatten und präzisen mathematischen Oberflächen gespeichert. Andere Arten von in CAD-Programmen zur Anwendung kommenden Modellen mit glatten Oberflächen umfassen neben anderen Beispielmodellen Non-Uniform Rational Basis Splines (NURBS), Non-Uniform Catmull-Clark (NURCCS)-Oberflächen, Catmull-Clark-Unterteilungsoberflächen und T-Splines.
-
NURBS ist eine üblicherweise in 3D-Computergrafikanwendungen (z. B. CAD- , CAM- und CAE-Produkten) als primäre Darstellung von Oberflächen verwendete Darstellung der Modellierung glatter Oberflächen, die Teil verschiedener branchenweiter Standards ist. NURBS-Oberflächenmodelle werden üblicherweise in der Computergrafik zur Darstellung von Kurven und Oberflächen verwendet. Eine NURBS-Oberfläche ist eine geometrische Darstellung einer glatten Oberfläche, wobei die NURBS-Oberfläche durch ihren Grad, gewichtete Kontrollscheitelpunkte und Knotenvektor beschrieben wird. NURBS-Oberflächen sind eine Verallgemeinerung von Bezieroberflächen.
-
Computergrafikanwendungen umfassen außerdem Computeranimationsprogramme und Videoproduktionsanwendungen, die 3D-Darstellungen von sich bewegenden Objekten generieren. Bei 3D-Computergrafikanwendungen ist eine Subdivision Surface eine geometrische Darstellung einer glatten Oberfläche, bei der die glatte Oberfläche durch ein stückweises lineares Polygonnetz definiert ist. Die glatte Oberfläche wird aus dem Polygonnetz unter Anwendung eines vordefinierten Verfeinerungsschemas berechnet, das die Grenze der rekursiven Unterteilung jeder Polygonfläche in kleinere Flächen bestimmt, die die glatte Oberfläche besser annähern. Bei einigen Subdivision Surface-Anwendungen wird die Grenzfläche statt durch rekursive Prozeduraufrufe direkt unter Anwendung bekannter Techniken berechnet. Subdivision Surfaces werden häufig zur Erstellung und endgültigen Wiedergabe von Charakterformen in Computeranimationen verwendet.
-
Computergrafik-Softwareanwendungen können in Verbindung mit subtraktiven Fertigungssystemen und -techniken, wie z. B. CNC-Maschinenschneiden, Elektrodenentladungsbearbeitung, chemischer Bearbeitung und Wasserstrahlbearbeitung, zum Erzeugen physikalischer Einheiten aus den entworfenen 3D-Modellen verwendet werden. Zum Beispiel wurde CAD-Software in Verbindung mit additiven Fertigungssystemen und -techniken, die auch als Solid-Free-Form-Fertigung oder 3D-Druck bekannt sind, wie z. B. Fused Filament Fabrication (FFF) und Selective Laser Sintering (SLS), verwendet. Außerdem wurde CAD-Software zur Durchführung einer automatischen Erzeugung einer 3D-Geometrie (generatives Design) für ein Teil oder ein oder mehrere Teile in einem größeren System von herzustellenden Teilen entwickelt. Die Ausgabe von generativen Design-Algorithmen ist typischerweise ein diskretisiertes Polygonnetz, ähnlich der Ausgabe von Objektscansystemen und -techniken.
-
Um in einer Computergrafikanwendung verwendet werden zu können, werden solche Polygonnetze typischerweise in modellierte Oberflächen umgewandelt, die aus einem Kontrollnetz und Kontrollscheitelpunkten bestehen, die glatte Oberflächen-Patches der komplexen modellierten Oberfläche definieren, z. B. wird ein Polygonnetz in ein komplexes T-Spline-Oberflächenmodell umgewandelt.
-
KURZDARSTELLUNG
-
Diese Beschreibung betrifft die Oberflächenmodellierung bei Computergrafikanwendungen, wie etwa computergenerierte Animation und computergestütztes Design von physikalischen Strukturen, die unter Anwendung von additiver Fertigung, subtraktiver Fertigung und/oder anderen Fertigungssystemen und - techniken hergestellt werden sollen, bei denen Grenzflächen mit mindestens C1-Stetigkeit aus polygonalen Kontrollnetzen erzeugt werden, z. B. für eine Subdivision Surface. Bestimmte Ausführungsformen des in der vorliegenden Beschreibung beschriebenen Gegenstands können zur Realisierung eines oder mehrerer der folgenden Vorteile implementiert werden.
-
Subdivision Surfaces als geometrische Darstellung einer glatten Oberfläche, bei der die glatte Oberfläche durch ein stückweises lineares Polygonnetz definiert ist, können um außerordentliche Punkte (z. B. ungleichmäßige und gleichmäßige außerordentliche Punkte) herum an Oberflächendefekten leiden. Standard-Subdivision-Techniken können bimodale Mischfunktionen um ungleichmäßige Sternpunkte erzeugen. Diese bimodalen Mischfunktionen können mit Grenzflächendefekten (z. B. Spitzen und Tälern) um außerordentliche Punkte herum assoziiert sein, wenn eine Unterteilung es dem Kontrollnetz erlaubt, in einem Bereich um den außerordentlichen Punkt herum zu einer Linie zu kollabieren.
-
Bei einigen Implementierungen können Polygonnetze in modellierte Oberflächen umgewandelt werden, die aus einem Kontrollnetz und Kontrollscheitelpunkten bestehen, die glatte Oberflächen-Patches der komplexen modellierten Oberfläche definieren. Obwohl die einzelnen Oberflächen-Patches glatte und präzise mathematische Oberflächen sind, kann das größere komplexe Oberflächenmodell unter Oberflächendefekten, z. B. Oberflächenerhebungen, leiden. Ansätze zum Glätten von 3D-Oberflächenmodellen können bei solchen komplexen Oberflächen nicht gut funktionieren, da sich bei einer Reduktion der Hochfrequenzvariation der Eingabeoberflächen ein Verlust von Details in der resultierenden komplex modellierten Oberfläche zeigen kann.
-
Das Auftreten solcher Defekte lässt sich vermeiden (oder zumindest weitgehend reduzieren), indem Eigenpolyeder-abgeleitete Regeln zum Unterteilen eines willkürlichen polygonalen Kontrollnetzes ohne Einschränkungen auf der zugrundeliegenden Oberfläche angewendet werden, wie in der vorliegenden Beschreibung beschrieben. Eigenpolyederdaten, die für eine Eigenpolyederstruktur um einen außerordentlichen Punkt definiert sind, können Unterteilungen erleichtern, wenn das zugrunde liegende Polygonnetz gleiche erste Knotenabstände für erste Kanten und zweite Knotenabstände für zweite Kanten aufweist, wobei die ersten Kanten direkt mit dem außerordentlichen Punkt verbunden sind und sich innerhalb des dem Eigenpolyeder entsprechenden Bereichs befinden und die zweiten Kanten direkt mit den ersten Kanten verbunden sind und sich außerhalb des dem Eigenpolyeder entsprechenden Bereichs befinden. Daher können Eigenpolyederdaten zum Definieren von Regeln zum Unterteilen gleichmäßiger Oberflächen verwendet werden, da erste und zweite Knotenintervalle gleich sind, und möglicherweise nicht direkt, zumindest nicht ohne Anpassungen oder die Notwendigkeit zusätzlicher Verarbeitungsschritte, z. B. Vorverarbeitungsschritte, auf nicht einheitliche Oberflächen zu deren Umwandlung in eine einheitliche anwendbar sein. Die Eigenpolyederdaten können verwendet werden, um Unterteilungen zu erlauben, die das Eigenpolyeder skalieren und verschieben, wodurch verhindert wird, dass das Kontrollnetz im Bereich des außerordentlichen Punkts zu einer Linie kollabiert. Daher können gemäß den Implementierungen der vorliegenden Anmeldung zur Verwendung von Eigenpolyederdaten und zu deren Anwendung auf ein beliebiges Netz mit entweder gleichmäßigen oder ungleichmäßigen Bereichen um außerordentliche Punkte Verfeinerungsregeln basierend auf Anpassungen an den Daten für das um den außerordentlichen Punkt herum definierte Eigenpolyeder (entweder gleichförmig oder nicht gleichförmig) definiert werden, um Flächen um den außerordentlichen Punkt am Eigenpolyeder zu skalieren und zu verschieben, sodass nach einer einzigen Unterteilung ein erzeugtes verfeinertes Netz einer Eigenpolyederstruktur entspricht.
-
Somit kann basierend auf Eigenpolyederdaten und Anpassungsregeln für Unterteilungen in einem Bereich um einen außerordentlichen Punkt herum ein Verfahren durchgeführt werden, das das Unterteilen eines beliebigen Kontrollnetzes mit gleichmäßigen und/oder ungleichmäßigen außerordentlichen Punkten umfasst. Durch diese Unterteilungen kann ein verfeinertes Kontrollnetz generiert werden, das eine bessere Genauigkeit und Exaktheit bei der Darstellung der glatten Oberfläche aufweist. Durch Verbesserungen bei der Genauigkeit der Darstellung einer glatten Oberfläche eines Objekts lassen sich außerdem Verbesserungen für den Herstellungsprozess des Objekts bereitstellen. Ferner kann die durchgeführte Unterteilung Anpassungen an einer Teilmenge von Flächenpunkten und Kantenpunkten für Flächen um den außerordentlichen Punkt herum umfassen, wie in den Eigenpolyederdaten definiert, wobei solche Anpassungen mit gleichmäßigen und ungleichmäßigen Oberflächen um außerordentliche Punkte herum kompatibel sind. Daher sind die bereitgestellten Unterteilungen für beliebige Oberflächen ohne zusätzliche Vorverarbeitungsschritte flexibler und effizienter zu implementieren.
-
Die Einzelheiten von einer oder mehreren Ausführungsformen des in diesem Dokument beschriebenen Gegenstands sind in den begleitenden Figuren und der nachfolgenden Beschreibung aufgeführt. Weitere Merkmale, Aspekte und Vorteile der Erfindung erschließen sich aus der Beschreibung, den Zeichnungen und den Ansprüchen.
-
Figurenliste
-
- 1 zeigt ein Beispiel eines Systems, mit dem sich eine glatte Oberfläche zur Ausgabe aus einem verfeinerten Kontrollnetz generieren lässt, das durch Unterteilen eines Kontrollnetzes unter Verwendung von Eigenpolyederdaten und Anpassungsregeln zum Anpassen eines Satzes von Flächen- und Kantenpunkten während der Unterteilung erzeugt wird
- 2 zeigt ein beispielhaftes polygonales Kontrollnetz für eine glatte Oberfläche mit einem außerordentlichen Punkt.
- 3 zeigt ein beispielhaftes Eigenpolyeder, mit dem Anpassungsregeln zum Unterteilen eines polygonalen Kontrollnetzes gemäß Implementierungen der vorliegenden Offenbarung festgelegt werden.
- 4 zeigt ein Beispiel eines Prozesses zum Erzeugen einer glatten Oberfläche aus einem verfeinerten Kontrollnetz basierend auf Unterteilung(en) unter Verwendung von Daten, die ein Eigenpolyeder um einen außerordentlichen Punkt definieren, gemäß Implementierungen der vorliegenden Offenbarung.
- 5A zeigt ein Diagramm, das einen abgeleiteten Flächenpunkt basierend auf einer Anpassung gemäß Anpassungsregeln darstellt, die in einem entsprechenden Flächenraum gemäß Implementierungen der vorliegenden Offenbarung definiert sind.
- 5B zeigt ein Diagramm, das einen abgeleiteten Kantenpunkt basierend auf einer Anpassung gemäß Anpassungsregeln darstellt, die in einem entsprechenden Kantenraum gemäß Implementierungen der vorliegenden Offenbarung definiert sind.
- 6 zeigt ein Diagramm, das das Unterteilen eines polygonalen Kontrollnetzes um einen außerordentlichen Punkt basierend auf Verfeinerungsregeln gemäß Implementierungen der vorliegenden Offenbarung darstellt.
- 7 zeigt ein beispielhaftes 5-Eck und eine beispielhafte Unterteilung des 5-Ecks unter Einschluss eines außerordentlichen Punkts und eines Satzes von Flächenpunkten.
- 8 zeigt ein Beispiel eines Prozesses zum Erzeugen einer glatten Oberfläche aus einem verfeinerten Kontrollnetz basierend auf Unterteilungen unter Verwendung von Daten, die ein Eigenpolyeder um eine N-Eck-Region eines Kontrollnetzes definieren, gemäß Implementierungen der vorliegenden Offenbarung.
- 9A und 9B zeigen Beispiele polygonaler Kontrollnetze, die zwei außerordentliche Punkte umfassen, die entweder durch eine einzelne Fläche oder eine Kante verbunden sind und die verwendet werden, um ein verfeinertes Kontrollnetz basierend auf Daten zu generieren, die zwei Eigenpolyeder um die außerordentlichen Punkte herum definieren, gemäß Implementierungen der vorliegenden Offenbarung.
- 10 ist eine graphische Abbildung, die ein Beispiel zum Erzeugen einer krümmungsstetigen Grenzfläche eines polygonalen Kontrollnetzes zeigt.
- 11A ist ein beispielhaftes polygonales Kontrollnetz mit einem außerordentlichen Punkt.
- 11B ist das beispielhafte polygonale Kontrollnetz von FIG. IIA, das Unterteilungen umfasst, die für Flächen definiert sind, bei denen es sich um Nachbarn der ersten und zweiten Ebene zu dem außerordentlichen Punkt handelt, um ein verfeinertes Kontrollnetz zu generieren.
- 12 ist das beispielhafte polygonale Kontrollnetz von FIG. IIA, das Unterteilungen umfasst, die zum Generieren eines verfeinerten Kontrollnetzes mit einer reduzierten Anzahl von Unterteilungen in Übereinstimmung mit Implementierungen der vorliegenden Offenbarung definiert sind.
- 13 ist eine schematische Darstellung eines Datenverarbeitungssystems mit einer Datenverarbeitungsvorrichtung, die als Client oder als Server programmiert werden kann.
-
Gleiche Bezugszeichen und Bezeichnungen in den verschiedenen Zeichnungen bezeichnen gleiche Elemente.
-
AUSFÜHRLICHE BESCHREIBUNG
-
In der vorliegenden Offenbarung werden verschiedene Werkzeuge und Techniken zum Generieren glatter Oberflächen zur Ausgabe durch eine Computergrafikanwendung beschrieben. Die glatten Oberflächen können basierend auf einem verfeinerten Kontrollnetz generiert werden, das durch Unterteilen eines erhaltenen polygonalen Kontrollnetzes basierend auf der Verwendung von Eigenpolyederdaten, die für einen außerordentlichen Punkt definiert sind, und der Anwendung von Anpassungsregeln zur Bestimmung von Flächenpunkten, Kantenpunkten und Scheitelpunkten, die in Regionen um den außerordentlichen Punkt definiert sind, generiert wird.
-
1 zeigt ein Beispiel eines Systems 100, das zum Generieren einer glatten Oberfläche zur Ausgabe aus einem verfeinerten Kontrollnetz verwendbar ist, das durch Unterteilen eines Kontrollnetzes unter Verwendung von Eigenpolyederdaten und Anpassungsregeln zum Anpassen eines Satzes von Flächen- und Kantenpunkten während der Unterteilung erzeugt wird. Ein Computer 110 umfasst einen Prozessor 112 und einen Speicher 114, und der Computer 110 kann mit einem Netzwerk 140 verbunden sein, das ein privates Netzwerk, ein öffentliches Netzwerk, ein virtuelles privates Netzwerk usw. sein kann. Der Prozessor 112 kann als einer oder mehrere Hardwareprozessoren vorliegen, die jeweils mehrere Prozessorkerne enthalten können. Der Speicher 114 kann sowohl einen flüchtigen als auch einen nichtflüchtigen Speicher umfassen, wie beispielsweise einen Direktzugriffsspeicher (RAM) und einen Flash-RAM Der Computer 110 kann verschiedene Arten von Computerspeichermedien und -geräte umfassen, die den Speicher 114 zur Speicherung von Anweisungen von Programmen, die auf dem Prozessor 112 laufen, umfassend einem oder mehreren CAD-Programmen 116, die dreidimensionale (3D) Modellierungsfunktionen implementieren, umfassend einer Unterteilungstechnik, die eine krümmungsstetige Grenzfläche durch Unterteilen eines polygonalen Kontrollnetzes gemäß Verfeinerungsregeln basierend auf Eigenpolyederdaten und einer Anpassungsregel erzeugt, umfassen können.
-
CAD bezieht sich im vorliegenden Dokument auf jedes geeignete Programm, das zum Entwerfen von physischen Strukturen verwendet wird, die vorgegebene Designanforderungen erfüllen, unabhängig davon, ob das Programm in der Lage ist, eine Schnittstelle mit einer bestimmten Fertigungsausrüstung zu bilden und/oder diese zu steuern. Somit kann das(die) CAD-Programm(e) 116 CAID-Programm(e), CAE-Programm(e), CAM-Programm(e) usw. umfassen. Das(die) Programm(e) 116 können lokal auf dem Computer 110, entfernt auf einem Computer eines oder mehrerer entfernter Computersysteme 150 (z. B. einem oder mehreren Serversystemen eines oder mehrerer Drittanbieter, auf die der Computer 110 über das Netzwerk 140 zugreifen kann) oder sowohl lokal als auch entfernt laufen. Somit kann ein CAD-Programm 116 aus zwei oder mehr Programmen bestehen, die kooperativ auf zwei oder mehreren separaten Computerprozessoren arbeiten, indem ein lokal auf dem Computer 110 operierendes Programm 116 Verarbeitungsvorgänge (z. B. Unterteilungsoberfläche, NURBS- und NURCCS-Verarbeitung, Anpassungen bei Unterteilungsvorgängen usw.) „in die Cloud“ auslagern kann, indem ein oder mehrere Programme 116 auf einem oder mehreren Computern 150 die ausgelagerten Verarbeitungsvorgänge ausführen.
-
Das/die CAD-Programm(e) 116 stellen eine Benutzerschnittstelle (UI) 122 auf einer Anzeigevorrichtung 120 des Computers 110 dar, die unter Verwendung einer oder mehrerer Eingabevorrichtungen 118 des Computers 110 (z. B. Tastatur und Maus) bedient werden kann. Obwohl in 1 als getrennte Geräte dargestellt, können die Anzeigevorrichtung 120 und/oder die Eingabevorrichtungen 118 auch miteinander und/oder mit dem Computer 110 integriert sein, wie beispielsweise in einem Tablet-Computer (z. B. kann ein Touchscreen ein Ein-/Ausgabegerät 118, 120 sein). Darüber hinaus kann der Computer 110 ein Virtual-Reality-(VR)- oder Augmented-Reality-(AR)-System umfassen oder Teil davon sein. Zum Beispiel können die Ein-/Ausgabegeräte 118, 120 einen VR/AR-Eingabehandschuh 118a und/oder ein VR/AR-Headset 120a umfassen.
-
Wie oben angemerkt, implementieren das/die CAD-Programm(e) 116 3D-Modellierungsfunktionen, was bedeutet, dass ein 3D-Modell 132 unter Verwendung des CAD-Programms/der CAD-Programme 116 erstellt werden kann. Das(die) CAD-Programm(e) 116 kann(können) zur Unterstützung beim Erstellen des 3D-Modells 132 eine physikalische Simulation (lokal und/oder durch entfernten Prozeduraufruf) implementieren. Häufig sind physikalische Simulationen wie Finite Element Analysis (FEA), Computational Fluid Dynamics (CFD), Akustik/Geräuschunterdrückung, Wärmeleitung und/oder computergestützte Spritzgusssimulationen integrale Bestandteile der CAD-basierten Produktentwicklung. Das(Die) CAD-Programm(e) 116 können genaue geometrische Beschreibungen des Konstruktionsmodells erstellt werden, während physikalische Simulationen eine verbesserte Leistung ohne zeitaufwendiges physikalisches Testen ermöglichen.
-
Das/die CAD-Programm(e) 116 kann/können verwendet werden, um Benutzeroberflächenelemente bereitzustellen, die es dem Benutzer ermöglichen, Eingaben für die physikalische(n) Simulation(en) vorzugeben, wie beispielsweise Materialien und Lastfälle für das/die 3D-Modell(e) 132, wobei die Lastfälle Lasten in unterschiedlichen Richtungen definieren, die von einem zu entwickelnden Teil während der Verwendung des Teils getragen werden sollen. Somit kann ein Benutzer 190 mit der UI 122 des CAD-Programms bzw. der CAD-Programme 116 zusammenwirken, umfassend der Erstellung einer vollständigen mechanischen Problemdefinition für ein herzustellendes Teil, um 3D-Modelle 132, die im/in 3D-Modelldokument(en) 130 gespeichert werden können, herzustellen und zu modifizieren. Im Beispiel von FIG. In 1 ist das 3D-Modell 132 von einem bestimmten Autodesign, hierbei handelt es sich aber lediglich eines von vielen möglichen 3D-Modellen, die sich unter Anwendung der hierin beschriebenen Systeme und Techniken entwerfen lassen.
-
In dem gezeigten Beispiel zeigt das auf der Anzeigevorrichtung 120 in der UI 122 gerenderte 3D-Modell 132 sowohl das verfeinerte Kontrollnetz als auch daraus generierte glatte Oberflächen. Wie weiter unten ausführlicher beschrieben wird, wird die glatte Oberfläche für das 3D-Modell 132 aus einem verfeinerten Kontrollnetz generiert, das durch Unterteilen eines Kontrollnetzes generiert wird. Das unterteilte Kontrollnetz umfasst einen außerordentlichen Punkt (gleichmäßig oder ungleichmäßig). Das Kontrollnetz kann unter Verwendung von Daten, die ein Eigenpolyeder definieren, und Anpassungen an Fläche und Kantenpunkt gemäß Implementierungen der vorliegenden Offenbarung unterteilt werden. Die generierte glatte Oberfläche ist eine Grenzfläche mit mindestens C1-Stetigkeit. Wie hier verwendet, bezieht sich ein „außerordentlicher Bereich“ auf einen Abschnitt eines polygonalen Kontrollnetzes, der einen außerordentlichen Punkt oder einen N-Eck-Bereich umfasst.
-
Ein außerordentlicher Punkt ist (1) ein Scheitelpunkt auf dem Kontrollnetz, an dem sich n Kontrollpolygonflächen im Netzinneren treffen, wobei n ungleich vier ist, und außerdem (2) ein Scheitelpunkt auf dem Kontrollnetz, an dem sich n Kontrollpolygonflächen an der Netzgrenze treffen, wobei n größer als zwei ist. Ein außerordentlicher Punkt kann einem „Sternpunkt“ zugeordnet werden. Der „Sternpunkt“ kann als ein entsprechender Punkt auf der Grenzfläche definiert werden, an dem sich (1) n Oberflächen-Patches im Flächeninneren treffen und n ungleich vier ist und/oder (2) n Oberflächen-Patches an der Oberflächengrenze treffen und n größer als zwei ist. Ferner bezieht sich ein „N-Eck“ auf ein Kontrollpolygon des Unterteilungsoberflächen-Kontrollnetzes mit N Scheitelpunkten, wobei N ungleich vier ist. Sowohl außerordentliche Punkte als auch n-Ecke im Kontrollnetz führen zu Sternpunkten auf der Grenzfläche.
-
Bei einigen Implementierungen können Computergrafikanwendungen (z. B. CAD-Programm(e) 116) Objekte (z. B. herstellbare Objekte) durch Modelle komplexer Oberflächen darstellen. Solche Modelle umfassen zum Beispiel NURCS-Oberflächen und NURBS-Oberflächen. Die Modelle komplexer Oberflächen können als polygonale Kontrollnetze dargestellt werden, bei denen es sich um eine Annäherung an eine kontinuierliche Darstellung der herstellbaren Objekte handelt. Solche Modelle können mit Netzen definiert werden, die unterschiedliche Verfeinerungsstufen aufweisen. Bei einigen Implementierungen kann ein Modell einen Bereich aufweisen, in dem das Netz feiner ist, und einen anderen Bereich, in dem das Netz grob ist. Eine Verfeinerung des Kontrollnetzes lässt sich unter Anwendung von Verfeinerungsregeln für die Kontrollpunkte (z. B. ein Scheitelpunkt, ein Kantenpunkt, der auf einer Kante des Netzes liegt, das Kontrollpunkte verbindet, oder ein Flächenpunkt, der in der Mitte von Flächen eines Netzes liegt) eines Patch-Bereichs eines Netzes unter Erhalt eines verfeinerten Kontrollnetzes erzeugen. Die Verfeinerung des Kontrollnetzes kann durch Unterteilung(en) bestimmt werden, die auf den Eigenpolyederdaten und weiteren Anpassungsregeln basieren, um ein verfeinertes Kontrollnetz zu generieren. Solche Unterteilungen können mit NURCCS- und NURBS-Oberflächen kompatibel sein.
-
Bei einigen Implementierungen können Verfeinerungsregeln, die auf ungleichmäßige Oberflächen (z. B. NURCCS- und NURBS-Oberflächen) anwendet werden können, zu unerwünschten Merkmalen führen. Zum Beispiel kann das Verfeinern einer NURBS-Oberfläche in einem ungleichmäßigen Bereich eines außerordentlichen Punktes zu Diskontinuitäten der Oberflächentangente führen. Außerordentliche Punkte in Kontrollnetzen sind Scheitelpunkte mit einer anderen Wertigkeitszahl als vier (d. h. mit weniger als oder mehr als vier benachbarten Kantenpunkten). Bei einigen Implementierungen führen Oberflächentangentenunstetigkeiten unerwünschte Merkmale, wie z. B. Spitzen, in ein Oberflächenmodell ein, die das durch die Oberfläche dargestellte Objekt verzerren. Bei einigen Implementierungen, z. B. in einer NURCCS-Oberfläche, können Unterteilungen zur Bildung von zwei oder mehr lokalen Maxima aus einem Netz führen, das nur ein einziges lokales Maximum aufweist.
-
Bei einigen Implementierungen werden durch die Unterteilung des Kontrollnetzes in einem Bereich um einen außerordentlichen Punkt (d. h. einen außerordentlichen Punkt in einer ungleichmäßigen Oberfläche), die das Kollabieren des Bereichs des Netzes auf eine Linie unter Unterteilung beschränkt, unerwünschte Merkmale vermieden. Zum Beispiel kann es ein unerwünschtes Merkmal sein, beim Unterteilen des Kontrollnetzes zwei oder mehr lokale Maxima zu erreichen. Bei einigen Implementierungen können Daten für ein Eigenpolyeder um einen außerordentlichen Punkt generiert und zur Definition einer Verfeinerungsmatrix sowie zur Durchführung einer Unterteilungsoperation an dem Kontrollnetz verwendet werden, um gemäß der Verfeinerungsmatrix zu unterteilen.
-
Bei einigen Implementierungen kann ein Eigenpolyeder für Catmull-Clark-Unterteilungen und für einheitliche NURBS-Unterteilungen definiert werden. Eigenpolyederdaten können generiert werden, um ein zweidimensionales Netz darzustellen, das einen außerordentlichen Punkt als Anfangsscheitelpunkt in einer Ebene und eine Vielzahl von Anfangskantenpunkten in der Ebene umfasst, wobei die Anfangskantenpunkte in der Ebene bezogen auf den Anfangsscheitelpunkt angeordnet sind, basierend auf einer Wertigkeitszahl des Anfangsscheitelpunkts. Eigenpolyeder können für einen außerordentlichen Punkt bestimmt werden, wenn die ersten Knotenabstände für erste Kanten und die zweiten Knotenabstände für zweite Kanten gleich sind.
-
Bei einigen Implementierungen ist ein Polyeder P ein Eigenpolyeder einer unterteilungsaffinen Maske M, die einen Bereich lokal zu einer außerordentlichen Punktgeometrie darstellt, wenn MP eine Skalierung von P um einen Faktor λ erzeugt, gefolgt von einer Verschiebung T. Bei einigen Implementierungen kann der Polyeder P wiederholt durch M verfeinert werden, um den Kollaps von Kontrollpolygonflächen (z. B. Quads) zu vermeiden und somit zu verhindern, dass eine ungleichmäßige Skalierung zu Oberflächendefekten, z. B. zwei lokalen Maximumpunkten, führt.
-
Bei einigen Implementierungen können Daten für ein um einen außerordentlichen Punkt herum definiertes Eigenpolyeder zusammen mit Anpassungsregeln verwendet werden, um Verfeinerungen eines Kontrollnetzes zu definieren, das einen ungleichmäßigen außerordentlichen Punkt umfasst. Bei einigen Implementierungen kann das Verfeinern eines Modells einer komplexen Oberfläche (z. B. gleichmäßig oder ungleichmäßig) bereitgestellt werden, indem die Daten verwendet werden, die ein Eigenpolyeder um einen außerordentlichen Punkt definieren, sowie Anpassungsregeln, mit denen das verfeinerte Kontrollnetz generiert wird. Eine Teilmenge von Flächen- und Kantenpunkten für Flächen um den außerordentlichen Punkt herum, wie in den Daten für das Eigenpolyeder definiert, kann zur Generierung des verfeinerten Kontrollnetzes gemäß den Anpassungsregeln angepasst werden. Basierend auf der Verfeinerung unter Verwendung der das Eigenpolyeder definierenden Daten und der Anpassungsregeln werden erste Knotenintervalle (di) für erste Kanten und zweite Knotenintervalle (ei) für zweite Kanten innerhalb einer einzigen Unterteilung der einen oder mehreren Unterteilungen, die für das polygonale Kontrollnetz durchgeführt werden, um das verfeinerte Kontrollnetz zu erzeugen, gleich (innerhalb einer von der Computergrafik angewendeten numerischen Genauigkeit). Die ersten Kanten sind direkt mit dem außerordentlichen Punkt verbunden und befinden sich innerhalb eines Bereichs, der dem Eigenpolyeder am parametrisierten zweidimensionalen Raum entspricht, und die zweiten Kanten sind direkt mit den ersten Kanten verbunden und befinden sich außerhalb des Bereichs, der dem Eigenpolyeder am parametrisierten zweidimensionalen Raum entspricht.
-
Wenn Unterteilungen auf Daten für ein Eigenpolyeder um einen außerordentlichen Punkt in einem Kontrollnetz (z. B. gleichmäßiges oder ungleichmäßiges Netz in einem dreidimensionalen Raum) und Anpassungsregeln für Flächenpunkte und Kantenpunkte an entsprechenden Flächen- und Kantenräumen basieren, definiert ein gebildetes verfeinertes Kontrollnetz eine glatte Oberfläche, z. B. eine Grenzoberfläche, die mindestens C1-Stetigkeit aufweist, d. h. die erste Ableitung ist stetig. Das verfeinerte Kontrollnetz kann im Computer unter Verwendung verschiedener Modellierungsformate für glatte Oberflächen definiert werden. Zum Beispiel kann das Kontrollnetz neben anderen kontinuierlichen Oberflächen NURBS-, T-Splines-, SubDiv- und Catmull-Clark-Oberflächen umfassen.
-
Bei einigen Implementierungen stellt das verfeinerte Netz ein Oberflächenmodell dar, das kontinuierliche Tangentialebenen in einem Bereich um den außerordentlichen Punkt in dem verfeinerten Netz aufweist. Auf diese Weise wird die bereitgestellte glatte Oberfläche mit verbesserter Genauigkeit definiert. Durch Verbesserungen bei der Genauigkeit des Oberflächenmodells eines Objekts lassen sich außerdem auf einem solchen Oberflächenmodell basierende Verbesserungen für den Herstellungsprozess des Objekts bereitstellen.
-
Bei einigen Implementierungen wird es dem Benutzer 190 durch das(die) CAD-Programm(e) 116 ermöglicht, sowohl Polygonkontrollnetze zu erstellen und zu bearbeiten als auch iterativ verfeinerte Kontrollnetze durch das(die) CAD-Programm(e) 116 basierend auf Anpassungsregeln zu generieren, die in Bezug auf Daten definiert sind, die ein Eigenpolyeder um einen außerordentlichen Punkt des Kontrollnetzes bei einer vorherigen Iteration definieren.
-
Darüber hinaus kann(können) das(die) CAD-Programm(e) 116 bei einigen Implementierungen Fertigungssteuerungsfunktionen implementieren. Sobald der Benutzer 190 mit einem 3D-Modell 132 zufrieden ist, kann das 3D-Modell 132 als das(die) 3D-Modelldokument(e) 130 gespeichert und/oder zur Generierung einer anderen Darstellung des Modells (z. B. einer .STL-Datei für die additive Fertigung) verwendet werden. Dies kann auf Anforderung durch den Benutzer 190 oder im Lichte der Anforderung des Benutzers nach einer anderen Aktion erfolgen, wie etwa das Senden des 3D-Modells 132 an eine additive Fertigungsmaschine(n) (AM-Maschine(n)) und/oder subtraktive Fertigungsmaschine(n) (SM-Maschine(n)) 170 oder eine andere Fertigungsmaschine, die direkt oder über ein Netzwerk 140 mit dem Computer 110 verbunden sein kann, wie gezeigt. Dies kann einen Nachbearbeitungsprozess einschließen, der auf dem lokalen Computer 110 oder einem Cloud-Dienst ausgeführt wird, um das 3D-Modell 132 in ein elektronisches Dokument zu exportieren, auf dessen Basis hergestellt werden soll. Beachten Sie, dass ein elektronisches Dokument (das der Kürze halber einfach als Dokument bezeichnet wird) eine Datei sein kann, aber nicht unbedingt einer Datei entspricht. Ein Dokument kann in einem Teil einer Datei, der andere Dokumente enthält, in einer einzigen Datei, die dem fraglichen Dokument gewidmet ist, oder in mehreren koordinierten Dateien gespeichert werden.
-
In jedem Fall kann(können) das(die) CAD-Programm(e) 116 ein Dokument 160 (mit Werkzeugwegspezifikationen eines geeigneten Formats) für eine AM- und/oder SM-Maschine 170 bereitstellen, um eine physische Struktur zu erzeugen, die mindestens einem Teil des 3D-Modells 132 entspricht. Eine AM-Maschine 170 kann eine oder mehrere additive Fertigungstechniken anwenden, wie etwa granulare Techniken (z. B. Pulverbettschmelzen (PBF), selektives Lasersintern (SLS) und direktes Metall-Lasersintern (DMLS)), Extrusionstechniken (z. B. Fused Deposition Modeling (FDM), die AM zur Metallabscheidung umfassen kann). In einigen Fällen baut die AM-Maschine 170 die physische Struktur direkt und in einigen Fällen baut die AM-Maschine 170 eine Form zur Verwendung beim Gießen oder Schmieden der physischen Struktur. Außerdem kann der Benutzer 190 das 3D-Modell 132 zur späteren Verwendung speichern oder übertragen. Zum Beispiel können das(die) CAD-Programm(e) 116 das(die) Dokument(e) 130 speichern, das(die) das 3D-Modell 132 enthält(enthalten).
-
Eine SM-Maschine 170 kann eine CNC-Fräsmaschine (Computer Numerical Control) sein, wie etwa eine Mehrachsen-Multiwerkzeug-Fräsmaschine, die im Herstellungsprozess verwendet wird. Zum Beispiel kann(können) das(die) CAD-Programm(e) 116 CNC-Anweisungen für ein Werkzeugmaschinensystem 170 generieren, das mehrere Werkzeuge umfasst (z. B. Vollhartmetall-Rundwerkzeuge unterschiedlicher Größe und Form und Einsatzwerkzeuge unterschiedlicher Größe, die Metalleinsätze aufnehmen, um verschiedene Schnittflächen zu erstellen), die für verschiedene Bearbeitungen verwendbar sind. Somit stellt das(die) CAD-Programm(e) 116 bei einigen Implementierungen ein entsprechendes Dokument 160 (mit Werkzeugwegspezifikationen eines geeigneten Formats, z. B. ein CNC-Steuerungsprogramm) an die SM-Maschine 170 zur Verwendung bei der Herstellung der physischen Struktur mit verschiedenen Schneidwerkzeugen usw. bereit.
-
Bei einigen Implementierungen stellt(stellen) das(die) CAD-Programm(e) 116 Anweisungen zum Bauen eines Werkstücks in einer ersten Fertigungsstufe bereit, z. B. unter Verwendung von direkter AM und/oder unter Verwendung von Schmiede- und/oder Gießverfahren, und das(die) CAD-Programm(e) 116 stellt(stellen) außerdem Anweisungen zum Bearbeiten des Werkstücks, z. B. Schrupp- und/oder Endbearbeitungsvorgänge, in einer zweiten Fertigungsstufe, z. B. in einem 3-Achsen-CNC-Frässystem, bereit, wodurch die fertige Struktur gebildet wird. Im Allgemeinen können zur Erzeugung einer endgültigen Struktur verschiedene unterschiedliche Fertigungssysteme und -techniken entweder allein oder in Kombination eingesetzt werden und das(die) CAD-Programm(e) 116 kann(können) geeignete Algorithmen umfassen, um Werkzeugwegspezifikationen 160 für eines oder mehrere dieser verschiedenen Systeme zu generieren, um ein Teil herzustellen, das unter Verwendung der in dieser Anmeldung beschriebenen Systeme und Techniken entworfen wurde.
-
Darüber hinaus ist bei einigen Implementierungen keine physische Herstellung beteiligt. Die hierin beschriebenen Systeme und Techniken sind auf jede geeignete Oberflächenmodellierungssoftware anwendbar. Somit kann(können) bei einigen Implementierungen das(die) CAD-Programm(e) 116 Animationsproduktionsprogramme sein, die das 3D-Modell 132 in ein Dokument 165 eines zur visuellen Anzeige geeigneten Formats rendern, wie etwa durch einen digitalen Projektor 174 (z. B. ein digitales Kinopaket (Digital Cinema Package, DCP) 165 für den Filmvertrieb) oder ein anderes hochauflösendes Anzeigegerät. Bei einigen anderen Beispielen kann(können) das(die) CAD-Programm(e) 116 Videoproduktionssoftware sein, die das 3D-Modell 132 und/oder andere von dem(den) CAD-Programm(en) 116 generierte Modelle als Teil einer gerenderten Szene oder eines gerenderten Einzelbildes rendern. Es sind auch andere Anwendungen möglich.
-
2 zeigt ein beispielhaftes polygonales Kontrollnetz 200 für eine glatte Oberfläche, die einen außerordentlichen Punkt aufweist. Das polygonale Kontrollnetz 200 kann ein gleichmäßiges Kontrollnetz oder in einem Bereich um einen außerordentlichen Punkt herum ungleichmäßig sein. Das polygonale Kontrollnetz 200 ist ein 3D-Netz, das Kontrollpunkte umfasst. Das polygonale Kontrollnetz 200 definiert eine glatte Oberfläche und kann in verschiedenen Formaten, z. B. einer NURBS-Oberfläche, einer Catmull-Clark-Oberfläche, einer T-Spline-Oberfläche usw., gespeichert werden. Das polygonale Kontrollnetz 200 umfasst einen Scheitelpunkt V
k mit einer Valenzzahl gleich fünf (d. h. fünf (5) Kanten, die von dem Scheitelpunkt ausgehen). Somit ist der Scheitelpunkt V
k ein außerordentlicher Punkt. Der außerordentliche Punkt kann ein gleichförmiger oder ein ungleichförmiger Punkt sein, je nachdem, ob die Knotenabstände für die ersten und zweiten Kanten des Kontrollnetzes 200 gleich sind oder nicht. Wenn zum Beispiel das beispielhafte polygonale Kontrollnetz 200 einer Verfeinerungsoperation unterzogen wird, werden Kontrollpunkte von dem polygonalen Netz bei einer Iteration k auf Kontrollpunkte des verfeinerten Netzes bei einer Iteration (k + 1) übertragen. Die Kontrollpunkte in dem polygonalen Kontrollnetz 200 bei der Iteration k sind als ausgefüllte Kreise dargestellt, während Kontrollpunkte in dem verfeinerten Kontrollnetz bei der Iteration (k + 1) als offene Kreise dargestellt sind. Der Scheitelpunkt bei Iteration k wird mit V
k bezeichnet und der Scheitelpunkt bei Iteration (k+1) wird mit V
k+1 bezeichnet. Es gibt fünf (5) benachbarte Kantenpunkte bei Iteration k, die mit
bezeichnet werden, wobei i einer fortlaufenden Nummer einer Kante entspricht, die aus dem Scheitelpunkt V
k herauskommt, und i=0, 1, ..., 4. Bei Iteration k sind fünf (5) Flächenpunkte definiert, die als
bezeichnet werden, und i=0, 1, ..., 4.
-
Knotenabstände sind zwischen verschiedenen Punkten des polygonalen Kontrollnetzes 200 angeordnet und in
2 mit d
i, d̃̅
i, d̅
i, e
i, ẽ
i und e̅
i bezeichnet. Die Knotenabstände, die sich zwischen Punkten auf Flächen (Polygonen) um den Scheitelpunkt herum befinden, umfassen Abstände, die wie folgt bezeichnet werden:
Die ersten Knotenabstände befinden sich zwischen dem Scheitelpunkt und jeder der ersten Kanten E
k und werden wie folgt bezeichnet:
Ein entsprechender Satz von Knotenabständen wird für Flächen definiert, die Flächen um den Scheitelpunkt herum benachbart sind, d. h. Nachbarflächen der ersten Ebene zu den Flächen um den Scheitelpunkt V
k. Dieser Satz zweiter Knotenabstände wird als e
i, e
ĩ, e
i̅̅ bezeichnet, wie in
2 dargestellt. Die zweiten Knotenabstände e
i werden zwischen ersten und zweiten Kanten definiert, wobei die zweiten Kanten direkt mit ersten Kanten verbunden sind und sich außerhalb der Flächen um den Scheitelpunkt befinden.
-
In einem allgemeinen ungleichmäßigen Kontrollnetz können die ersten und zweiten Knotenabstände unterschiedlich sein (d. h. di ≠ ei). Es gibt Beispiele, bei denen die Knotenabstände alle gleich sein können, wie z. B. bei Catmull-Clark-Oberflächen. Es gibt jedoch andere Beispiele, z. B. NURBS-Oberflächen, die nicht darauf beschränkt sind, gleiche Knotenabstände für erste und zweite Kanten aufzuweisen.
-
Das polygonale Kontrollnetz 200 kann als Netzmatrix dargestellt werden, die eine (2n+1)x3-Dimensionsmatrix ist, die als
bezeichnet wird. Das polygonale Kontrollnetz 200 kann in Iterationen verfeinert werden, wobei eine Verfeinerungsoperation eine lineare Operation basierend auf den Koordinaten der Punkte in dem räumlichen Netz bei einer gegebenen Iteration sein kann. Es lässt sich eine Unterteilungsmaske generieren, die den Punkt basierend auf mathematisch definierten Verfeinerungsregeln als eine Matrixoperation skalieren und verschieben kann, die wie folgt definiert werden kann: P
k = MP
k-1 = M
kP
0, wobei M eine Verfeinerungsmatrix ist, die eine Verfeinerungsoperation für eine gegebene Iteration definiert.
-
NURBS und NURCCS stellen Verfeinerungsregeln zum Unterteilen des Kontrollnetzes bereit. Herkömmliche Verfeinerungsregeln können jedoch zu Diskontinuitäten in der Tangente am Scheitelpunkt Vk des Kontrollnetzes 200 führen. Daher können Verfeinerungsregeln für glatte Oberflächen mit einem außerordentlichen Punkt, der entweder gleichförmig oder ungleichförmig sein kann, generiert und verwendet werden, um ein verfeinertes Kontrollnetz zu erzeugen und somit eine glatte Oberfläche mit mindestens C1-Stetigkeit zu bilden. Gemäß Implementierungen der vorliegenden Offenbarung kann die Generierung von Verfeinerungsregeln das Definieren eines Eigenpolyeders um einen außerordentlichen Punkt in einem Kontrollnetz und das Anpassen von Flächen- und Kantenpunkten während der Verfeinerung beinhalten, wodurch einheitliche außerordentliche Punkte erzielt werden. Mit Daten für das Eigenpolyeder lassen sich Unterteilungen für ein Kontrollnetz zur Verfeinerung des Netzes und zur Vermeidung von Diskontinuitäten der Oberflächentangente für die generierte glatte Oberfläche definieren.
-
Im Zusammenhang mit der Unterteilung eines Kontrollnetzes zur Generierung eines verfeinerten Kontrollnetzes über eine oder mehrere Iterationen kann eine Transformationsmatrix als Unterteilungsregeln definiert werden, und die Transformationsmatrix kann Eigenvektoren und Eigenwerte definieren. Ein Eigenvektor kann als eine Position von zu unterteilenden Punkten definiert werden. Ein Eigenwert dieses Eigenvektors kann die Längenänderung des Eigenvektors beschreiben.
-
3 zeigt ein beispielhaftes Eigenpolyeder 300, das verwendet wurde, um Anpassungsregeln zum Unterteilen eines polygonalen Kontrollnetzes gemäß Implementierungen der vorliegenden Offenbarung zu bestimmen. Das Eigenpolyeder 300 weist sechs Kanten auf, die ausgehend von der x-Achse gegen den Uhrzeigersinn angeordnet sind. Jeder Kantenpunkt wird mit Ei identifiziert, wobei i = 0, 1, ..., 4. Das Eigenpolyeder 300 weist einen Scheitelpunkt V0 310 auf, bei dem es sich um einen außerordentlichen Punkt in dem Kontrollnetz handelt und der einem Sternpunkt auf der Grenzfläche entspricht. Der Scheitelpunkt V 310 ist so definiert, dass er in der Ebene die Koordinaten (0,0) aufweist. Das Eigenpolyeder ist im Eigenraum, bei dem es sich um einen zweidimensionalen Raum handelt, definiert und der Kantenpunkt E0 liegt auf der x-Achse der Ebene. Die Valenzzahl des Scheitelpunkts ist 6. Jeder Kantenpunkt weist ein Knotenabstand auf. Die für die Knotenabstände definierten Indizes entsprechen den Indizes der Kanten (z. B. di ist der Abstand von Êi).
-
Bei einigen Implementierungen kann das Eigenpolyeder 300 als ein ebenes Netz in einem zweidimensionalen Raum generiert werden, der einen außerordentlichen Punkt als einen Anfangsscheitelpunkt in einer Ebene umfasst. Daten können für das Eigenpolyeder 300 generiert werden, das Kontrollpunkte des Netzes definiert, umfassend Anfangskantenpunktdaten, Anfangsflächenpunktdaten und Anfangsscheitelpunktdaten.
-
Bei einigen Implementierungen kann eine Eigenpolyederstruktur einer bestimmten Verfeinerungsunterteilungsmatrix definiert werden, wobei das Eigenpolyeder die Eigenschaften aufweist, seine Form beizubehalten, wenn es unterteilt wird, außer bei einer Skalierung (z. B. durch eine Konstante) oder bei einer Verschiebung (z. B. durch einen Verschiebungsvektor). In einigen Fällen kann eine Skalierung basierend auf einem Skalierungsfaktor durchgeführt werden, der während Unterteilungen gleich gehalten wird, und der Skalierungsfaktor kann basierend auf der Valenzzahl festgelegt werden. In einigen Fällen kann eine Verschiebung basierend auf demselben Verschiebungsvektor für Unterteilungen durchgeführt werden, die einer Unterteilung folgen, bei der die Knotenabstände für die erste und die zweite Kante als gleich definiert sind. Für eine Eigenpolyeder-Netzstruktur muss die Matrix zwei Eigenvektoren mit dem gleichen Eigenwert aufweisen. Daher erfordert eine Eigenpolyederstruktur, dass Knotenabstände für erste und zweite Kanten gleich sind, um verbesserte Merkmale des Unterteilungsschemas unterstützen zu können, um Oberflächendefekte an außerordentlichen Punkten zu korrigieren. Zum Beispiel können Catmull-Clark-Unterteilungen und einige Fälle von NURBS-Schemata ein Eigenpolyeder aufweisen. Weist ein gegebenes Unterteilungsschema kein Eigenpolyeder auf, kollabiert ein Sternpunkt der glatten Oberfläche zu einer Linie, und dies führt zu einer schlechten Darstellungsqualität der glatten Oberfläche.
-
NURCCS und NURBS verwenden außerdem den nächsten Knotenabstand aus der Region um den außerordentlichen Punkt (d. h. ei), und Eigenpolyederstrukturen erfordern di = ei zur Unterstützung einer kontinuierlichen Stetigkeit während der Unterteilung. Somit werden konsistente Definitionen zum Ausführen von Unterteilungen basierend auf Anpassungsregeln bereitgestellt, um eine kontinuierliche Stetigkeit während der Unterteilung aufrechtzuerhalten, wobei solche Definitionen ohne das erforderliche di = ei als Voraussetzung auf jedes Kontrollpolygonnetz angewendet werden können. Wenn bei einigen Implementierungen ein Kontrollnetz keine gleichen ersten Knotenabstände und zweiten Knotenabstände umfasst (d. h. eine Voraussetzung für die Existenz eines Eigenpolyeders nicht erfüllt), kann eine vorläufige Unterteilung erforderlich sein, um zu einem Schema zu gelangen, bei dem diese Voraussetzung für ein Eigenpolyeder erfüllt ist und die Eigenpolyeder-Unterteilungsregeln ohne weitere Anpassungen angewendet werden können. Es kann jedoch schwierig sein, eine vorläufige Unterteilung zu bestimmen, die ein Kontrollnetz liefern würde, das diese Anforderungen erfüllt.
-
Wenn Unterteilungen durchgeführt werden, kann in einigen Fällen ein Unterteilungsschema so bestimmt werden, dass die Form des Bereichs in dem Kontrollnetz um einen außerordentlichen Punkt herum so unterteilt werden kann, dass man zu einer Eigenpolyederstruktur innerhalb einer einzelnen Unterteilung gelangt. In Fällen, in denen das Kontrollnetz ein N-Eck umfasst, kann in einem ersten Unterteilungsschritt ein außerordentlicher Punkt definiert werden, und es kann eine weitere Unterteilung angewendet werden, sodass man zu einer Eigenpolyederstruktur um den bestimmten außerordentlichen Punkt innerhalb des N-Ecks gelangt. Durch die Verwendung von Daten für das Eigenpolyeder und ein Unterteilungsschema, das eine beliebige einheitliche Struktur zu einem Eigenpolyeder skaliert und verschiebt, können die Unterteilungen rückwärtskompatibel mit Catmull-Clark-Regeln und NURBS-Regeln sein. Bei einigen Implementierungen können Positionen von Kontrollpunkten des polygonalen Netzes zur Berechnung von Unterteilungsregeln in einen Algorithmus eingegeben werden, wodurch ein verfeinertes Netz für die glatte Oberfläche erzeugt wird, das sowohl mit NURBS- als auch mit NURCCs-Unterteilungsregeln kompatibel ist.
-
Bei einigen Implementierungen können bei der Generierung einer glatten Oberfläche mit von Eigenpolyedern abgeleiteten Unterteilungsregeln Oberflächendefekte (wie etwa Spitzen und Täler) um außerordentliche Punkte herum (die z. B. einem Grad (oder einer Valenzzahl) n zugeordnet sind) korrigiert werden. Diese Eigenpolyeder-Unterteilungsregeln können eine stationäre affine Unterteilungsmaske M verwenden, die lokal für die Geometrie eines außerordentlichen Punkts ist, um die zugrunde liegenden Mischfunktionen, die dem Kontrollnetz zugeordnet sind, stabil zu unterteilen. Die Unterteilungsmaske M (bei der es sich um eine Verfeinerungsmatrix zum Generieren eines verfeinerten Kontrollnetzes handelt) kann Eigenpolyederpunkte P
k-1 so zu Punkten P
k skalieren und verschieben, dass
wobei P
k ein zweidimensionales Eigenpolyeder auf Unterteilungsebene k ist, definiert durch
für einen außerordentlichen Punkt mit der Valenz n mit Seiten- und Kantenpunkten gegeben durch
und
für i ∈ {0, ..., n - 1}, Scheitelpunkt V
k sodass T
0 := V
1 mit V
0 := [0,0], und wobei λ ein Eigenwert der Unterteilungsmatrix M ist.
-
Bei einigen Implementierungen kann ein Eigenpolyeder für jeden Eigenwert λ der Catmull-Clark-Verfeinerungsmatrix M konstruiert werden, der eine algebraische Vielfachheit von zwei aufweist. Zum Beispiel kann ein Eigenpolyeder als Funktion der Valenz ndes außerordentlichen Punktes für den in Formel (3) definierten Eigenwert konstruiert werden:
wobei γ definiert ist durch
wobei c
n = cos(2π/n). Bei dem Eigenpolyeder 300 sind die Winkel zwischen den Kanten gleich und können durch die folgende Konstante definiert werden
wobei τ = 2π und n die Valenz des außerordentlichen Punktes ist (im Beispiel 300 ist diese gleich 6). Der Winkel zwischen zwei beliebigen Kanten (auch als Speichen bezeichnet) kann definiert werden durch
für i ∈ { 0, ..., n - 1} und θ
k := θ aus (3). Eine Speiche des P
0 Eigenpolyeders 300, der dem Vektor
entspricht, kann definiert werden durch
wobei l
i die Länge einer Speiche ist, definiert als
wobei d
i der innere Knoten pro Speiche ist und
und
die lokalen und gegenüberliegenden Knoten pro Speiche sind, die definiert sind durch
-
Die Gleichungen (7) und (8) sind den Eigenpolyeder-Speichenkantenlängen von NURBS- und/oder Catmull-Clark-Oberflächen (d. h. CCNURBS) zugeordnet, wobei (i) die Valenz des außerordentlichen Punktes vier ist und d
i = d̃
i = d̅
i und e
i = ẽ
i = e̅
i oder (ii) die inneren Knoten, d
i = d
j für alle i, j, und d
i gleich dem äußeren Knoten, e
i, für i,j ∈ { 0, ..., n - 1} sind. Es versteht sich, dass, obwohl das Eigenpolyeder 300 als Kanten gleicher Länge aufweisend dargestellt ist, die Kanten unterschiedlich lang sein können. Wird ein Koordinatensystem in der Ebene definiert, ℝ
2, zentriert bei V
0 := [0,0], sodass
wird das Anfangseigenpolyeder, P
0, durch die Kantenpunkte von (7), den Scheitelpunkt, V
0 := [0,0], und Flächenpunkte definiert,
wobei es sich versteht, dass die modulo-n-te Operation für einen entsprechenden Flächenpunkt oder Kantenpunkt auf den Index (i + 1) angewendet wird.
-
Die durch (11) definierten Flächenpunkte können berechnet werden, wobei die n Kantenpunkte und Flächenpunkte unter Verwendung einer Beschriftung der n Kanten und Flächenpunkte im Gegenuhrzeigersinn gekennzeichnet werden, wie in 3 dargestellt.
-
Mit Eigenpolyederregeln zur Durchführung von Unterteilungen lässt sich definieren, wie das Eigenpolyeder unter Beibehaltung der Form des Eigenpolyeders skaliert und in eine nächste Iteration eines verfeinerten Kontrollnetzes verschoben wird. Die Kanten- und Flächenpunktregeln des Eigenpolyeders können als 2D-Koordinaten in einer Ebene erzeugt und als lineare Kombinationen von Kontrollpunkten des Kontrollnetzes definiert werden. Die Flächen- und Kantenpunktregeln lassen sich ableiten, indem eine inverse bilineare Interpolation durchgeführt wird, um zu festzustellen, welche parametrischen (u, v) Punkte gegebenen Flächen- und/oder Kantenpunkten entsprechen würden.
-
Bei einigen Implementierungen können Eigenpolyederregeln für Flächen-, Kanten- und Scheitelpunkte erzeugt und zur Durchführung von Unterteilungen an einem Kontrollnetz verwendet werden. In Fällen, in denen das Kontrollnetz um einen außerordentlichen Punkt gleichmäßig ist, können Unterteilungen basierend auf Eigenpolyederregeln zur Generierung einer glatten Oberfläche führen. In einigen Fällen können traditionelle Eigenpolyeder-Unterteilungsregeln erfordern, dass die ersten und zweiten Knotenintervalle um einen außerordentlichen Punkt herum gleich sind, sodass d
i = e
i für alle i ∈ { 0, ..., n - 1}. Zum Beispiel lassen sich traditionelle Eigenpolyeder unter Verwendung der Techniken bestimmen, die im
US-Patent Nr. 10,249,086 von Sederberg, das hiermit durch Verweis Bestandteil der vorliegenden Anmeldung wird, beschrieben sind.
-
Da ungleichmäßige außerordentliche Punkte durch die Bedingung definiert sind, dass di ≠ ei für mindestens einen Wert von i, können die traditionellen Eigenpolyederregeln nicht auf ein Kontrollnetz angewendet werden, das um einen außerordentlichen Punkt herum ungleichmäßig ist. Die herkömmlichen Eigenpolyederregeln können unter Anwendung einer oder mehrerer in der vorliegenden Beschreibung beschriebenen Anpassungsregeln so angepasst werden, dass angepasste NURCCSs-kompatible Eigenpolyederregeln erhalten werden, die auf ein Kontrollnetz angewendet werden können, das um einen außerordentlichen Punkt herum entweder gleichmäßig oder ungleichmäßig ist. Durch Vornehmen von Korrekturen an berechneten Flächen-, Kanten- und Scheitelpunkten gemäß den Eigenpolyederregeln kann sich das verfeinerte Kontrollnetz nach einer einzelnen Unterteilung basierend auf den angepassten Regeln in ein Netz umwandeln, bei dem die ersten und zweiten Knotenabstände gleich werden. Daher können bei einer nachfolgenden Unterteilung die angepassten Unterteilungsregeln im Wesentlichen (oder vollständig) den traditionellen Regeln entsprechen, da die Anpassungsregeln auf der Differenz zwischen der Länge des ersten und zweiten Knotenabstands (di, ei) basieren, die sich als null ergibt, da diese ersten und zweiten Knotenabstände nach der Anfangsunterteilung gleich werden. Sind die ersten und zweiten Knotenabstände gleich, verringert sich der der Anpassung entsprechende Korrekturterm auf null (0) (oder im Wesentlichen null), und selbst wenn auf den angepassten Regeln basierende Unterteilungen durchgeführt werden, können die nach einer ersten Unterteilung angewendeten Regeln mit den Berechnungen übereinstimmen, die erhalten werden, wenn sie mit herkömmlichen Eigenpolyederregeln durchgeführt werden (z. B. Regeln, die für Eigenpolyeder definiert sind, bei denen als Voraussetzung der erste und der zweite Knotenabstand gleich sind).
-
4 zeigt ein Beispiel eines Prozesses 400 zum Erzeugen einer glatten Oberfläche aus einem verfeinerten Kontrollnetz basierend auf Unterteilung(en) unter Verwendung von Daten, die ein Eigenpolyeder um einen außerordentlichen Punkt definieren, gemäß Implementierungen der vorliegenden Offenbarung. Bei einigen Implementierungen kann der Prozess 400 unter Verwendung einer Computergrafikanwendung 116 (z. B. CAD, CAE, CAM, Videoproduktionssoftware, Animationsprogramme, andere) durchgeführt werden. Bei einigen Implementierungen kann die Computergrafikanwendung zur Herstellung von physischen Objekten basierend auf einer erzeugten glatten Oberfläche aus den bei Prozess 400 durchgeführten Operationen mit einem Fertigungssystem, wie etwa einer CNC-Maschine oder einem anderen subtraktiven Fertigungssystem oder einer anderen subtraktiven Fertigungstechnik, kommunizieren. Bei einigen weiteren Implementierungen kann die Computergrafikanwendung mit einem Digitalproj ektor (z. B. dem Digitalproj ektor 174 von 1) kommunizieren, um eine Datei (z. B. ein Dokument eines bestimmten erwarteten Formats) bereitzustellen, die eine glatte Ausgabeoberfläche aus dem Prozess 400 zur visuellen Anzeige auf dem Display des digitalen Projektors umfasst. Bei einigen Implementierungen kann die Computergrafikanwendung eine Videoproduktionssoftwarelösung sein, die ein 3D-Modell und/oder andere Modelle, das/die von einer Computergrafikanwendung als Ergebnis des Prozesses 400 als Teil einer gerenderten Szene oder eines gerenderten Einzelbildes erzeugt wird/werden, rendert.
-
Bei 405 wird ein polygonales Kontrollnetz für die glatte Oberfläche erhalten. Die glatte Oberfläche stellt ein Objekt dar. Bei einigen Implementierungen kann das Objekt eine physische Einheit zur Fertigung oder ein Objekt zur visuellen Darstellung auf einer Anzeigevorrichtung sein. Das polygonale Kontrollnetz umfasst einen außerordentlichen Punkt, der ein gleichmäßiger oder ungleichmäßiger außerordentlicher Punkt sein kann. Bei einigen Implementierungen kann der außerordentliche Punkt ein ungleichmäßiger außerordentlicher Punkt sein, bei dem die ersten Knotenabstände und die zweiten Knotenabstände nicht gleich sind, oder er kann ein gleichmäßiger außerordentlicher Punkt sein, bei dem diese Abstände gleich sind. Das Kontrollnetz kann in einem Bereich um den außerordentlichen Punkt unter Verwendung von Eigenpolyederdaten und weiteren Anpassungsregeln unterteilt werden, um zu einer Unterteilung zu gelangen, die mit NURBS- und NURCCs-Unterteilungsregeln kompatibel ist. Die Unterteilung des Bereichs um den außerordentlichen Punkt herum kann gemäß den Implementierungen der vorliegenden Offenbarung ohne eine zusätzliche Feststellung, ob der außerordentliche Punkt gleichmäßig oder ungleichmäßig ist, durchgeführt werden, um eine glatte Oberfläche mit mindestens C1-Stetigkeit zu erreichen.
-
Bei 410 wird das polygonale Kontrollnetz gemäß einer oder mehreren Unterteilungen unterteilt, um ein verfeinertes Kontrollnetz zu erzeugen. Das verfeinerte Kontrollnetz kann in Iterationen und basierend auf Daten des Kontrollnetzes bei einer vorherigen Iteration erstellt werden. Unterteilung(en) in das polygonale Kontrollnetz gemäß den für die Unterteilungsoperation 410 definierten Schritten können ohne anfängliche Feststellung, ob der außerordentliche Punkt ein gleichmäßiger oder ein ungleichmäßiger außerordentlicher Punkt ist, durchgeführt werden. Die Unterteilung(en) kann/können durchgeführt werden, um ein verfeinertes Netz zu generieren, um eine glatte Oberfläche zu bestimmen, die mindestens C1-Stetigkeit aufweist. Bei einigen Implementierungen ist(sind) die gemäß den Operationen 410 (umfassend 415 und 420) durchgeführte(n) Unterteilung(en) mit NURCCS- und NURBS-Oberflächen kompatibel.
-
Als Teil der Unterteilungsoperation werden bei 415 Daten verwendet, die ein Eigenpolyeder um einen außerordentlichen Punkt in dem polygonalen Kontrollnetz herum definieren. Bei einigen Implementierungen umfassen die das Eigenpolyeder definierenden Daten Daten für Flächen und Kantenpunkte für Flächen um den außerordentlichen Punkt herum. Mit den Eigenpolyederdaten lassen sich Anpassungsregeln erzeugen, um Positionen des außerordentlichen Punkts und Flächenpunkte und Kantenpunkte für Flächen benachbart zum außerordentlichen Punkt während jeder der einen oder mehreren Unterteilungen zu bestimmen. Die Eigenpolyederdaten können basierend auf Anpassungsregeln angepasst werden, um ein verfeinertes Netz zu definieren, das nach einer einzelnen Unterteilung gleiche erste und zweite Knotenabstände aufweist. Basierend auf Unterteilung(en) gemäß angepassten Unterteilungsregeln kann das Kontrollnetz Flächen um den außerordentlichen Punkt herum skalieren und verschieben, um zu verhindern, dass das Kontrollnetz im Bereich des außerordentlichen Punkts zu einer Linie kollabiert.
-
Bei 420 werden Positionen für den außerordentlichen Punkt, die Fläche und Kantenpunkte für Flächen um den außerordentlichen Punkt gemäß den Anpassungsregeln bestimmt. Die Anpassungsregeln können für den außerordentlichen Punkt, die Flächenpunkte und die Kantenpunkte an entsprechenden Flächen- und Kantenräumen definiert werden. Die Anpassungsregeln können auf Daten angewendet werden, die die entsprechenden Flächen- und Kantenpunkte aus den Daten des Eigenpolyeders definieren. Wenn Unterteilungen zum polygonalen Kontrollnetz basierend auf definierten Flächen- und Kantenpunkten durchgeführt werden, die gemäß den Anpassungsregeln und unter Verwendung der Eigenpolyederdaten bestimmt wurden, werden erste Knotenabstände (di) für erste Kanten und zweite Knotenabstände (ei) für zweite Kanten des Bereichs um den außerordentlichen Punkt einander innerhalb einer numerischen Genauigkeit, die von der Computergrafikanwendung innerhalb einer einzelnen Unterteilung der einen oder mehreren Unterteilungen verwendet wird, gleich. Die ersten Kanten sind direkt mit dem außerordentlichen Punkt verbunden und befinden sich innerhalb eines Bereichs, der dem Eigenpolyeder im parametrisierten zweidimensionalen Raum entspricht. Die zweiten Kanten sind direkt mit den ersten Kanten verbunden und befinden sich außerhalb des Bereichs, der dem Eigenpolyeder im parametrisierten zweidimensionalen Raum entspricht.
-
Gemäß den Implementierungen der vorliegenden Offenbarung würde durch Unterteilen eines polygonalen Kontrollnetzes in einem Bereich um einen außerordentlichen Punkt innerhalb einer Unterteilung das erzeugte verfeinerte Netz eine Eigenpolyederstruktur ergeben, selbst wenn der außerordentliche Punkt ungleichmäßig ist. Daher wird, selbst wenn das anfängliche polygonale Netz keine gleichen ersten und zweiten Knotenabstände für erste und zweite Kanten aufweist, wie dies zum Erreichen einer Eigenpolyederstruktur erforderlich ist, eine solche Struktur innerhalb einer einzelnen Unterteilung basierend auf den gemäß den bei 420 durchgeführten Anpassungen bestimmten Flächen- und Kantenpunkten erzeugt werden.
-
Bei einigen weiteren Implementierungen umfasst das Bestimmen der Positionen von Flächenpunkten und Kantenpunkten für die Flächen um den außerordentlichen Punkt herum Berechnen angepasster Flächenpunkte und Kantenpunkte für die Flächen um den außerordentlichen Punkt herum basierend auf der Anwendung der Anpassungsregeln auf Positionen von Flächenpunkten und Kantenpunkten, wie in den das Eigenpolyeder definierenden Daten bereitgestellt. Bei einigen Implementierungen kann ein angepasster Flächenpunkt für eine entsprechende Fläche gemäß den Anpassungsregeln und den das Eigenpolyeder definierenden Daten berechnet werden. In einigen Fällen kann eine angepasste Flächenpunktregel angewendet werden, um einen Wert anzupassen, der für einen gegebenen Flächenpunkt aus den das Eigenpolyeder definierenden Daten bestimmt wird. Bei einigen Implementierungen können Anpassungen an einem Flächenpunkt berechnet werden, wie in Bezug auf 5A und 5B und 6 diskutiert.
-
Bei einigen Implementierungen kann ein angepasster Kantenpunkt an einer entsprechenden Kante gemäß den Anpassungsregeln und den das Eigenpolyeder definierenden Daten berechnet werden. In einigen Fällen kann eine angepasste Flächenpunktregel angewendet werden, um einen Wert anzupassen, der für einen gegebenen Kantenpunkt aus den das Eigenpolyeder definierenden Daten bestimmt wird. Bei einigen Implementierungen werden die Anpassungen an Flächenpunkten und Kantenpunkten, wie sie in den Eigenpolyederdaten definiert sind, im parametrischen Raum des Eigenpolyeders durchgeführt. Bei einigen Implementierungen können Anpassungen an einem Kantenpunkt berechnet werden, wie in Bezug auf 5A und 5B und 6 diskutiert.
-
Bei einigen Implementierungen können Anpassungsregeln zum Bestimmen von Flächen- und Kantenpunkten an entsprechenden Flächen- und Kantenräumen festgelegt werden, wie in Bezug auf 6 diskutiert. Bei einigen Implementierungen können Anpassungsregeln auf die Berechnungen eines Scheitelpunkts angewendet werden, um einen nachfolgenden Scheitelpunkt für ein unterteiltes Kontrollnetz zu bestimmen. Bei einigen Implementierungen kann die Bestimmung der Positionen 420 das Umwandeln der angepassten Flächen- und Kantenpunkte in Verfeinerungsregeln zum Bestimmen von Flächen- und Kantenpunkten auf dem polygonalen Kontrollnetz umfassen, um das verfeinerte Kontrollnetz zu generieren.
-
Bei 425 wird die glatte Oberfläche zur Ausgabe aus dem verfeinerten Kontrollnetz generiert, das basierend auf der(den) Unterteilung(en) bei 410 generiert wird. Zum Beispiel kann die generierte glatte Oberfläche zur Herstellung eines physischen Objekts verwendet werden, z. B. unter Verwendung einer CNC-Maschine, und basierend auf einer Werkzeugwegspezifikation, die basierend auf der glatten Oberfläche generiert werden kann. In einigen anderen Beispielen kann die generierte glatte Oberfläche auf einer Anzeigeschnittstelle einer Anzeigevorrichtung gerendert werden. Die gerenderte glatte Oberfläche kann in eine Animationsszene oder eine Videoproduktion integriert werden.
-
Bei einigen Implementierungen können Eigenpolyeder-Unterteilungsregeln für Flächen-, Kanten- und Scheitelpunkte definiert werden. 5A zeigt ein Diagramm, das einen abgeleiteten Flächenpunkt basierend auf einer Anpassung gemäß Anpassungsregeln darstellt, die in einem entsprechenden Flächenraum gemäß Implementierungen der vorliegenden Offenbarung definiert sind. 5B zeigt ein Diagramm, das einen abgeleiteten Kantenpunkt basierend auf einer Anpassung gemäß Anpassungsregeln darstellt, die in einem entsprechenden Kantenraum gemäß Implementierungen der vorliegenden Offenbarung definiert sind. Eigenpolyederdaten, umfassend Daten für einen Flächenpunkt, Kantenpunkt und einen Scheitelpunkt, können, wenn der erste und zweite Knotenabstand gleich sind, berechnet werden. Die Eigenpolyederdaten können zum Bestimmen verfeinerter Flächenpunkte, Kantenpunkte und Scheitelpunkte verwendet werden, die in einem allgemeinen Fall anwendbar sein können, bei dem eine solche Voraussetzung nicht vorliegt. Solch ein berechneter verfeinerter Punkt kann ein Ergebnis der Anpassung von Eigenpolyederdaten sein, wie im Zusammenhang mit 4 in Verbindung mit Vorgang 410 diskutiert.
-
In
5A wird eine Fläche 500 benachbart zu einem außerordentlichen Punkt V
0 mit einem Flächenpunkt
präsentiert, der zum Durchführen einer Unterteilung berechnet wird. In
5B wird ein Bereich 550 von zwei benachbarten Flächen benachbart zu einem außerordentlichen Punkt mit einem Kantenpunkt
präsentiert, der zum Durchführen einer Unterteilung berechnet wird.
-
Die Eigenpolyederflächenpunktregel kann durch Ausführen einer inversen bilinearen Interpolation an dem Eigenpolyederflächenpunkt abgeleitet werden
und Lösen nach (s, t) unter der folgenden bilinearen Interpolation
-
Zum Beispiel kann das Lösen der bilinearen Interpolation unter Anwendung der in „Floater, M.S. 2015. The inverse of a bilinear mapping, Computer Aided Geometrie Design 33, 46-50“, das hiermit durch Verweis Bestandteil der vorliegenden Anmeldung wird, beschriebenen Techniken erfolgen.
-
Durch numerisches Lösen nach (s, t) in (13) kann die Flächenpunktregel als eine Funktion der zweidimensionalen Punkte V
0,
und
ausgedrückt werden, wie in (14) definiert:
die eine Karte von den Scheitel-, Kanten- und Flächenpunkten auf einer ersten Unterteilungsebene (z. B. null) zum Flächenpunkt des Eigenpolyeders auf einer nachfolgenden Unterteilungsebene (z. B. Ebene eins)definiert. Da sich die Eigenpolyeder-Unterteilungsmatrix über nachfolgende Unterteilungen nicht ändert (d. h. stabil ist), sind die numerischen Lösungen für (s
i, t
i), wobei Kombinationen der numerischen Lösungen Einträge in der Unterteilungsmatrix M aus (1) sind, stabil und können direkt verwendet werden, um eine k-te Flächenpunkt-Unterteilungsregel
zu erstellen.
-
Gemäß Implementierungen der vorliegenden Offenbarung können zur Verallgemeinerung der im dreidimensionalen Raum zu verwendenden Flächenpunktregel Substitutionen für die äquivalenten Punkte von
und
in ℝ
3 vorgenommen werden.
-
5B stellt zwei Flächen dar, die mit einer Kante
verbunden sind. Die Eigenpolyeder-Kantenpunktregel lässt sich ableiten, indem eine Folge von zwei separaten inversen bilinearen Interpolationen durchgeführt wird. Aus der Definition des Eigenpolyeder-Kantenpunktes
-
Wie in
5B dargestellt werden Kantenpunkte als lineare Kombination der sechs nahegelegenen Scheitelpunkte der zugeordneten Kante
und
konstruiert. Ein bilinearer Raum lässt sich auf Basis der folgenden Punkte konstruieren
wobei die Punkte (s
i, t
i) und (s
i-1, t
i-1) durch Lösen des Problems der inversen bilinearen Interpolation der Flächenpunkte von (13) für Eigenpolyeder-Flächenpunkte
und
die unter Verwendung von (12) generiert wurden, bestimmt werden. Basierend auf den Punkten aus den Formeln (15a), (15b) und (15c) kann ein nachfolgender bilinearer Raum zur Bestimmung des Kantenpunkts so definiert werden, dass sich die Kantenpunktregel durch Lösung des inversen bilinearen Problems (16) bestimmen lässt:
für bei gegebenem Kantenpunkt
aus (14) generiert. Durch numerisches Lösen für (u, v) in (15) kann die Kantenpunktregel als eine Funktion der sechs zweidimensionalen Punkte
und
als
ausgedrückt werden, was eine Karte aus Scheitelpunkt, Kante und Flächenpunkte auf der Unterteilungsebene null zum Flächenpunkt des Eigenpolyeders auf der Unterteilungsebene eins definiert. Da sich die Eigenpolyeder-Unterteilungsmatrix über nachfolgende Unterteilungen nicht ändert (d. h. stabil ist), sind die numerischen Lösungen für (s
i, t
i), (s
i-1, t
i-1), (u, v) und Kombinationen davon, die Einträge in der Unterteilungsmatrix M aus (1) sind, stabil und können direkt verwendet werden, um die k-te Kantenpunkt-Unterteilungsregel
zu erstellen. Gemäß Implementierungen der vorliegenden Offenbarung können zur Verallgemeinerung der Kantenpunktregel für einen dreidimensionalen Raum Substitutionen für die sechs äquivalenten Punkte von
und
in ℝ
3 vorgenommen werden.
-
Die Scheitelpunktregel für den Scheitelpunkt V
k+1, wie sowohl in
5A als auch 5B dargestellt, kann durch Formel (17) definiert werden:
wobei V
0 = [0,0] und
-
6 zeigt ein Diagramm, das das Unterteilen eines polygonalen Kontrollnetzes 600 um einen außerordentlichen Punkt V basierend auf Verfeinerungsregeln (wie den in den Formeln (13), (16) und (17) wiedergegebenen Verfeinerungsregeln) gemäß Implementierungen der vorliegenden Offenbarung darstellt.
-
Das polygonale Kontrollnetz 600 ist ein allgemeines Netz, das um den außerordentlichen Punkt herum entweder gleichmäßig oder ungleichmäßig sein kann. Wenn Unterteilungen basierend auf Eigenpolyederdaten durchgeführt werden und der außerordentliche Punkt ungleichmäßig ist, können die diskutierten Kantenpunkt-, Flächenpunkt- und Scheitelpunktregeln nicht angewendet werden, um das Netz zu skalieren und zu verschieben und zu einer C1 kontinuierlichen Oberfläche zu gelangen. Zur Unterteilung eines allgemeinen polygonalen Kontrollnetzes können daher entweder gleichmäßige oder ungleichmäßige Unterteilungsregeln angewendet werden, die auf Eigenpolyederdaten basieren und in Fällen, in denen der außerordentliche Punkt ungleichmäßig ist, auch auf Korrekturen, bei denen die bestimmten Eigenpolyederflächen, -kanten und -eckpunkte angepasst werden, basieren. Die Unterteilung des Kontrollnetzes basierend auf diesen Anpassungsregeln und den Eigenpolyederdaten kann wie in 4 diskutiert und weiter diskutiert in 8, wo ein außerordentlicher Punkt auf einer N-Eck-Fläche eingeführt wird, erfolgen.
-
Bei einigen Implementierungen können Flächenpunktkorrekturen, Kantenpunktkorrekturen und Scheitelpunktkorrekturen als Anpassungen an den entsprechenden Eigenpolyederpunkten abgeleitet werden. Bei einigen Implementierungen kann durch das wie in der vorliegenden Offenbarung beschriebene Durchführen der Korrekturen ein vereinheitlichender Rahmen bereitgestellt werden, in dem die korrigierten Eigenpolyederpunkte mit den Punkten übereinstimmen (oder anderweitig kompatibel sind), die während der Unterteilungsiterationen bestimmt und unter Verwendung der NURCCs-Unterteilungsregeln für nicht gleichmäßige außerordentliche Punkte (d. h. di ≠ ei, i ∈ {1, ..., n - 1}) und/oder mit den NURBS-Unterteilungsregeln für ungleichmäßige außerordentliche Punkte mit der Valenz vier während der ersten und allen nachfolgenden Unterteilungen erhalten wurden. Die Anpassungsregeln lassen sich bestimmen, indem die NURCC-Verfeinerungsregeln für ungleichmäßige kubische B-Splines-Oberflächen unter den Einschränkungen di ≠ ei und di = ei untersucht werden.
-
Bei einigen Implementierungen können Korrekturen für die Werte der Flächen- und Kantenpunkte und des Scheitelpunkts direkt im gleichen parametrischen Raum (s, t) ∈ [0,1] × [0,1] der Eigenpolyeder-Flächen- und -Kantenpunkt-Unterteilungsregeln durchgeführt werden, wie in Bezug auf 5A und 5B definiert und basierend auf den unten definierten Anpassungsregeln.
-
Wie in
6 gezeigt sind die Knotenabstände entlang der x-Achse
und entlang der y-Achse
, , wobei * die Position eines außerordentlichen Punktes bezeichnet. Die NURBS-Flächenpunktregel lässt sich im Allgemeinen durch Formel (20) darstellen:
-
Um die Anpassungsregel für den Flächenpunkt des Eigenpolyeders zu bestimmen, kann eine Berechnung des Flächenpunkts durchgeführt werden, wenn der außerordentliche Punkt gleichmäßig oder ungleichmäßig ist. Wenn direkt im zugrunde liegenden parametrischen Raum von (s, t) ∈ [0,1] × [0,1] gearbeitet wird, wobei V
0 = [0,0],
und
vereinfacht sich die Flächenpunktregel aus (20), angewendet auf einen gleichmäßigen außerordentlichen Punkt auf der ersten Unterteilungsebene, zu
-
Wenn der außerordentliche Punkt ungleichmäßig ist, vereinfacht sich (20) zu
-
Die Flächenpunktkorrektur
kann durch Subtrahieren von (21) von (22) bestimmt werden und lautet
wobei Δ zur einfacheren Darstellung eine generische Funktion ist, die definiert ist als
-
Gleichung (23) ist eine direkte Korrektur der numerisch bestimmten (s, t)-Werte, die bestimmt werden, wenn das inverse bilineare Interpolationsproblem aus (13) für den Eigenpolyederflächenpunkt gelöst wird. Die Flächenpunktkorrektur in (23) ist im Wesentlichen eine Korrektur der Flächenpunktabschnitte der Eigenpolyeder-Unterteilungsmaske M. Gemäß Implementierungen der vorliegenden Offenbarung führt das Anwenden der Korrektur zu einer angepassten Flächenpunktregel, die einen NURCCS-kompatiblen Flächenpunkt auf der ersten Unterteilung erzeugt. Ein NURCCs-kompatibler Flächenpunkt kann ein Flächenpunkt sein, bei dem die Fläche um den außerordentlichen Punkt herum (z. B. umfassend zum außerordentlichen Punkt benachbarter Flächen) kontinuierlich mit dem Rest der Fläche wäre, wenn der Rest der Fläche unter Verwendung von NURCCs-Regeln erzeugt würde. Durch Untersuchen des Zählers der Glieder in (23) lässt sich feststellen, dass bei nachfolgenden Unterteilungen, die nach einer Unterteilung durchgeführt werden, die zu einem Eigenpolyeder führte, bei dem di = ei für i ∈ {0, ..., n - 1}, der Wert der Korrektur null wird.
-
Bei einigen Implementierungen können auch Kantenpunktkorrekturen abgeleitet werden, die NURCCs-kompatible Kantenpunkte erzeugen. Die NURCC
S-Kantenpunktregel kann im Allgemeinen gemäß Formel (25) ausgedrückt werden:
wobei
durch Formel (26) gegeben ist
-
Beim direkten Arbeiten im zugrunde liegenden parametrischen Raum von [0,1] × [-1,1], wobei V
0 = [0,0],
und
wird die Korrektur der Kantenpunktregel wie in Formel (27) definiert:
wobei
durch Formel (28) gegeben ist:
-
Zur korrekten Anpassung des Kantenpunkts des Eigenpolyeders, sodass der Punkt NURCCs-kompatibel ist, müssen die Flächenpunktkorrekturen
und
auf (s
i, t
i) und (s
i-1, t
i-1), die unter Anwendung der Formeln in (15a), (15b) und (15c) abgeleitet wurden, angewendet (zum Beispiel addiert) werden. Die (s
i, t
i)- und (s
i-1, t
i-1)-Werte werden zuerst bestimmt, indem zwei inverse bilineare Interpolationsprobleme, die durch (13) definiert sind, für die Eigenpolyederflächenpunkte
und
gelöst werden. Da die Punkte P
0, P
1, P
2, P
3 (wie in (15a), (15b), (15c) definiert) nur s
i-1 und t
i betreffen, müssen weder an t
i-1 noch an s
i Korrekturen durchgeführt werden, und die Regeln zur Anpassung von s
i-1 und t
i folgen durch Auswahl der zweiten Komponente von
zur Korrektur von t
i und der ersten Komponente von
zur Korrektur von s
i-1. Ausdrücke für diese Korrekturen sind zum Beispiel durch die folgenden Formeln vorgegeben:
-
Außerdem ist auch eine Korrektur des u-Werts, der nach dem Lösen des nächsten inversen bilinearen Interpolationsproblems, das in (16) definiert ist, erhalten wird, erforderlich. Die Korrektur für u lässt sich teilweise aus dem
-Korrekturterm und den x-Komponenten der
und
-Korrekturterme in Formel (27) ableiten. Die Korrektur für u kann durch Formel (31) gegeben werden:
-
Gemäß Implementierungen der vorliegenden Offenbarung lässt sich eine angepasste Eigenpolyeder-Kantenpunktregel, die sowohl NURCC
S- als auch NURBS-kompatibel ist, durch (i) zweimaliges Lösen des inversen bilinearen Interpolationsproblems in (13), um (s
i, t
i) und (s
i-1, t
i-1) für die Anfangseigenpolyederflächenpunkte
und
zu erhalten, (ii) Verwenden von (s
i, t
i), (s
i-1, t
i-1) und
aus (14) als Eingaben zum Lösen des inversen bilinearen Interpolationsproblems in (16) für (u, v), (iii) Korrigieren von s
i-1 basierend auf (29), t
i basierend auf (30) und u basierend auf (31) und (iv) Gruppieren aller bekannten Koeffizienten (die s
i-1, t
i, u, v beinhalten) der sechs Punkte
zur Bestimmung von Elementen der Verfeinerungsmaske M, die letztendlich die korrigierte Kantenpunktregel darstellen. Ähnlich wie bei der Flächenpunktkorrektur aus Formel (23) wird die durch (29), (30) und (31) definierte Kantenpunktkorrektur null, wenn d
i = e
i für i ∈ {0, ..., n - 1}, was nach der ersten Unterteilung auftritt.
-
Bei einigen Implementierungen lassen sich die Kantenpunkte gemäß der Unterteilung basierend auf Eigenpolyederdaten und den Anpassungsregeln gemäß den Formeln (32) bestimmen.
-
7 zeigt ein beispielhaftes 5-Eck 700 und eine beispielhafte Unterteilung des 5-Ecks, um einen außerordentlichen Punkt und einen Satz von Kantenpunkten zu umfassen. Bei einigen Implementierungen kann ein N-Eck Teil eines polygonalen Kontrollnetzes sein, das einer Unterteilung unterzogen wird. Zum Beispiel kann das N-Eck Teil des erhaltenen polygonalen Kontrollnetzes bei 405 von 4 sein. Das beispielhafte N-Eck 700 ist ein 5-Eck, und es versteht sich, dass andere Beispiele von N-Eck-Flächen (z. B. 3-Eck) einer entsprechenden Unterteilung unterzogen werden können.
-
Gemäß Implementierungen der vorliegenden Offenbarung kann ein außerordentlicher Punkt für das N-Eck 700 als Teil einer ersten Unterteilung für das polygonale Kontrollnetz umfassend des N-Ecks 700 generiert werden.
-
In einigen Fällen kann einer der Kontrollpunkte des 5-Ecks 700 ein außerordentlicher Punkt im polygonalen Kontrollnetz sein. In diesen Fällen lässt sich ein außerordentlicher Punkt innerhalb des 5-Ecks gemäß den NURCC-Unterteilungsregeln erzeugen, um eine Unterteilung zu definieren, die den außerordentlichen Punkt in das nachfolgend erzeugte verfeinerte Netz basierend auf der anfänglichen Unterteilung einführt. Zum Beispiel können NURCC-Unterteilungsregeln, wie in „T-splines and T-NURCCs, Sederberg et al., ACM Transactions on Graphics, Juli 2003“ und im US-Patent Nr. 7,274,364 von Sederberg beschrieben, definiert werden, die hiermit durch Verweis Bestandteil der vorliegenden Anmeldung werden. Der außerordentliche Punkt, der ein Kontrollpunkt des 5-Ecks ist, kann verwendet werden, um seine angrenzenden Flächen- und Kantenpunkte unter Verwendung von Eigenpolyederregeln zu bestimmen, mit Ausnahme des Flächenpunkts, der der 5-Eck-Fläche entspricht, und der Kanten, die Teil der 5-Eck-Fläche sind. Solche angrenzenden Flächen- und Kantenpunkte können gemäß den NURCC-Unterteilungsregeln bestimmt werden.
-
In einigen anderen Fällen umfasst das 5-Eck keinen Kontrollpunkt, der ein außerordentlicher Punkt ist. In diesen Fällen können für das 5-Eck gemäß den NURCC-Regeln ein Scheitelpunkt und ein Satz von Flächenpunkten bestimmt werden. Zum Beispiel kann der Scheitelpunkt in der Mitte des 5-Ecks bestimmt werden und einen umfassten außerordentlichen Punkt im außerordentlichen Bereich darstellen.
-
8 zeigt ein Beispiel eines Prozesses 800 zum Erzeugen einer glatten Oberfläche aus einem verfeinerten Kontrollnetz basierend auf Unterteilungen unter Verwendung von Daten, die ein Eigenpolyeder um eine N-Eck-Region eines Kontrollnetzes definieren, gemäß Implementierungen der vorliegenden Offenbarung.
-
Bei einigen Implementierungen wird der beispielhafte Prozess 800 durch eine Computergrafikanwendung, z. B. das Programm 116, ausgeführt, wie in Bezug auf die Ausführung des Prozesses 400 von 4 diskutiert.
-
Bei 805 wird ein polygonales Kontrollnetz für eine glatte Oberfläche erhalten, die ein Objekt darstellt. Das erhaltene Netz kann ähnlich dem erhaltenen Netz bei 405 von 4 sein. Bei einigen Implementierungen kann das polygonale Kontrollnetz aus einem zuvor verarbeiteten Kontrollnetz erhalten werden, das als Eingabe für die Unterteilung im Prozess 800 bereitgestellt wird. In einigen Fällen kann das polygonale Kontrollnetz direkt als Eingabe von einem anderen Unterteilungsprozess oder von einem Speicherplatz erhalten werden. Zum Beispiel kann das polygonale Kontrollnetz nach dem Ausführen mindestens einer Unterteilung (z. B. gemäß Prozess 400 von 4 oder einem anderen Prozess) zum Unterteilen eines Kontrollnetzes erhalten werden. In noch einem weiteren Beispiel kann das polygonale Kontrollnetz basierend auf einer Benutzereingabe erhalten werden, die Informationen zum Lokalisieren des polygonalen Kontrollnetzes enthalten kann, z. B. einen Netzwerkpfad, eine Adresse, einen Speicherort im Speicher oder anderes.
-
Bei 810 wird bestimmt, ob es ein N-Eck in dem polygonalen Kontrollnetz gibt. Zum Beispiel kann das polygonale Kontrollnetz ein 5-Eck, wie in 7 beschrieben, ein 6-Eck, ein 7-Eck, neben anderen Beispielen für N-Ecke umfassen, die als Teil des polygonalen Kontrollnetzes bestimmt werden können. Das polygonale Kontrollnetz kann so bestimmt werden, dass es ein Kontrollpolygon mit N Scheitelpunkten umfasst, wobei N nicht gleich vier ist. Solche N-Ecke im Kontrollnetz können zu Sternpunkten auf der Grenzfläche führen.
-
Bei 815 wird nach der Bestimmung, dass es ein N-Eck in dem polygonalen Kontrollnetz gibt, ein außerordentlicher Punkt innerhalb des N-Ecks bestimmt und außerdem ein Satz von kantenseitigen Punkten an den Kanten des N-Ecks bestimmt. Die Bestimmungsoperation 815 wird ausgeführt, um eine Unterteilung 820 des N-Ecks durchzuführen und einen außerordentlichen Punkt in den Bereich des N-Ecks (als eine „außerordentliche Region“, die einem Bereich um einen außerordentlichen Punkt herum entspricht) und einen Satz von kantenseitigen Punkten an den Seiten des N-Ecks einzuführen. Durch Ausführen der Unterteilung 820 lassen sich N vierseitige Flächen erzeugen. Weiterhin wird nach der anfänglichen Unterteilung des ein N-Eck enthaltenden polygonalen Kontrollnetzes, um die N-Eck-Fläche durch die Unterteilung 820 zu entfernen. Das anfangs unterteilte Kontrollnetz umfasst einen außerordentlichen Punkt (wie bei 815 bestimmt), und durch die Durchführung einer Unterteilung des außerordentlichen Bereichs gemäß Verfeinerungsregeln basierend auf Eigenpolyederdaten lässt sich eine glatte Oberfläche mit besserer Genauigkeit und ohne Auftreten von Oberflächendiskontinuitäten generieren. In einigen Fällen kann die Unterteilung des anfänglich unterteilten Kontrollnetzes gemäß den Operationen durchgeführt werden, die für den Prozess 400 von 4 definiert sind.
-
Wenn bei 810 bestimmt wird, dass es in dem polygonalen Kontrollnetz kein N-Eck gibt, wird die Operation 830 ausgeführt, um Unterteilungen für einen Bereich um einen außerordentlichen Punkt herum (d. h. einen außerordentlichen Bereich) zu definieren, wobei der außerordentliche Punkt einer der Kontrollpunkte des polygonalen Kontrollnetzes ist. Sobald die anfängliche Unterteilung (820) des polygonalen Kontrollnetzes umfassend eines N-Ecks durchgeführt ist, kann das N-Eck in vierseitige Flächen unterteilt werden und kann einen außerordentlichen Punkt umfassen, wobei Unterteilungen für die Region um einen solchen außerordentlichen Punkt herum wie bei Prozess 800 weiter beschrieben durchgeführt werden können. In Fällen, in denen das polygonale Kontrollnetz anfänglich kein N-Eck enthält (basierend auf Auswertungen bei 810), kann der Prozess 800 mit anfänglichen Unterteilungen fortfahren, die für den Bereich um einen außerordentlichen Punkt des polygonalen Kontrollnetzes und wie entsprechend zu Implementierungen der vorliegenden Offenbarung (z. B. Prozess 800 von 8, Prozess 400 von 4) beschrieben durchgeführt werden.
-
Bei 820 wird das N-Eck an dem polygonalen Kontrollnetz gemäß dem bestimmten außerordentlichen Punkt und den Flächenpunkten unterteilt, wodurch ein Eigenpolyeder um den bestimmten außerordentlichen Punkt innerhalb des N-Ecks definiert wird. Die Definition eines Eigenpolyeders kann durch eine zusätzliche Unterteilung in den Bereich um den außerordentlichen Punkt erfolgen, der innerhalb des N-Ecks eingeführt wurde.
-
Bei 830 werden mit Daten, die ein Eigenpolyeder um den wie durch die Unterteilung bei 820 eingeführten außerordentlichen Punkt definieren, während jeder von einer oder mehreren Unterteilungen Positionen für den außerordentlichen Punkt und Flächenpunkte und Kantenpunkte von Flächen, die dem außerordentlichen Punkt benachbart sind, bestimmt. Bei einigen Implementierungen werden mit das Eigenpolyeder definierenden Daten Flächen um den außerordentlichen Punkt in dem Eigenpolyederraum (einem zweidimensionalen parametrisierten ebenen Raum) skaliert und verschoben.
-
Bei 840 wird die Region um den außerordentlichen Punkt herum unterteilt, wodurch ein verfeinertes Kontrollnetz erhalten wird. Die Unterteilung wird entweder für einen außerordentlichen Punkt durchgeführt, bei dem es sich um einen Kontrollpunkt des wie bei 805 erhaltenen Kontrollnetzes handelt, oder für einen außerordentlichen Punkt, der in einen N-Eck-Teil des Kontrollnetzes eingeführt wird. Die Unterteilung wird mindestens einmal durchgeführt, um Flächen um den außerordentlichen Punkt gemäß den aus den das Eigenpolyeder definierenden Daten für die Flächenpunkte und die Kantenpunkte definierten Anpassungsregeln zu skalieren und zu verschieben. Bei einigen Implementierungen kann die Unterteilung bei Operation 840 der diskutierten Unterteilung bei 410 von 4 entsprechen. Gemäß den Unterteilungen bei 840 werden ein erster Knotenabstand für die ersten Kanten und ein zweiter Knotenabstand für die zweiten Kanten innerhalb einer einzigen Unterteilung gleich.
-
Die bei 820 und 840 durchgeführten Unterteilungen sind NURCCS- und NURBS-kompatibel, und innerhalb von zwei Unterteilungen des Polygonnetzes wird ein Eigenpolyeder definiert, bei dem die ersten und zweiten Knotenabstände gleich sind.
-
Bei 850 wird bestimmt, ob ein vorbestimmtes Unterteilungsniveau erreicht ist. Bei einigen Implementierungen kann der Granularitätsgrad eines verfeinerten Kontrollnetzes vorkonfiguriert werden. Zum Beispiel kann es in einer Computergrafikanwendung vorkonfiguriert werden, bei der die Verfeinerungen ausgeführt werden.
-
Ist der vorbestimmte Unterteilungsgranularitätsgrad erreicht, wird bei 860 die glatte Oberfläche, die aus dem verfeinerten Kontrollnetz entsprechend dem vorbestimmten Unterteilungsgrad erzeugt wurde, zur Verwendung bereitgestellt. Zum Beispiel kann das verfeinerte Kontrollnetz zur Verwendung beim Rendern der glatten Oberfläche auf einer Anzeigevorrichtung bereitgestellt werden, die eine Computergrafikanwendung darstellt. Die erzeugte glatte Oberfläche kann auf einer Anzeigeschnittstelle einer Anzeigevorrichtung gerendert werden. Die gerenderte glatte Oberfläche kann in eine Animationsszene oder eine Videoproduktion integriert werden. In noch einem anderen Beispiel kann die erzeugte glatte Oberfläche zur Herstellung eines physischen Objekts verwendet werden, z. B. unter Verwendung einer CNC-Maschine, und basierend auf einer Werkzeugwegspezifikation, die basierend auf der glatten Oberfläche generiert werden kann.
-
Wird bei 850 bestimmt, dass der vorbestimmte Unterteilungsgranularitätsgrad nicht erreicht ist, wird eine weitere Unterteilung gemäß Operation 840 durchgeführt.
-
9A und 9B zeigen Beispiele polygonaler Kontrollnetze 910 und 920, die zwei außerordentliche Punkte umfassen, die entweder durch eine einzelne Fläche oder eine Kante verbunden sind und die verwendet werden, um ein verfeinertes Kontrollnetz basierend auf Daten zu erzeugen, die zwei Eigenpolyeder um die außerordentlichen Punkte herum definieren, gemäß Implementierungen der vorliegenden Offenbarung.
-
Bei 9A gibt es zwei außerordentliche Punkte 925, 930, die durch eine einzige Fläche verbunden sind, und diese Punkte sind Teil eines Kontrollnetzes, das einer Unterteilung unterzogen wird, mit der ein verfeinertes Kontrollnetz generiert wird, um eine glatte Oberfläche zu generieren. Bei einigen Implementierungen kann die Unterteilung des Kontrollnetzes gemäß der Logik zur Unterteilung eines Bereichs um einen außerordentlichen Punkt herum durchgeführt werden, wie in Verbindung mit 4 diskutiert. Da das Kontrollnetz außerordentliche Punkte umfasst, die mit einer Fläche verbunden sind, kann es bei einer unabhängigen Berechnung einer Unterteilung des Kontrollnetzes für diese außerordentlichen Punkte widersprüchliche bestimmte Flächen- und/oder Kantenpunkte für die Verbindungsfläche geben, die Teil des Gebiets um jeden dieser außerordentlichen Punkte ist.
-
Bei 9B gibt es zwei außerordentliche Punkte 940, 945, die durch eine Kante verbunden sind, und diese Punkte sind Teil eines Kontrollnetzes, das einer Unterteilung unterzogen wird, mit der ein verfeinertes Kontrollnetz generiert wird, um eine glatte Oberfläche zu generieren. Bei einigen Implementierungen kann die Unterteilung des Kontrollnetzes gemäß der Logik zur Unterteilung eines Bereichs um einen außerordentlichen Punkt herum durchgeführt werden, wie in Verbindung mit 4 diskutiert. Da das Kontrollnetz außerordentliche Punkte umfasst, die über eine Kante verbunden sind, kann es bei einer unabhängigen Berechnung einer Unterteilung des Kontrollnetzes für diese außerordentlichen Punkte widersprüchliche Flächen- und/oder Kantenpunkte für die Verbindungskante geben, die Teil des Gebiets um jeden dieser außerordentlichen Punkte ist.
-
Bei einigen Implementierungen können Eigenpolyederdaten für die verschiedenen außerordentlichen Punkte in einem einzigen Kontrollnetz verwendet werden - entweder dem Kontrollnetz 910 oder dem Kontrollnetz 920, und es können Anpassungen für Flächen- und Kantenpunkte durchgeführt werden, wie in Verbindung mit 4 diskutiert.
-
In beiden Fällen kann ein Eigenpolyeder für jeden der außerordentlichen Punkte 925 und 930 bzw. der außerordentlichen Punkte 940 und 945 definiert werden, und es lassen sich mit ersten und zweiten Daten, die jeweils einem der außerordentlichen Punkte entsprechen, Flächen- und Kantenpunkte generieren. Diese Flächen- und Kantenpunkte können als lineare Kombinationen von Kontrollpunkten von Flächen um die außerordentlichen Punkte herum ausgedrückt werden. Zum Beispiel kann ein Flächenpunkt innerhalb der Verbindungsfläche (als Teil des Kontrollnetzes 910 von 9A) als lineare Kombination der vier Kontrollpunkte auf dieser Fläche definiert werden, d. h. in der Form F = k0P0 + k1P1 + k2P2 + k3P3. Bei einigen Implementierungen können durch Berechnen von Flächenpunkten und Kantenpunkten für Fälle, in denen die außerordentlichen Punkte mit einer Fläche bzw. einer Kante verbunden sind, bestimmte Werte für Flächen- und Kantenpunkte widersprüchlich sein oder sich überlappen, da sie als lineare Kombinationen von sich teilweise oder vollständig überlappenden mit den Berechnungen zugeordneten Punkten bestimmt werden. Zum Beispiel kann es für das Kontrollnetz 910 widersprüchliche Ergebnisse für einen Flächenpunkt geben und für das Kontrollnetz 920 können widersprüchliche Ergebnisse für einen Kantenpunkt und für zwei Flächenpunkte vorliegen. Zum Auflösen von widersprüchlichen Ergebnissen und zur Bestimmung von Flächen- und Kantenpunkten, die für beide außerordentlichen Punkte funktionieren, kann ein Mittelwert der widersprüchlichen Werte genommen werden.
-
Bei einigen Implementierungen kann, wenn zwei Flächenpunktwerte - Faund Fb - für einen Flächenpunkt, die für verschiedene außerordentliche Punkte, die entweder durch eine Fläche oder eine Kante verbunden sind, berechnet wurden (A und B sind 925 und 930 in dem Kontrollnetz 910 von 9A und A und B sind 940 und 945 in dem Kontrollnetz 920 von 9B) widersprüchlich sind, dann kann ein tatsächlicher Flächenpunktwert zur Verwendung als Flächenpunkt für die Unterteilung des Kontrollpolygons (entweder 910 oder 920) als Mittelwert von Fa und Fb bestimmt werden, d. h. Fneu = (Fa und Fb)/2.
-
Bei einigen Implementierungen können die Flächenpunktwerte - Fa und Fb - basierend auf Werten für den Flächenpunkt aus Eigenpolyederdaten und basierend auf Anpassungen gemäß für die Flächen- und Kantenpunkte definieren Anpassungsregeln bestimmt werden.
-
Bei einigen Implementierungen wird basierend auf den berechneten Endwerten für Flächen- und Kantenpunkte die Unterteilung des Kontrollnetzes durchgeführt.
-
10 ist eine graphische Abbildung, die ein Beispiel zum Erzeugen einer krümmungsstetigen Grenzfläche eines polygonalen Kontrollnetzes 1000 zeigt, das sowohl einen außerordentlichen Punkt 1002 als auch ein N-Eck 1004A umfasst. Das Kontrollnetz 1000 kann wie für die Prozesse 400 von 4 und 800 von 8 beschrieben unterteilt werden. Wie gezeigt, können Unterteilungen des Kontrollnetzes bikubische Bezier-Patches 1010 als Grenzfläche für das Kontrollnetz 1000 erzeugen.
-
Die die Grenzfläche darstellenden Oberflächenpatches können auf beliebige Sternpunkte überprüft werden. Solange Sternpunkte verbleiben, können die Oberflächenpatches um die einzelnen Sternpunkte zum Entfernen von Diskontinuitäten an dem Sternpunkt prozessiert werden. Es können Unterteilungen basierend auf Eigenpolyederdaten und Anpassungsregeln, wie mindestens in 4 und 8 diskutiert, und gemäß Flächenpunkt-, Kantenpunkt- und Scheitelpunktregeln zum Definieren von Unterteilungen zum Erzielen eines Eigenpolyeders durchgeführt werden, sodass eine glatte Oberfläche mit mindestens C1-Stetigkeit erhalten wird. Von einem Sternpunkt abgelegene Patches auf der Oberfläche können ohne weitere Unterteilung beibehalten werden. Die Grenzfläche umfasst durchgehende Patches 1010 mit unterschiedlicher Größe oder gleicher „Größe“, d. h. der gleichen Unterteilungsebene (in 10 nicht gezeigt). Bei einigen Implementierungen können Patches, die sich außerhalb außerordentlicher Regionen befinden, umfassend Regionen, die N-Ecke sind oder einen Sternpunkt umfassen, als Patches, die der gleichen Unterteilungsebene (bzw. der gleichen Iteration) entsprechen, generiert werden und dieselbe „Größe“ haben. Mit einer solchen Unterteilung eines Teils des Kontrollnetzes auf eine bestimmte Unterteilungsebene (z. B. nur eine Unterteilungsebene) kann die Generierung von weniger Patches außerhalb von Bereichen, die einen Sternpunkt oder ein N-Eck umfassen, unterstützt werden. Mit einer Reduzierung der Anzahl der Unterteilungen für bestimmte Bereiche auf dem Kontrollnetz können Berechnungen von Ersatzpatches auf der Grenzfläche unterstützt werden.
-
Bei einigen Implementierungen können Ersatzoberflächenpatches für diskontinuierliche Oberflächenpatches unter Verwendung benachbarter Oberflächenpatches (die Nachbarn von Patches um einen Sternpunkt oder N-Eck-Flächen sind) aus den mehreren Oberflächenpatches erzeugt werden, wobei die Ersatzoberflächenpatches jeweils krümmungsstetig miteinander und mit den angrenzenden Oberflächenpatches sind (jeder Ersatzpatch weist eine G2-Stetigkeit mit seinen benachbarten Ersatzpatches und eine G2-Stetigkeit mit seinen benachbarten Ersatzpatches um denselben Sternpunkt in der Grenzfläche herum auf). Die berechneten Patches sind nur von den umgebenden Patches affin abhängig. Jeder der Ersatzoberflächenpatches kann ein Oberflächenpatch siebenten Grades sein, z. B. eine biseptische NURBS-Oberfläche, um krümmungsstetige Übergänge zu erzielen. Die Verwendung von Oberflächen höheren Grades stellen eine bessere Kontrolle über die Oberfläche bereit: Eine Grad-3-Oberfläche weist 4x4 Kontrollscheitelpunkte auf (insgesamt 16 Kontrollpunkte) und eine Grad-7-Oberfläche weist 8x8 (64) Kontrollscheitelpunkte auf. Dies stellt mehr Freiheit beim Anpassen der Grenze an die Nachbarn bereit, da dem Programm mehr Flexibilität (mehr Kontrollpunkte zum Optimieren) beim Erzeugen der Ersatzoberflächenpatches für die Grenzfläche gegeben wird.
-
11A ist ein beispielhaftes polygonales Kontrollnetz 1100 umfassend einen außerordentlichen Punkt. Bei einigen Implementierungen kann das polygonale Kontrollnetz 1100 ähnlich dem erhaltenen Kontrollnetz bei 405 von 4 oder bei 805 von 8 sein. Bei einigen weiteren Implementierungen kann das Kontrollnetz 1100 nach einer oder mehreren vorherigen Unterteilungen eines anfänglichen Kontrollnetzes generiert werden.
-
Bei einigen Implementierungen kann das polygonale Kontrollnetz 1100 so unterteilt werden, dass eine glatte Oberfläche für ein Objekt erhalten wird. Bei jeder Unterteilung des polygonalen Kontrollnetzes 110 wird eine Oberfläche mit (normalerweise) der vierfachen Flächenzahl generiert. Durch die Unterteilung kann eine glattere Form erzielt werden, die näher an der Form der Grenzfläche des Objekts liegt. Bei einigen Implementierungen kann der Unterteilungsprozess ohne Beschränkungen hinsichtlich der Anzahl von Malen iterativ wiederholt werden. Bei einigen Implementierungen kann eine vorbestimmte Unterteilungsebene des Kontrollnetzes so konfigurieren, dass ein verfeinertes Netz mit einer bestimmten Unterteilungsebene erhalten wird.
-
Bei einigen Implementierungen können die Unterteilungsregeln so gewählt werden, dass die Grenzfläche zu einer kubischen NURBS-Fläche konvergiert.
-
Wie in 11A gezeigt sind Flächen auf dem Kontrollnetz als Nachbarn eines außerordentlichen Punktteils des Kontrollnetzes gekennzeichnet. Die 1-Nachbarschaft umfasst jene Flächen, die unmittelbar an einen außerordentlichen Punkt angrenzen. Im Beispiel von 11A weist der außerordentliche Punkt fünf Kanten auf. Die Flächen der 2-Nachbarschaft umfassen Flächen, die jene Flächen berühren, die als 1-Nachbarschaft definiert sind, und können als Nachbarn der ersten Ebene von Flächen um den außerordentlichen Punkt herum definiert werden. Ferner können 3-Nachbarschaft, 4-Nachbarschaft usw. für das Kontrollnetz auf einer gegebenen Unterteilungsebene definiert werden.
-
In dem beispielhaften Kontrollnetz 1100 sind die als 3-Nachbarschaft bezeichneten Flächen Flächen, die nicht benachbart zu einem außerordentlichen Punkt umgebenden Flächen sind. Bei NURBS-Flächen können die mit „3“ gekennzeichneten Flächen exakt eine Grenzfläche darstellen, unter Verwendung von kubischen Bezier-Patches, bei denen ein Patch für eine Fläche aus dem Kontrollnetz erstellt wird. Diese Patches können für Patches erzeugt werden, die Nachbarn der zweiten Ebene von Flächen um einen außerordentlichen Punkt sind (d. h. 3-Nachbarschaft), und auch für alle anderen Patches, die auf einer nachfolgenden Ebene benachbart zu dieser zweiten Ebene sind. Bei einigen Implementierungen können Bereiche umfassend Flächen, die nicht an einen außerordentlichen Bereich angrenzen (d. h. umfassend Flächen um einen außerordentlichen Punkt), nicht unterteilt werden, und mindestens eine Unterteilung kann für Kontrollpolygonflächen in dem außerordentlichen Bereich durchgeführt werden.
-
Bei einigen Implementierungen kann für jede Fläche, die nicht in der 2-Nachbarschaft oder der 1-Nachbarschaft liegt, ein Patch für eine Fläche erstellt werden. Durch Erstellen eines Patches aus einem Flächenteil aus mindestens der 3-Nachbarschaft kann ohne weitere Unterteilungen eine glatte Darstellung der Grenzfläche für Bereiche, die nicht zu nahe an einem Sternpunkt liegen, erzielt werden.
-
Wenn bei einigen Implementierungen der lokale Bereich der Oberfläche um den Sternpunkt herum einheitlich ist, dann kann durch Anwendung des gleichen Prozesses zum Erstellen eines Patches für jede Fläche eine exakte Grenzflächendarstellung für Flächen, die sich in der 2-Nachbarschaft befinden, erhalten werden. Ist die Oberfläche ungleichmäßig, kann der Bereich um den Sternpunkt herum zur Erzeugung der Grenzflächendarstellung weiter unterteilt werden.
-
Bei einigen Implementierungen können die Patches mit dem NURBS-Knoteneinfügungsalgorithmus berechnet werden, der lokal ausgeführt werden kann, bis eine Multiplizität gleich dem Grad für jede der die Fläche umgebenden Kanten erreicht ist.
-
11B zeigt das beispielhafte polygonale Kontrollnetz 1100 von 11A, das Unterteilungen umfasst, die für Flächen definiert sind, bei denen es sich um Nachbarn der ersten und zweiten Ebene zu dem außerordentlichen Punkt handelt, um ein verfeinertes Kontrollnetz zu generieren. 11B stellt eine Unterteilung dar, die für Flächen in den 1- und 2-Nachbarschaften durchgeführt wird. Mit der Unterteilung lassen sich zusätzliche Informationen über die Grenzfläche erhalten. 11B zeigt durchgeführte Unterteilungen für die gesamten Flächen der 2-Nachbarschaft, bei der es sich um einen Bereich handelt, in dem Bezier-Patches noch nicht berechnet werden können, da sie Flächen um einen außerordentlichen Punkt herum benachbart sind. Jede unterteilte Fläche wird zu vier Flächen. Die frühere 2-Nachbarschaft kann nun neu definiert und als 3- und 4-Nachbarschaft bezeichnet werden. Diese Außenflächen (Teil der 2-Nachbarschaft) können gemäß dem gleichen Verfahren wie oben für Flächen in der Anfangsnachbarschaft 3 und höher in Bezug auf 11A diskutiert auf ihre Bezier-Patches übertragen werden. Jeder „Keil“ kann 12 zusätzliche Bezier-Patches erzeugen. In dem Kontrollnetz 1100 des vorliegenden Beispiels ist die Valenz 5, was 5 mal 12 gleich 60 zusätzlichen Patches pro Unterteilung entspricht.
-
Bei einigen Implementierungen kann eine Optimierung der Anzahl der erzeugten Patches für Flächen in der 2-Nachbarschaft bereitgestellt werden, um die Anzahl an Patches zu reduzieren. Durch eine Reduzierung der Anzahl an Patches wird die Ressourcennutzung verbessert, da weniger Berechnungsoperationen für die Patches durchgeführt werden müssen. Bei dem Beispiel von 11B können anwendbare Unterteilungsregeln NURBS-Knoteneinfügungsregeln äquivalent sein, wenn Unterteilungen ausreichend weit entfernt von einem außerordentlichen Punkt durchgeführt werden. Bei dieser Eigenschaft einer Durchführung von Unterteilungen ausreichend weit entfernt von dem außerordentlichen Punkt kann ein reduziertes Unterteilungsmuster angewendet werden, das dem in 12 dargestellten Muster entspricht.
-
12 zeigt das beispielhafte polygonale Kontrollnetz 1100 von 11A, das Unterteilungen umfasst, die so definiert sind, dass ein verfeinertes Kontrollnetz mit einer reduzierten Anzahl von Unterteilungen gemäß Implementierungen der vorliegenden Offenbarung generiert wird. Das Kontrollnetz 1100 wird in einem Bereich um einen außerordentlichen Punkt herum so unterteilt, dass jede Fläche in vier Flächen unterteilt wird. Einige der ehemaligen 2-Nachbarschaft-Flächen, wie für 11A und 11B diskutiert, sind zweigeteilt, und einige der Flächen in der 2-Nachbarschaft wurden überhaupt nicht geteilt. Im Fall von zweigeteilten Flächen können neue Kantenpunkte unter Anwendung eines herkömmlichen NURBS-Knoteneinfügungsalgorithmus berechnet werden, nicht unter Verwendung der Unterteilungsregeln. Die ehemaligen 2-Nachbarschaft-Flächen werden zu Flächen der 3-Nachbarschaft, und für diese Flächen können Bezier-Patches berechnet werden. Jeder „Keil“ kann 5 zusätzliche Bezier-Patches erzeugen, bzw. insgesamt 25 zusätzliche Patches, wenn der außerordentliche Punkt die Valenz 5 hat. Bei Unterteilungen, bei denen unterschiedliche Anzahlen von geteilten Flächen auf unterschiedlichen Flächenebenen um einen außerordentlichen Punkt herum definiert werden, wird eine Verbesserung in der Anzahl der unterteilten Patches erreicht. Im vorliegenden Beispiel sind die neuen Patches bei den Nachbarn der ersten Ebene (2-Nachbarschaft) für Flächen um den außerordentlichen Punkt herum 25, was im Vergleich zu einer Patchanzahl von 60 Patches bei einer Unterteilung jeder Fläche in vier Flächen deutlich niedriger ist.
-
Bei einigen Implementierungen ist ein solches Unterteilungsschema mit reduzierter Patchanzahl NURCCS- und NURBS-kompatibel, da die neuen Flächen in der 2-Nachbarschaft basierend auf dem NURBS-Algorithmus bestimmt werden können. Ferner können Unterteilungen für die Flächen um den außerordentlichen Punkt herum, d. h. Flächen, die in 1-Nachbarschaft sind, wie in Verbindung mit 4 beschrieben durchgeführt werden. Daher ist die Unterteilung des Kontrollnetzes 1100 durch Anwenden eines Algorithmus mit reduzierter Patchanzahl und Unterteilung(en), wie für 4 diskutiert (basierend auf Eigenpolyederdaten und Anpassungsregeln) NURCCS- und NURBS-kompatibel.
-
13 ist eine schematische Darstellung eines Datenverarbeitungssystems mit einer Datenverarbeitungsvorrichtung 1300, die als Client oder als Server programmiert werden kann. Die Datenverarbeitungsvorrichtung 1300 ist über ein Netzwerk 1380 mit einem oder mehreren Computern 1390 verbunden. Obwohl in 13 nur ein Computer gezeigt ist, können als Datenverarbeitungsvorrichtung 1300 mehrere Computer verwendet werden. Die Datenverarbeitungsvorrichtung 1300 umfasst verschiedene Softwaremodule, die zwischen einer Anwendungsebene und einem Betriebssystem verteilt sein können. Diese können ausführbare und/oder interpretierbare Softwareprogramme oder Bibliotheken umfassen, umfassend Tools und Dienste eines oder mehrerer 3D-Modellierungsprogramme 1304, die die hier beschriebenen Systeme und Techniken implementieren. Somit kann(können) das(die) 3D-Modellierungsprogramm(e) 1304 CAD-Programm(e) 1304 sein, die 3D-Modellierungsfunktionen implementieren und eine Unterteilungstechnik umfassen, die durch Unterteilen eines polygonalen Kontrollnetzes gemäß auf Eigenpolyederdaten und Anpassungsregel basierenden Verfeinerungsregeln eine krümmungsstetige Grenzfläche erzeugt.
-
Ferner kann(können) das(die) Programm(e) 1304 physikalische Simulationsoperationen (Finite-Elemente-Analyse (FEA) oder andere), generative Designoperationen (z. B. unter Verwendung von Level-Set-basierten Verfahren für generatives Design), Fertigungssteuerungsoperationen (z. B. Generieren und/oder Anwenden von Werkzeugwegspezifikationen zur Herstellung von entworfenen Objekten) und/oder Filmanimationsproduktion implementieren. Die Anzahl der verwendeten Softwaremodule kann von einer Implementierung zur anderen variieren. Darüber hinaus können die Softwaremodule auf einer oder mehreren Datenverarbeitungsvorrichtungen verteilt sein, die durch ein oder mehrere Computernetzwerke oder andere geeignete Kommunikationsnetzwerke verbunden sind.
-
Die Datenverarbeitungsvorrichtung 1300 umfasst auch Hardware- oder Firmwaregeräte, die einen oder mehrere Prozessoren 1312, eine oder mehrere zusätzliche Geräte 1314, ein computerlesbares Medium 1316, eine Kommunikationsschnittstelle 1318 und eine oder mehrere Benutzeroberflächengeräte 1320 umfassen. Jeder Prozessor 1312 ist in der Lage, Anweisungen zur Ausführung innerhalb der Datenverarbeitungsvorrichtung 1300 zu verarbeiten. Bei einigen Implementierungen ist der Prozessor 1312 ein Single- oder Multithread-Prozessor. Jeder Prozessor 1312 ist in der Lage, Anweisungen zu verarbeiten, die auf dem computerlesbaren Medium 1316 oder auf einem Speichergerät, wie etwa eines der zusätzlichen Geräte 1314, gespeichert sind. Die Datenverarbeitungsvorrichtung 1300 verwendet die Kommunikationsschnittstelle 1318, um zum Beispiel über das Netzwerk 1380 mit einem oder mehreren Computern 1390 zu kommunizieren. Beispiele für Benutzerschnittstellengeräte 1320 schließen ein Display, eine Kamera, einen Lautsprecher, ein Mikrofon, ein taktiles Feedbackgerät, eine Tastatur, eine Maus und VR- und/oder AR-Geräte ein. Die Datenverarbeitungsvorrichtung 1300 kann Anweisungen speichern, die Operationen im Zusammenhang mit dem(den) oben beschriebenen Programm(en) implementieren, zum Beispiel auf dem computerlesbaren Medium 1316 oder einem oder mehreren zusätzlichen Geräten 1314, zum Beispiel einem Festplattengerät und/oder einem optischen Plattengerät und/oder einem Bandgerät und/oder einem Festkörperspeichergerät.
-
Ausführungsformen des in der vorliegenden Beschreibung beschriebenen Gegenstands und der in der vorliegenden Beschreibung beschriebenen funktionalen Operationen können in digitalen elektronischen Schaltungen oder in Computer-Software, - Firmware oder -Hardware implementiert sein, einschließlich der in der vorliegenden Beschreibung und ihren strukturellen Äquivalenten offenbarten Strukturen, oder in Kombinationen einer oder mehrerer von ihnen. Ausführungsformen des in der vorliegenden Beschreibung beschriebenen Gegenstands können mit einem oder mehreren Modulen von Computerprogrammanweisungen, codiert auf einem nichtflüchtigen computerlesbaren Medium zum Durchführen durch oder für die Steuerung des Betriebs einer Datenverarbeitungsvorrichtung implementiert sein. Das computerlesbare Medium kann ein gefertigtes Produkt sein, wie beispielsweise eine Festplatte in einem Computersystem oder eine optische Platte, die über Einzelhandelskanäle verkauft wird, oder ein eingebettetes System. Das computerlesbare Medium kann separat erworben und später mit dem einen oder den mehreren Modulen von Computerprogrammanweisungen codiert werden, z. B. nach der Lieferung des einen oder der mehreren Module von Computerprogrammanweisungen über ein drahtgebundenes oder drahtloses Netzwerk. Das computerlesbare Medium kann ein maschinenlesbares Speichergerät, ein maschinenlesbares Speichersubstrat, ein Speichergerät oder eine Kombination von einem oder mehreren davon sein.
-
Die Bezeichnung „Datenverarbeitungsvorrichtung“ umfasst alle Arten von Vorrichtungen, Geräten und Maschinen für die Verarbeitung von Daten, darunter zum Beispiel einen programmierbaren Prozessor, einen Computer oder mehrere Prozessoren oder Computer. Die Vorrichtung kann zusätzlich zu Hardware Code umfassen, der eine Ausführungsumgebung für das jeweilige Computerprogramm erzeugt, zum Beispiel Code, der Prozessor-Firmware, einen Protokollstapel, ein Datenbankverwaltungssystem, ein Betriebssystem, eine plattformübergreifende Laufzeitumgebung, eine virtuelle Maschine oder eine Kombination aus einer oder mehreren davon darstellt. Die Vorrichtung kann außerdem verschiedene Rechenmodellinfrastrukturen umsetzen, wie Web-Dienste, verteiltes Rechnen und Grid-Computing-Infrastrukturen.
-
Ein Computerprogramm (auch bekannt als Programm, Software, Softwareanwendung, Skript oder Code) kann in jeder geeigneten Form von Programmiersprache geschrieben sein, einschließlich kompilierter oder interpretierter Sprachen, deklarativer oder prozeduraler Sprachen, und es kann in jeder geeigneten Form eingesetzt werden, darunter als eigenständiges Programm oder als Modul, Komponente, Unterprogramm oder sonstige Einheit, die zur Verwendung in einer Computerumgebung geeignet ist. Ein Computerprogramm entspricht nicht unbedingt einer Datei in einem Dateisystem. Ein Programm kann in einem Teil einer Datei gespeichert werden, der andere Programme oder Daten enthält (z. B. ein oder mehrere Skripte, die in einem Markup-Language-Dokument gespeichert sind), in einer einzelnen Datei, die dem jeweiligen Programm zugeordnet ist, oder in mehreren koordinierten Dateien (z. B. Dateien, die ein oder mehrere Module, Unterprogramme oder Codeteile speichern). Ein Computerprogramm kann eingesetzt werden, um auf einem Computer oder auf mehreren Computern ausgeführt zu werden, die sich an einem Standort befinden oder über mehrere Standorte verteilt und durch ein Kommunikationsnetzwerk miteinander verbunden sind.
-
Die in der vorliegenden Beschreibung beschriebenen Prozesse und logischen Abläufe können von einem oder mehreren programmierbaren Prozessoren ausgeführt werden, die ein oder mehrere Computerprogramme ausführen, um Funktionen durch Bearbeiten von Eingabedaten und Erzeugen von Ausgaben auszuführen. Die Prozesse und logischen Abläufe können auch durch Sonderlogikschaltungen ausgeführt werden bzw. die Vorrichtung als solche implementiert sein, zum Beispiel ein Field-Programmable Gate Array (FPGA, feldprogrammierbares Gate-Array) oder Application-Specific Integrated Circuit (ASIC, anwendungsspezifische integrierte Schaltung).
-
Prozessoren, die für die Ausführung eines Computerprogramms geeignet sind, umfassen beispielsweise sowohl Allzweck- als auch Spezial-Mikroprozessoren und einen oder mehrere Prozessoren einer beliebigen Art von Digitalcomputer. Im Allgemeinen empfängt ein Prozessor Befehle und Daten von einem Nur-Lese-Speicher oder einem Direktzugriffsspeicher oder beiden. Die wesentlichen Elemente eines Computers sind ein Prozessor zum Ausführen von Anweisungen und eine oder mehrere Speichervorrichtungen zum Speichern von Anweisungen und Daten. Im Allgemeinen umfasst ein Computer auch eine oder mehrere Massenspeichervorrichtungen zum Speichern von Daten, z. B. magnetische, magnetooptische Platten oder optische Platten, oder ist entsprechend wirkgekoppelt, um Daten zu empfangen oder zu übertragen oder beides. Ein Computer muss jedoch nicht über solche Geräte verfügen. Darüber hinaus kann ein Computer in ein anderes Gerät eingebettet werden, z. B. in ein Mobiltelefon, einen Personal Digital Assistant (PDA), einen mobilen Audio- oder Videoplayer, eine Spielkonsole, ein Global Positioning System (GPS)-Empfänger oder ein tragbares Speichergerät (z. B. ein USB-Flash-Laufwerk mit universellem seriellem Bus), um nur einige zu nennen. Zum Speichern von Computerprogrammanweisungen und Daten geeignete Geräte umfassen alle Formen von nichtflüchtigen Speichern, Medien und Speichervorrichtungen, darunter Halbleiterspeichervorrichtungen wie löschbarer programmierbarer Lesespeicher (Erasable Programmable Read-Only Memory, EPROM), elektrisch löschbarer programmierbarer Lesespeicher (Electrically Erasable Programmable Read-Only Memory, EEPROM) und Flash-Speichervorrichtungen; Magnetplatten wie interne Festplatten und Wechselfestplatten; magnetooptische Disks; und CD-ROM- und DVD-ROM-Disks. Prozessor und Speicher können durch Sonderlogikschaltungen ergänzt oder in diese eingebaut werden.
-
Um eine Interaktion mit einem Benutzer zu ermöglichen, können Ausführungsformen des in diesem Dokument beschriebenen Gegenstands auf einem Computer, der ein Anzeigegerät aufweist, implementiert werden, z. B. einer Liquid Crystal Display (LCD, Flüssigkristallanzeige)-Gerät, einer Organic Light Emitting Diode (OLED, organische Leuchtdioden)-Anzeigegerät, oder einen anderen Monitor, um dem Benutzer Informationen anzuzeigen, und eine Tastatur und ein Zeigegerät, z. B. eine Maus oder ein Trackball, durch die der Benutzer Eingaben in den Computer bereitstellen kann. Es können auch andere Arten von Geräten verwendet werden, um eine Interaktion mit einem Benutzer zu ermöglichen; zum Beispiel kann das dem Benutzer bereitgestellte Feedback eine beliebige geeignete Form von sensorischem Feedback sein, z. B. visuelles Feedback, auditives Feedback oder taktiles Feedback; und Eingaben vom Benutzer können in einer beliebigen geeigneten Form entgegengenommen werden, einschließlich akustischer, sprachlicher oder taktiler Eingaben.
-
Das Computersystem kann Clients und Server umfassen. Ein Client und ein Server sind im Allgemeinen voneinander entfernt und interagieren normalerweise über ein Kommunikationsnetzwerk. Die Client-Server-Beziehung entsteht dadurch, dass Computerprogramme auf den jeweiligen Computern laufen und in einer Client-Server-Beziehung zueinander stehen. Ausführungsformen des in diesem Dokument beschriebenen Gegenstands können in einem Computersystem implementiert werden, das eine Back-End-Komponente umfasst, z. B. als Datenserver, oder das eine Middleware-Komponente umfasst, z. B. einen Anwendungsserver, oder das eine Front- End-Komponente umfasst, z. B. ein Client-Computer mit einer grafischen Benutzeroberfläche oder einer Browser-Benutzeroberfläche, über die ein Benutzer mit einer Implementierung des in diesem Dokument beschriebenen Gegenstands interagieren kann, oder eine beliebige Kombination aus einer oder mehreren solcher Back-End-, Middleware- oder Front-End-Komponenten. Die Komponenten des Systems können durch eine beliebige geeignete Form oder ein beliebiges geeignete Medium der digitalen Datenkommunikation, z. B. ein Kommunikationsnetzwerk, miteinander verbunden sein. Beispiele für Kommunikationsnetze umfassen ein lokales Netz („LAN“) und ein Weitverkehrsnetz („WAN“), ein Inter-Netz (z. B. das Internet) und Peer-to-Peer-Netze (z. B. Ad-hoc-Peerzu Peer-Netzwerke).
-
Obwohl diese Beschreibung viele Implementierungsdetails enthält, sollten diese nicht als Beschränkungen des Umfangs dessen, was beansprucht wird oder beansprucht werden kann, sondern eher als Beschreibungen von Merkmalen ausgelegt werden, die für bestimmte Ausführungsformen des offenbarten Gegenstands spezifisch sind. Bestimmte Merkmale, die in diesem Dokument im Zusammenhang mit separaten Ausführungsformen beschrieben werden, können auch in Kombination in einer einzelnen Ausführungsform implementiert werden. Umgekehrt können verschiedene Merkmale, die im Zusammenhang mit einer einzelnen Ausführungsform beschrieben werden, auch in unterschiedlicher Weise separat oder in beliebiger geeigneter Kombination implementiert werden. Obwohl ferner Merkmale vorstehend als in bestimmten Kombinationen wirkend beschrieben sein mögen, können in einigen Fällen ein oder mehrere Merkmale einer Kombination aus dieser Kombination herausgelöst werden, und die Kombination kann auf eine untergeordnete Kombination oder eine Abwandlung einer untergeordneten Kombination gerichtet sein.
-
Auch wenn die Operationen in den Zeichnungen in einer bestimmten Reihenfolge dargestellt sind, sollte dies nicht so verstanden werden, dass diese Operationen in der bestimmten gezeigten Reihenfolge oder in sequentieller Reihenfolge oder dass alle veranschaulichten Operationen ausgeführt werden müssen, um die gewünschten Ergebnisse zu erzielen. Unter bestimmten Umständen können Multitasking und Parallelverarbeitung vorteilhaft sein. Darüber hinaus sollte die Trennung verschiedener Systemkomponenten in den oben beschriebenen Ausführungsformen nicht so verstanden werden, dass sie eine solche Trennung in allen Ausführungsformen erfordert, und es versteht sich, dass die beschriebenen Programmkomponenten und Systeme im Allgemeinen zusammen in einem einzigen Softwareprodukt integriert oder in mehrere Softwareprodukte gepackt werden können.
-
Somit wurden bestimmte Ausführungsformen der Erfindung beschrieben. Andere Ausführungsformen liegen im Umfang der folgenden Ansprüche. Darüber hinaus können die in den Ansprüchen genannten Handlungen in einer anderen Reihenfolge ausgeführt werden und dennoch wünschenswerte Ergebnisse erzielen.
-
Beispiele
-
Beispiel 1: Ein computerimplementiertes Verfahren, beinhaltend: Erhalten, durch eine Computergrafikanwendung, eines polygonalen Kontrollnetzes für eine glatte Oberfläche, die ein Objekt darstellt; Unterteilen des polygonalen Kontrollnetzes durch die Computergrafikanwendung in eine oder mehrere Unterteilungen unter Erhalt eines verfeinerten Kontrollnetzes, wobei das Unterteilen das Verwenden von ein Eigenpolyeder um einen außerordentlichen Punkt im polygonalen Kontrollnetz definierenden Daten zur Erzeugung von Anpassungsregeln zum Bestimmen von Positionen des außerordentlichen Punkts und Flächenpunkten und Kantenpunkten für Flächen neben dem außerordentlichen Punkt während jeder der einen oder mehreren Unterteilungen beinhaltet, wobei die das Eigenpolyeder definierenden Daten in einem parametrisierten zweidimensionalen Raum als ein ebenes Netz umfassend des außerordentlichen Punkts als Anfangsscheitelpunkt in einer Ebene definiert sind, und Bestimmen der Positionen für den außerordentlichen Punkt, die Flächenpunkte und die Kantenpunkte für die an den außerordentlichen Punkt angrenzenden Flächen gemäß den Anpassungsregeln, wobei erste Knotenabstände (di) für erste Kanten und zweite Knotenabstände (ei) für zweite Kanten innerhalb einer von der Computergrafikanwendung verwendeten numerischen Genauigkeit innerhalb einer einzigen Unterteilung der einen oder mehreren Unterteilungen einander gleich werden, wobei die ersten Kanten direkt mit dem außerordentlichen Punkt verbunden sind und sich innerhalb eines Bereichs befinden, der dem Eigenpolyeder im parametrisierten zweidimensionalen Raum entspricht, und die zweiten Kanten direkt mit den ersten Kanten verbunden sind und sich außerhalb des Bereichs befinden, der dem Eigenpolyeder im parametrisierten zweidimensionalen Raum entspricht; und Generieren der glatten Oberfläche zur Ausgabe aus dem verfeinerten Kontrollnetz durch die Computergrafikanwendung.
-
Beispiel 2: Das computerimplementierte Verfahren von Beispiel1, wobei der außerordentliche Punkt einer von vielen Kontrollscheitelpunkten in dem erhaltenen polygonalen Kontrollnetz ist und wobei der außerordentliche Punkt ein ungleichmäßiger Punkt in dem polygonalen Kontrollnetz ist.
-
Beispiel 3: Das computerimplementierte Verfahren von Beispiel 1 oder 2, wobei der außerordentliche Punkt ein erster außerordentlicher Punkt ist, die das Eigenpolyeder definierenden Daten erste Daten sind, die ein erstes, für den ersten außerordentlichen Punkt definiertes Eigenpolyeder definieren, das erhaltene polygonale Kontrollnetz einen zweiten außerordentlichen Punkt mit zugeordneten zweiten Daten umfasst, die ein zweites, für den zweiten außerordentlichen Punkt definiertes Eigenpolyeder definieren, wobei der erste und der zweite außerordentliche Punkt entweder durch eine einzelne Fläche oder eine Kante verbunden sind, wobei das Verwenden Verwenden der ersten, das erste für den ersten außerordentlichen Punkt definierte Eigenpolyeder definierenden Daten und der zweiten, das zweite für den zweiten außerordentlichen Punkt definierte Eigenpolyeder definierenden Daten umfasst, wobei das Bestimmen Anpassen eines Flächenpunktwerts für einen ersten Flächenpunkt einer sowohl dem ersten als auch dem zweiten außerordentlichen Punkt benachbarten Fläche aus den ersten, das erste Eigenpolyeder definierenden Daten umfasst, wobei ein erster angepasster Flächenpunktwert für den ersten Flächenpunkt basierend auf den ersten, das erste Eigenpolyeder definierenden Daten und gemäß den Anpassungsregeln zur Bestimmung von Positionen der Flächenpunkte in einem Raum der benachbarten Fläche bestimmt wird, wobei der erste angepasste Flächenpunktwert als eine erste lineare Kombination von Kontrollpunkten des polygonalen Kontrollnetzes in den ersten, das erste Eigenpolyeder definierenden Daten definiert ist, wobei das Verfahren weiterhin Anpassen eines Flächenpunktwerts für den ersten Flächenpunkt aus den zweiten, das zweite Eigenpolyeder definierenden Daten umfasst, wobei ein zweiter angepasster Flächenpunktwert für den ersten Flächenpunkt basierend auf den zweiten, das zweite Eigenpolyeder definierenden Daten und gemäß den Anpassungsregeln zur Bestimmung von Positionen der Flächenpunkte in einem Raum der angrenzenden Fläche bestimmt wird, wobei der zweite angepasste Flächenpunktwert als eine zweite lineare Kombination von Kontrollpunkten des polygonalen Kontrollnetzes in den zweiten, das zweite Eigenpolyeder definierenden Daten definiert ist, wobei der erste angepasste Flächenpunktwert im Widerspruch zu dem zweiten angepassten Flächenpunktwert steht und wobei das Unterteilen Bestimmen eines endgültigen angepassten Flächenpunktwerts für den ersten Flächenpunkt als einen Mittelwert der widersprüchlichen Werte des ersten angepassten Flächenpunktwerts und des zweiten angepassten Flächenpunktwerts umfasst, wobei der endgültige angepasste Flächenpunktwert zum Unterteilen des polygonalen Kontrollnetzes verwendet wird.
-
Beispiel 4: Das computerimplementierte Verfahren von Beispiel 1, 2 oder 3, wobei der außerordentliche Punkt ein erster außerordentlicher Punkt ist, die das Eigenpolyeder definierenden Daten erste Daten sind, die ein erstes, für den ersten außerordentlichen Punkt definiertes Eigenpolyeder definieren, das erhaltene polygonale Kontrollnetz einen zweiten außerordentlichen Punkt mit zugeordneten zweiten Daten umfasst, die ein zweites, für den zweiten außerordentlichen Punkt definiertes Eigenpolyeder definieren, wobei der erste und der zweite außerordentliche Punkt entweder durch eine einzelne Fläche oder eine Kante verbunden sind, wobei das Verwenden Verwenden der ersten, das erste für den ersten außerordentlichen Punkt definierte Eigenpolyeder definierenden Daten und der zweiten, das zweite für den zweiten außerordentlichen Punkt definierte Eigenpolyeder definierenden Daten umfasst, wobei das Bestimmen Anpassen eines Kantenpunktwerts für einen ersten Kantenpunkt einer sowohl dem ersten als auch dem zweiten außerordentlichen Punkt benachbarten Fläche aus den ersten Daten des ersten Eigenpolyeders umfasst, wobei ein erster angepasster Kantenpunktwert für den ersten Kantenpunkt basierend auf den ersten, das erste Eigenpolyeder definierenden Daten und gemäß den Anpassungsregeln zur Bestimmung von Positionen der Kantenpunkte in einem Raum der benachbarten Fläche bestimmt wird, wobei der erste angepasste Kantenpunktwert als eine erste lineare Kombination von Kontrollpunkten des polygonalen Kontrollnetzes in den ersten, das erste Eigenpolyeder definierenden Daten definiert ist, wobei das Verfahren weiterhin Anpassen eines Kantenpunktwerts für den ersten Kantenpunkt aus den zweiten Daten des zweiten Eigenpolyeders umfasst, wobei ein zweiter angepasster Kantenpunktwert für den ersten Kantenpunkt basierend auf den zweiten, das zweite Eigenpolyeder definierenden Daten und gemäß den Anpassungsregeln zur Bestimmung von Positionen der Kantenpunkte in einem Raum der angrenzenden Fläche bestimmt wird, wobei der zweite angepasste Kantenpunktwert als eine zweite lineare Kombination von Kontrollpunkten des polygonalen Kontrollnetzes in den zweiten, das zweite Eigenpolyeder definierenden Daten definiert ist, wobei der erste angepasste Kantenpunktwert im Widerspruch zu dem zweiten angepassten Kantenpunktwert steht und wobei das Unterteilen Bestimmen eines endgültigen angepassten Kantenpunktwerts für den ersten Kantenpunkt als einen Mittelwert der widersprüchlichen Werte des ersten angepassten Kantenpunktwerts und des zweiten angepassten Kantenpunktwerts umfasst, wobei der endgültige angepasste Kantenpunktwert zum Unterteilen des polygonalen Kontrollnetzes verwendet wird.
-
Beispiel 5: Das computerimplementierte Verfahren von Beispiel 1, 2, 3 oder 4, wobei das erhaltene polygonale Kontrollnetz ein N-Eck umfasst, die eine oder die mehreren Unterteilungen zwei oder mehr Unterteilungen sind und wobei die Unterteilung eine anfängliche Unterteilung als eine erste Unterteilung der zwei oder mehr Unterteilungen beinhaltet und der außerordentliche Punkt innerhalb des N-Ecks durch die anfängliche Unterteilung erzeugt wird.
-
Beispiel 6: Das computerimplementierte Verfahren von Beispiel 5, wobei die anfängliche Unterteilung das Lokalisieren des außerordentlichen Punkts in einer Fläche des N-Ecks und eines anfänglichen Satzes von das Eigenpolyeder definierenden Randpunkten beinhaltet, wobei der außerordentliche Punkt in der Fläche des N-Ecks und der anfängliche Satz von Kantenpunkten gemäß einer Non-Uniform Rational Catmull-Clark Subdivision (NURCCS)-Regel bestimmt wird.
-
Beispiel 7: Das computerimplementierte Verfahren von Beispiel 1, 2, 3, 4, 5 oder 6, wobei die Unterteilung mit Non-Uniform Rational Catmull-Clark Subdivision (NURCCS)- und Non-Uniform Rational Basis Spline (NURBS)-Oberflächen kompatibel ist.
-
Beispiel 8: Das computerimplementierte Verfahren von Beispiel 1, 2, 3, 4, 5, 6 oder 7, wobei die eine oder die mehreren Unterteilungen mindestens eine Unterteilung von Kontrollpolygonflächen in einem außerordentlichen Bereich des polygonalen Kontrollnetzes, jedoch nicht in einer an die außerordentliche Region angrenzenden Region beinhalten.
-
Beispiel 9: Das computerimplementierte Verfahren von Beispiel 8, wobei das Bestimmen, gemäß den Anpassungsregeln, der Positionen für den außerordentlichen Punkt, die Flächenpunkte und die Kantenpunkte für die Flächen benachbart zu dem außerordentlichen Punkt Folgendes beinhaltet: Berechnen angepasster Flächenpunkte und Kantenpunkte für die Flächen um den außerordentlichen Punkt herum an den entsprechenden Flächen- und Kantenräumen gemäß den Anpassungsregeln und den das Eigenpolyeder definierenden Daten; und Umwandeln der angepassten Flächenpunkte und Kantenpunkte in Verfeinerungsregeln zum Bestimmen der Positionen der Flächen- und Kantenpunkte auf dem polygonalen Kontrollnetz zur Generierung des verfeinerten Kontrollnetzes.
-
Beispiel 10: Das computerimplementierte Verfahren von Beispiel 1, 2, 3, 4, 5, 6, 7, 8 oder 9, wobei das Unterteilen des polygonalen Kontrollnetzes Unterteilen der Flächen um den außerordentlichen Punkt herum in vier Flächen und das Unterteilen mindestens einen Satzes von Flächen, die Nachbarn der ersten Ebene zu den Flächen um den außerordentlichen Punkt herum sind, in jeweils zwei Flächen umfasst, wobei mindestens der Satz von Flächen gemäß einer Knoteneinfügungsregel jeweils in zwei Flächen unterteilt wird, sodass eine Form der glatten Oberfläche nicht verändert wird.
-
Beispiel 11: Das computerimplementierte Verfahren von Beispiel 10, wobei das Generieren der glatten Oberfläche Generieren von Patches für Polygone des verfeinerten Kontrollnetzes beinhaltet, die nach dem Unterteilen mindestens Nachbarflächen der zweiten Ebene von Flächen um den außerordentlichen Punkt herum entsprechen.
-
Ähnliche Operationen und Prozesse wie in den Beispielen 1 bis 11 beschrieben können in einem System durchgeführt werden, das mindestens einen Prozessor und einen Speicher beinhaltet, der kommunikativ mit dem mindestens einen Prozessor gekoppelt ist, wobei der Speicher Anweisungen speichert, die bei Ausführung den mindestens einen Prozessor veranlassen, die Operationen auszuführen. Ferner kann auch ein nichtflüchtiges computerlesbares Medium in Betracht gezogen werden, das Anweisungen speichert, die, wenn sie ausgeführt werden, bewirken, dass mindestens ein Prozessor die wie sie in einem der Beispiele 1 bis 11 beschriebenen Operationen durchführt.
-
Die folgenden Ausführungsbeispiele bilden auch Teil der Erfindung:
-
AUSFÜHRUNGSBEISPIELE
-
- 1. Computerimplementiertes Verfahren, beinhaltend:
- Erhalten, durch eine Computergrafikanwendung, eines polygonalen Kontrollnetzes für eine glatte Oberfläche, die ein Objekt darstellt;
- Unterteilen des polygonalen Kontrollnetzes durch die Computergrafikanwendung in eine oder mehrere Unterteilungen, um ein verfeinertes Kontrollnetz zu erzeugen, wobei das Unterteilen
- Verwenden von Daten, die ein Eigenpolyeder um einen außerordentlichen Punkt im polygonalen Kontrollnetz definieren, zur Erzeugung von Anpassungsregeln zum Bestimmen von Positionen des außerordentlichen Punkts und von Flächenpunkten und Kantenpunkten für Flächen neben dem außerordentlichen Punkt während jeder der einen oder mehreren Unterteilungen beinhaltet, wobei die das Eigenpolyeder definierenden Daten in einem parametrisierten zweidimensionalen Raum als ein ebenes Netz umfassend den außerordentlichen Punkt als Anfangsscheitelpunkt in einer Ebene definiert sind, und
- Bestimmen der Positionen für den außerordentlichen Punkt, die Flächenpunkte und die Kantenpunkte für die an den außerordentlichen Punkt angrenzenden Flächen gemäß den Anpassungsregeln, wobei erste Knotenabstände (di) für erste Kanten und zweite Knotenabstände (ei) für zweite Kanten innerhalb einer von der Computergrafikanwendung verwendeten numerischen Genauigkeit innerhalb einer einzigen Unterteilung der einen oder mehreren Unterteilungen einander gleich werden, wobei die ersten Kanten direkt mit dem außerordentlichen Punkt verbunden sind und sich innerhalb eines Bereichs befinden, der dem Eigenpolyeder im parametrisierten zweidimensionalen Raum entspricht, und die zweiten Kanten direkt mit den ersten Kanten verbunden sind und sich außerhalb des Bereichs befinden, der dem Eigenpolyeder im parametrisierten zweidimensionalen Raum entspricht; und
- Generieren der glatten Oberfläche zur Ausgabe aus dem verfeinerten Kontrollnetz durch die Computergrafikanwendung.
- 2. Computerimplementiertes Verfahren nach Ausführungsbeispiel 1, wobei der außerordentliche Punkt einer von vielen Kontrollscheitelpunkten in dem erhaltenen polygonalen Kontrollnetz ist und wobei der außerordentliche Punkt ein ungleichmäßiger Punkt in dem polygonalen Kontrollnetz ist.
- 3. Computerimplementiertes Verfahren nach Ausführungsbeispiel 1, wobei der außerordentliche Punkt ein erster außerordentlicher Punkt ist, die das Eigenpolyeder definierenden Daten erste Daten sind, die ein erstes, für den ersten außerordentlichen Punkt definiertes Eigenpolyeder definieren, das erhaltene polygonale Kontrollnetz einen zweiten außerordentlichen Punkt mit zugeordneten zweiten Daten umfasst, die ein zweites, für den zweiten außerordentlichen Punkt definiertes Eigenpolyeder definieren, wobei der erste und der zweite außerordentliche Punkt entweder durch eine einzelne Fläche oder eine Kante verbunden sind,
wobei das Verwenden Verwenden der ersten Daten, die das erste für den ersten außerordentlichen Punkt definierte Eigenpolyeder definieren, und der zweiten Daten, die das zweite für den zweiten außerordentlichen Punkt definierte Eigenpolyeder definieren, beinhaltet,
wobei das Bestimmen Anpassen eines Flächenpunktwerts für einen ersten Flächenpunkt einer sowohl dem ersten als auch dem zweiten außerordentlichen Punkt benachbarten Fläche aus den ersten Daten, die das erste Eigenpolyeder definieren, umfasst, wobei ein erster angepasster Flächenpunktwert für den ersten Flächenpunkt basierend auf den ersten Daten, die das erste Eigenpolyeder definieren, und gemäß den Anpassungsregeln zur Bestimmung von Positionen der Flächenpunkte in einem Raum der benachbarten Fläche bestimmt wird, wobei der erste angepasste Flächenpunktwert als eine erste lineare Kombination von Kontrollpunkten des polygonalen Kontrollnetzes in den ersten Daten, die das erste Eigenpolyeder definieren, definiert ist,
wobei das Verfahren ferner Anpassen eines Flächenpunktwerts für den ersten Flächenpunkt aus den zweiten Daten, die das zweite Eigenpolyeder definieren, beinhaltet, wobei ein zweiter angepasster Flächenpunktwert für den ersten Flächenpunkt basierend auf den zweiten Daten, die das zweite Eigenpolyeder definieren, und gemäß den Anpassungsregeln zur Bestimmung von Positionen der Flächenpunkte in einem Raum der angrenzenden Fläche bestimmt wird, wobei der zweite angepasste Flächenpunktwert als eine zweite lineare Kombination von Kontrollpunkten des polygonalen Kontrollnetzes in den zweiten Daten, die das zweite Eigenpolyeder definieren, definiert ist, wobei der erste angepasste Flächenpunktwert im Widerspruch zum zweiten angepassten Flächenpunktwert steht und
wobei das Unterteilen Bestimmen eines endgültigen angepassten Flächenpunktwerts für den ersten Flächenpunkt als einen Mittelwert der widersprüchlichen Werte des ersten angepassten Flächenpunktwerts und des zweiten angepassten Flächenpunktwerts umfasst, wobei der endgültige angepasste Flächenpunktwert zum Unterteilen des polygonalen Kontrollnetzes verwendet wird.
- 4. Computerimplementiertes Verfahren nach Ausführungsbeispiel 1, wobei der außerordentliche Punkt ein erster außerordentlicher Punkt ist, die das Eigenpolyeder definierenden Daten erste Daten sind, die ein erstes, für den ersten außerordentlichen Punkt definiertes Eigenpolyeder definieren, das erhaltene polygonale Kontrollnetz einen zweiten außerordentlichen Punkt mit zugeordneten zweiten Daten umfasst, die ein zweites, für den zweiten außerordentlichen Punkt definiertes Eigenpolyeder definieren, wobei der erste und der zweite außerordentliche Punkt entweder durch eine einzelne Fläche oder eine Kante verbunden sind,
wobei das Verwenden Verwenden der ersten Daten, die das erste für den ersten außerordentlichen Punkt definierte Eigenpolyeder definieren, und der zweiten Daten, die das zweite für den zweiten außerordentlichen Punkt definierte Eigenpolyeder definieren, beinhaltet,
wobei das Bestimmen Anpassen eines Kantenpunktwerts für einen ersten Kantenpunkt einer sowohl dem ersten als auch dem zweiten außerordentlichen Punkt benachbarten Fläche aus den ersten Daten des ersten Eigenpolyeders beinhaltet, wobei ein erster angepasster Kantenpunktwert für den ersten Kantenpunkt basierend auf den ersten Daten, die das erste Eigenpolyeder definieren, und gemäß den Anpassungsregeln zur Bestimmung von Positionen der Kantenpunkte in einem Raum der benachbarten Fläche bestimmt wird, wobei der erste angepasste Kantenpunktwert als eine erste lineare Kombination von Kontrollpunkten des polygonalen Kontrollnetzes in den ersten Daten, die das erste Eigenpolyeder definieren, definiert ist,
wobei das Verfahren ferner Anpassen eines Kantenpunktwerts für den ersten Kantenpunkt aus den zweiten Daten des zweiten Eigenpolyeders beinhaltet, wobei ein zweiter angepasster Kantenpunktwert für den ersten Kantenpunkt basierend auf den zweiten Daten, die das zweite Eigenpolyeder definieren, und gemäß den Anpassungsregeln zur Bestimmung von Positionen der Kantenpunkte in einem Raum der angrenzenden Fläche bestimmt wird, wobei der zweite angepasste Kantenpunktwert als eine zweite lineare Kombination von Kontrollpunkten des polygonalen Kontrollnetzes in den zweiten Daten, die das zweite Eigenpolyeder definieren, definiert ist, wobei der erste angepasste Kantenpunktwert im Widerspruch zu dem zweiten angepassten Kantenpunktwert steht und
wobei das Unterteilen Bestimmen eines endgültigen angepassten Kantenpunktwerts für den ersten Kantenpunkt als einen Mittelwert der widersprüchlichen Werte des ersten angepassten Kantenpunktwerts und des zweiten angepassten Kantenpunktwerts beinhaltet, wobei der endgültige angepasste Kantenpunktwert zum Unterteilen des polygonalen Kontrollnetzes verwendet wird.
- 5. Computerimplementiertes Verfahren nach Ausführungsbeispiel 1, wobei das erhaltene polygonale Kontrollnetz ein N-Eck umfasst, die ein oder mehreren Unterteilungen zwei oder mehr Unterteilungen sind und wobei die Unterteilung eine anfängliche Unterteilung als eine erste Unterteilung der zwei oder mehr Unterteilungen beinhaltet und der außerordentliche Punkt innerhalb des N-Ecks durch die anfängliche Unterteilung erzeugt wird.
- 6. Computerimplementiertes Verfahren nach Ausführungsbeispiel 5, wobei die anfängliche Unterteilung das Lokalisieren des außerordentlichen Punkts in einer Fläche des N-Ecks und eines anfänglichen Satzes von das Eigenpolyeder definierenden Randpunkten beinhaltet, wobei der außerordentliche Punkt in der Fläche des N-Ecks und der anfängliche Satz von Kantenpunkten gemäß einer Non-Uniform Rational Catmull-Clark Subdivision (NURCCS)-Regel bestimmt wird.
- 7. Computerimplementiertes Verfahren nach Ausführungsbeispiel 1, wobei die Unterteilung mit Non-Uniform Rational Catmull-Clark Subdivision (NURCCS)- und Non-Uniform Rational Basis Spline (NURBS)-Oberflächen kompatibel ist.
- 8. Computerimplementiertes Verfahren nach Ausführungsbeispiel 1, wobei die ein oder mehreren Unterteilungen mindestens eine Unterteilung von Kontrollpolygonflächen in einem außerordentlichen Bereich des polygonalen Kontrollnetzes, jedoch nicht in einer an die außerordentliche Region angrenzenden Region beinhalten.
- 9. Computerimplementiertes Verfahren nach Ausführungsbeispiel 8, wobei das Bestimmen, gemäß den Anpassungsregeln, der Positionen für den außerordentlichen Punkt, die Flächenpunkte und die Kantenpunkte für die Flächen benachbart zu dem außerordentlichen Punkt beinhaltet:
- Berechnen angepasster Flächenpunkte und Kantenpunkte für die Flächen um den außerordentlichen Punkt herum an den entsprechenden Flächen- und Kantenräumen gemäß den Anpassungsregeln und den das Eigenpolyeder definierenden Daten; und
- Umwandeln der angepassten Flächenpunkte und Kantenpunkte in Verfeinerungsregeln zum Bestimmen der Positionen der Flächen- und Kantenpunkte auf dem polygonalen Kontrollnetz zur Generierung des verfeinerten Kontrollnetzes.
- 10. Computerimplementiertes Verfahren nach Ausführungsbeispiel 1, wobei das Unterteilen des polygonalen Kontrollnetzes Unterteilen der Flächen um den außerordentlichen Punkt herum in vier Flächen und Unterteilen mindestens einen Satzes von Flächen, die Nachbarn der ersten Ebene zu den Flächen um den außerordentlichen Punkt herum sind, in jeweils zwei Flächen umfasst, wobei mindestens der Satz von Flächen gemäß einer Knoteneinfügungsregel jeweils in zwei Flächen unterteilt wird, sodass eine Form der glatten Oberfläche nicht verändert wird.
- 11. Computerimplementiertes Verfahren nach Ausführungsbeispiel 10, wobei das Generieren der glatten Oberfläche Generieren von Patches für Polygone des verfeinerten Kontrollnetzes beinhaltet, die nach dem Unterteilen mindestens Nachbarflächen der zweiten Ebene von Flächen um den außerordentlichen Punkt herum entsprechen.
- 12. System, beinhaltend:
- ein nichtflüchtiges Speichermedium mit Anweisungen eines darauf gespeicherten Computer Aided Design (CAD)-Programms; und
- ein oder mehrere Datenverarbeitungsvorrichtungen, die dazu fähig sind, die Anweisungen des CAD-Programms zur Durchführung von durch die Anweisungen des CAD-Programms spezifizierten Operationen auszuführen, wodurch die eine oder die mehreren Datenverarbeitungsvorrichtungen durchführen.
- durch eine Computergrafikanwendung ein polygonales Kontrollnetzes für eine glatte Oberfläche, die ein Objekt darstellt, erhalten;
- Unterteilen des polygonalen Kontrollnetzes durch die Computergrafikanwendung in eine oder mehrere Unterteilungen, um ein verfeinertes Kontrollnetz zu erzeugen, wobei die Anweisungen, die so konfiguriert sind, dass die Datenverarbeitungsvorrichtung unterteilt, Anweisungen beinhalten, die so konfiguriert sind, dass die Datenverarbeitungsvorrichtung
- Daten verwendet, die ein Eigenpolyeder um einen außerordentlichen Punkt im polygonalen Kontrollnetz definieren, um Anpassungsregeln zum Bestimmen von Positionen des außerordentlichen Punkts und Flächenpunkten und Kantenpunkten für Flächen neben dem außerordentlichen Punkt während jeder der einen oder mehreren Unterteilungen zu erzeugen, wobei die das Eigenpolyeder definierenden Daten in einem parametrisierten zweidimensionalen Raum als ein ebenes Netz einschließlich des außerordentlichen Punkts als Anfangsscheitelpunkt in einer Ebene definiert sind, und
- Bestimmen der Positionen für den außerordentlichen Punkt, die Flächenpunkte und die Kantenpunkte für die an den außerordentlichen Punkt angrenzenden Flächen gemäß den Anpassungsregeln, wobei erste Knotenabstände (di) für erste Kanten und zweite Knotenabstände (ei) für zweite Kanten innerhalb einer von der Computergrafikanwendung verwendeten numerischen Genauigkeit innerhalb einer einzigen Unterteilung der einen oder mehreren Unterteilungen einander gleich werden, wobei die ersten Kanten direkt mit dem außerordentlichen Punkt verbunden sind und sich innerhalb eines Bereichs befinden, der dem Eigenpolyeder im parametrisierten zweidimensionalen Raum entspricht, und die zweiten Kanten direkt mit den ersten Kanten verbunden sind und sich außerhalb des Bereichs befinden, der dem Eigenpolyeder im parametrisierten zweidimensionalen Raum entspricht; und
- Generieren der glatten Oberfläche zur Ausgabe aus dem verfeinerten Kontrollnetz durch die Computergrafikanwendung.
- 13. System nach Ausführungsbeispiel 12, wobei der außerordentliche Punkt einer von vielen Kontrollscheitelpunkten in dem erhaltenen polygonalen Kontrollnetz ist und wobei der außerordentliche Punkt ein ungleichmäßiger Punkt in dem polygonalen Kontrollnetz ist.
- 14. System nach Ausführungsbeispiel 12, wobei das erhaltene polygonale Kontrollnetz ein N-Eck umfasst, die eine oder die mehreren Unterteilungen zwei oder mehr Unterteilungen sind und wobei die Anweisungen, die so konfiguriert sind, dass die Datenverarbeitungsvorrichtung dazu veranlasst wird, zu unterteilen, Anweisungen beinhalten, die so konfiguriert sind, dass die Datenverarbeitungsvorrichtung zum Unterteilen einer anfänglichen Unterteilung als eine erste Unterteilung der zwei oder mehr Unterteilungen veranlasst wird, wobei der außerordentliche Punkt innerhalb des N-Ecks durch die anfängliche Unterteilung erzeugt wird, und wobei die anfängliche Unterteilung das Lokalisieren des außerordentlichen Punkts in einer Fläche des N-Ecks und einen anfänglichen Satz von das Eigenpolyeder definierenden Kantenpunkten beinhaltet, wobei der außerordentliche Punkt in der Fläche des N-Ecks und der anfängliche Satz von Kantenpunkten gemäß einer Non-Uniform Rational Catmull-Clark Subdivision (NURCCS)-Regel bestimmt werden, und wobei die Unterteilung mit Non-Uniform Rational Catmull-Clark Subdivision (NURCCS)- und Non-Uniform Rational Basis Spline (NURBS)-Oberflächen kompatibel ist.
- 15. System nach Ausführungsbeispiel 12, wobei die eine oder die mehreren Unterteilungen mindestens eine Unterteilung von Kontrollpolygonflächen in einem außerordentlichen Bereich des polygonalen Kontrollnetzes, aber nicht in einem an den außerordentlichen Bereich angrenzenden Bereich beinhalten, und wobei die Anweisungen, die so konfiguriert sind, dass sie die Datenverarbeitungsvorrichtung dazu veranlassen, gemäß den Anpassungsregeln, die Positionen für den außerordentlichen Punkt, die Flächenpunkte und die Kantenpunkte für die Flächen benachbart zu dem außerordentlichen Punkt gemäß den Anpassungsregeln zu bestimmen, Anweisungen beinhalten, die so konfiguriert sind, dass sie die Datenverarbeitungsvorrichtung zu Folgendem veranlassen:
- Berechnen angepasster Flächenpunkte und Kantenpunkte für die Flächen um den außerordentlichen Punkt herum an den entsprechenden Flächen- und Kantenräumen gemäß den Anpassungsregeln und den das Eigenpolyeder definierenden Daten; und
- Umwandeln der angepassten Flächenpunkte und Kantenpunkte in Verfeinerungsregeln zum Bestimmen der Positionen der Flächen- und Kantenpunkte auf dem polygonalen Kontrollnetz zur Generierung des verfeinerten Kontrollnetzes.
- 16. System nach Ausführungsbeispiel 12, wobei die Anweisungen, die so konfiguriert sind, dass sie die Datenverarbeitungsvorrichtung dazu veranlassen, das polygonale Kontrollnetz zu unterteilen, Anweisungen zum Unterteilen der Flächen um den außerordentlichen Punkt herum in vier Flächen umfassen und mindestens einen Satz von Flächen, die Nachbarn der ersten Ebene der Flächen um den außerordentlichen Punkt herum sind, jeweils in zwei Flächen unterteilen, wobei mindestens der Satz von Flächen gemäß einer Knoteneinfügungsregel in jeweils zwei Flächen unterteilt wird, sodass sich die Form der glatten Oberfläche nicht verändern, wobei die Anweisungen, die konfiguriert sind, die Datenverarbeitungsvorrichtung dazu zu veranlassen, die glatte Oberfläche zu generieren, Anweisungen umfassen, die so konfiguriert sind, dass die Datenverarbeitungsvorrichtung dazu veranlasst wird, Patches für Polygone des verfeinerten Kontrollnetzes zu generieren, die nach dem Unterteilen mindestens Nachbarflächen der zweiten Ebene von Flächen um den außerordentlichen Punkt herum entsprechen.
- 17. Nichtflüchtiges computerlesbares Medium, das Anweisungen kodiert, die bei der Ausführung eine Datenverarbeitungsvorrichtung dazu veranlassen, Operationen durchzuführen, beinhaltend:
- Erhalten, durch eine Computergrafikanwendung, eines polygonalen Kontrollnetzes für eine glatte Oberfläche, die ein Objekt darstellt;
- Unterteilen des polygonalen Kontrollnetzes durch die Computergrafikanwendung in eine oder mehrere Unterteilungen, um ein verfeinertes Kontrollnetz zu erzeugen, wobei das Unterteilen
- Verwenden von ein Eigenpolyeder um einen außerordentlichen Punkt im polygonalen Kontrollnetz definierenden Daten zur Erzeugung von Anpassungsregeln zum Bestimmen von Positionen des außerordentlichen Punkts und Flächenpunkten und Kantenpunkten für Flächen neben dem außerordentlichen Punkt während jeder der einen oder mehreren Unterteilungen beinhaltet, wobei die das Eigenpolyeder definierenden Daten in einem parametrisierten zweidimensionalen Raum als ein ebenes Netz umfassend des außerordentlichen Punkts als Anfangsscheitelpunkt in einer Ebene definiert sind, und
- Bestimmen der Positionen für den außerordentlichen Punkt, die Flächenpunkte und die Kantenpunkte für die an den außerordentlichen Punkt angrenzenden Flächen gemäß den Anpassungsregeln, wobei erste Knotenabstände (di) für erste Kanten und zweite Knotenabstände (ei) für zweite Kanten innerhalb einer von der Computergrafikanwendung verwendeten numerischen Genauigkeit innerhalb einer einzigen Unterteilung der einen oder mehreren Unterteilungen einander gleich werden, wobei die ersten Kanten direkt mit dem außerordentlichen Punkt verbunden sind und sich innerhalb eines Bereichs befinden, der dem Eigenpolyeder im parametrisierten zweidimensionalen Raum entspricht, und die zweiten Kanten direkt mit den ersten Kanten verbunden sind und sich außerhalb des Bereichs befinden, der dem Eigenpolyeder im parametrisierten zweidimensionalen Raum entspricht; und
- Generieren der glatten Oberfläche zur Ausgabe aus dem verfeinerten Kontrollnetz durch die Computergrafikanwendung.
- 18. Computerlesbares Medium nach Ausführungsbeispiel 17, wobei der außerordentliche Punkt einer von vielen Kontrollscheitelpunkten in dem erhaltenen polygonalen Kontrollnetz ist und wobei der außerordentliche Punkt ein ungleichmäßiger Punkt in dem polygonalen Kontrollnetz ist.
- 19. Computerlesbares Medium nach Ausführungsbeispiel 17, wobei das erhaltene polygonale Kontrollnetz ein N-Eck umfasst, die eine oder die mehreren Unterteilungen zwei oder mehr Unterteilungen sind und wobei die Unterteilung eine anfängliche Unterteilung als eine erste Unterteilung der zwei oder mehr Unterteilungen beinhaltet und der außerordentliche Punkt innerhalb des N-Ecks durch die anfängliche Unterteilung erzeugt wird.
- 20. Computerimplementiertes Verfahren nach Ausführungsbeispiel 17, wobei die anfängliche Unterteilung das Lokalisieren des außerordentlichen Punkts in einer Fläche des N-Ecks und eines anfänglichen Satzes von das Eigenpolyeder definierenden Randpunkten beinhaltet, wobei der außerordentliche Punkt in der Fläche des N-Ecks und der anfängliche Satz von Kantenpunkten gemäß einer Non-Uniform Rational Catmull-Clark Subdivision (NURCCS)-Regel bestimmt wird, wobei die Unterteilung mit Non-Uniform Rational Catmull-Clark Subdivision (NURCCS)- und Non-Uniform Rational Basis Spline (NURBS)-Oberflächen kompatibel ist.
-
-
ZITATE ENTHALTEN IN DER BESCHREIBUNG
-
Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
-
Zitierte Patentliteratur
-