DE60032832T2 - Darstellung einer gekrümmten Oberfläche in mehreren Auflösungen - Google Patents

Darstellung einer gekrümmten Oberfläche in mehreren Auflösungen Download PDF

Info

Publication number
DE60032832T2
DE60032832T2 DE60032832T DE60032832T DE60032832T2 DE 60032832 T2 DE60032832 T2 DE 60032832T2 DE 60032832 T DE60032832 T DE 60032832T DE 60032832 T DE60032832 T DE 60032832T DE 60032832 T2 DE60032832 T2 DE 60032832T2
Authority
DE
Germany
Prior art keywords
subdivision
polygons
patterns
resolution
polygon
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
DE60032832T
Other languages
English (en)
Other versions
DE60032832D1 (de
Inventor
Saul S. San Francisco Kato
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Spatial Corp
Original Assignee
Spatial Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Spatial Corp filed Critical Spatial Corp
Application granted granted Critical
Publication of DE60032832D1 publication Critical patent/DE60032832D1/de
Publication of DE60032832T2 publication Critical patent/DE60032832T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

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

Description

  • Die vorliegende Erfindung betrifft allgemein das Gebiet von Computergraphik, insbesondere Systeme und Verfahren zur Erzeugung und Erstellung von Bildern in dreidimensionalen Graphiken. Insbesondere betrifft die vorliegende Erfindung ein System und ein Verfahren zum Erzeugen dreidimensionaler Objekte, die durch ein Graphiksubsystem zu erstellen sind.
  • Rendering-Systeme erzeugen Darstellungen von Objekten mittels polygonaler Näherungen. Der Detaillierungsgrad und der Realismus, der in einer 3D-Darstellung erzielt wird, steht in direktem Bezug auf die Anzahl von Polygonen, die zum Darstellen des Objekts verwendet werden. Jedoch sind Objekte, die eine große Anzahl von Polygonen aufweisen, für die Verarbeitung resourcenintensiv. Daher begrenzen viele herkömmliche Systeme die Anzahl von Polygonen, die zum Darstellen von Objekten verwendet werden. Wenn in diesen Systemen die Kamera näher zu den Objekten hin zoomt, erscheinen die Objekte blockartig und verlieren ihre glatten Kanten. Zusätzlich werden in herkömmlichen Systeme Polygone aus mathematischen Oberflächen durch rekursive Unterteilung erzeugt. Daher werden Polygone eines Objekts mit aufeinanderfolgenden Durchläufen unterteilt, um eine höhere Anzahl von Polygonen zu erzeugen und um etwaige bekannte Artefakte, die durch die Unterteilung hervorgerufen werden, zu eliminieren. Dieser Prozess ist ebenfalls resourcenintensiv und erfordert einen längeren Verarbeitungszyklus. Daher sind ein System, ein Verfahren und eine Vorrichtung erforderlich, die dynamisch Details zu den Objekten hinzufügen, wenn vom menschlichen Auge ein näheres Detail wahrgenommen würde, und die weniger Details verwenden, wenn und wo weniger Detail erforderlich ist, um das Erscheinungsbild von 3D- Objekten zu optimieren, ohne Prozessleistung zu verschwenden. Zusätzlich sind ein System, ein Verfahren und eine Vorrichtung erforderlich, die einen rekursiven Durchlauf erübrigt, aber immer noch glatte akkurate Oberflächen erzeugt und durch Unterteilung erzeugte Artefakte eliminiert.
  • GROSS M N ET AL: "Fast multi resolution surface meshing", VISUALIZATION '95. PROCEEDINGS., IEEE CONFERENCE ON VISUALIZATION. ATLANTA 1995, GA, USA 29 OKT. – 3. NOV. 1995, LOS ALAMITOS, CA, USA, IEEE OMPUT. SOC, USA, 29. Oktober 1995 (1995-10-29), Seiten 135 – 142, 446, XP010151190 ISBN: 0-8186-7187-4; offenbart ein Verfahren zur adaptiven Oberflächennetzbildung, das den örtlichen Detaillierungsgrad der Oberflächennäherung mittels örtlicher spektraler Schätzungen steuert. Die Schätzungen werden durch eine Wavelet-Repräsentation der Oberflächendaten bestimmt. Es wird ein hierarchischer Netzbildungsalgorithmus verwendet, um Daten eines anfänglich regelmäßigen Datennetzes der Oberfläche in eine Vierfachbaum-Repräsentation durch Verwerfen unwichtiger Netzscheitel zu transformieren. Auf diese Weise erhält man eine Aufteilung in rechteckige Polygone unter Berücksichtigung der Auflösungspegel. Es wird eine Nachschlagetabelle, die alle möglichen bruchfreien triangulationen auflistet, dazu benutzt, die erhaltenen rechtwinkligen Polygone in Dreiecke aufzuteilen, derart, dass T-Scheitel vermieden werden.
  • HOPPE H: "View-dependent refinement of progressive meshes", COMPUTER GRAPHICS PROCEEDINGS, SIGGRAPH 97, PROCEEDINGS OF 24THINTERNATIONAL CONFERENCE ON COMPUTER GRAPHICS AND INTERACTIVE TECHNIQUES, LOS ANGELES, CA, USA, 3 – 8. AUG. 1997, Seiten 189 – 98, XP002244379, 1997, New York, NY; USA, ACM, USA ISBN: 0-89791-896-7; offenbart ein Verfahren zum selektiven Verfeinern eines beliebigen progressiven Netzes gemäß Blickwinkelparametern. Das Netz wird entweder durch Aufteilen eines Scheitels in zwei Scheitel (d.h. einer Kante) verfeinert, oder durch Zusammenführen einer Kante (eines Paars von Scheiteln) in einen einzelnen Scheitel verfeinert. Die Abweichung, bei Projektion auf den Schirm, zwischen der ursprünglichen Oberfläche und der Netzannäherung der Oberfläche wird als Kriterium dazu verwendet, zu bestimmen, ob Scheitel aufgeteilt werden sollten.
  • Die US 5,602,979 offenbart ein Verfahren zum Erzeugen glatter polynomischer Spline-Oberfächen über irreguläre Netze.
  • Eine Veröffentlichung mit dem Titel "Real-Time, Coninuous Level of Detail Rendering of Height Fields" von Lindstrom et al. In Comptuer Graphics Proceedings, Annual Conference Series 1996, Seiten 109 – 118 diskutiert die Verwendung eines variablen Bildschirm-Raumschwellenwerts zur Begrenzung des Maximalfehlers des projizierten Bilds.
  • Eine Veröffentlichung mit dem Titel "Virtual Reality – New methods for improving and accelerating the development process in vehicle styling and design" von F. Purschke et al., Proceedings or Computer Graphics International, 1998, IEEE Computer Society, USA betrifft auch das Erstellen dreidimensionaler Netze.
  • Die Erfindung sieht ein Verfahren und eine Vorrichtung vor, wie sie in den Ansprüchen 1 und 6 jeweils aufgeführt sind.
  • Ausführungen der Erfindung werden dazu verwendet, den Betrag und die Eigenschaften von anzuwendenden Polygonen adaptiv zu bestimmen, um Objekte in einer 3D-Umgebung zu bekommen. Zuerst wird ein Steuernetz polygonaler Näherungen aus einem einer Vielzahl herkömmlicher Objektrepräsentationsschemata erzeugt. Das Steuernetz ist eine gleichmäßige Repräsentation des zu erstellenden Objekts, die Randinformation und Rekonstruktionsdaten für die Polygone aufweist, die das Steuernetz aufweist. Die Rekonstruktionsdaten enthalten Oberfläche-normal-Daten und Oberfläche-versteckt-Daten. Die Oberfläche-versteckt-Daten enthalten Information in Bezug darauf, ob ein Scheitel ein scharfer Punkt ist oder ob eine Kante als harte Kante dargestellt werden sollte. Dann werden Auflösungspegel für alle Scheitel aller Polygone in dem Steuernetz berechnet. Die Auflösungspegel spezifizieren den geeigneten Auflösungspegel für ein Dreieck und ein anderes Polygon in Antwort auf die Topologie des Objekts und den Kamerawinkel, der gegenwärtig in der Anwendung benutzt wird. Polygonen, die Bereiche eines Objekts repräsentieren, die durch die Kamera mit einem Winkel gesehen werden, der Kanten des Objekts aufzeigt, werden höhere Auflösungspegel gegeben. Jedoch werden solchen Polygonen, die Bereiche eines Objekts repräsentieren, die von einer Kamera mit einem Winkel gesehen werden, der Kanteninformation verdeckt, wenn z.B. die Kamera direkt auf den Bereich blickt, geringe Auflösungspegel gegeben. Somit wird die Auflösung des Objekts dynamisch, örtlich und adaptiv bestimmt, um höhere Detaillierungsgrade dort vorzusehen, wo das Detail für das menschliche Auge am sichtbarsten ist, und weniger Detail, wenn das Detail nicht bemerkt würde.
  • In Antwort auf die Berechnung der Auflösungspegel werden die Polygone in Antwort auf die Auflösungspegel unterteilt. Jedoch erfordern herkömmliche Unterteilungsmethodiken mehrere heuristische Durchläufe, um etwaige Brüche oder Artefakte zu identifizieren und auszubessern, die erzeugt werden, wenn zwei Polygone sich Kanten teilen, die nicht identisch unterteilt werden (T-Scheitel). Dieses bekannte Problem wird in herkömmlichen Systemen durch repetivitive Analyse und Korrektur behandelt, was resourcenintensiv und ineffizient ist. Jedoch wird gemäß der vorliegenden Erfindung die Datenstruktur beibehalten, die die geeignete Unterteilungsmethodik vorsieht, die für alle Fälle von T-Scheiteln anzuwenden ist, die durch Unterteilung von Verbindungen unterschiedlicher Auflösung hervorgerufen werden. Die Datenstruktur erlaubt, dass die Bearbeitung rasch und effizient von statten geht und stellt sicher, dass während der Unterteilung keine Brüche oder Artefakte auftreten. Daher ist gemäß der vorliegenden Erfindung keine repetivitive Verschleifung oder Abzweigung erforderlich, um Brüche oder Artefakte zu identifizieren.
  • Nach der Unterteilung werden Orte für die Scheitel der neuen Polygone berechnet. Gemäß der vorliegenden Erfindung werden dort, wo die erzeugte Polygone Dreiecke sind, Bezier-Dreieck-Patches anstelle der ursprünglichen Dreiecke verwendet, um eine gekrümmte Oberfläche zu erlangen, die einen größeren Steuerungspegel hat. Die Parameter für die Bezier-Dreiecke werden aus bekannten Scheiteln und Scheitel-Attributen von Dreiecken und den Rekonstruktionsdaten berechnet, um eine detaillierte realistische Darstellung des Objekts zu bekommen. Somit kann gemäß einer weiteren Ausführung der vorliegenden Erfindung ein zusätzliches Detail zu einem Objekt von einem ursprünglichen Steuerungsnetz hinzugefügt werden. In Systemen, wo polygonale Näherungen als Eingaben erhalten werden, ist das hinzugefügte Detail ein neues Detail, das in dem ursprünglichen Objekt nicht vorhanden ist, um hierdurch ein Objekt zu bekommen, das detaillierter ist als das Original. Für andere Typen von Eingaben ist das Endprodukt eine sehr enge Näherung der ursprünglichen Oberfläche. Da jedoch das Detail adaptiv hinzugefügt wird, wird die Detailmenge nach Bedarf hinzugefügt, um das genaueste Bild ohne Resourcenverschwendung zu erzeugen.
  • In den beigefügten Zeichnungen:
  • 1 ist ein Blockdiagramm, das Prozessmodule zum Vorsehen einer gekrümmten Oberflächenrekonstruktion gemäß der vorliegenden Erfindung darstellt.
  • 2 ist ein Flussdiagramm, das ein Verfahren zur Rekonstruktion gekrümmter Oberflächen gemäß der vorliegenden Erfindung darstellt.
  • 3 ist ein Flussdiagramm, das ein Verfahren zur Erzeugung von Rekonstruktionsdaten gemäß der vorliegenden Erfindung darstellt.
  • 4a ist ein Flussdiagramm, das ein Verfahren zur Berechnung von Auflösungspegeln gemäß der vorliegenden Erfindung darstellt.
  • 4b ist ein Diagramm, das einen Vektor darstellt, der eine Kantensehnenabweichung gemäß der vorliegenden Erfindung repräsentiert.
  • 4c ist ein Diagramm eines projizierten Vektors im Bildschirmraum.
  • 5 ist ein Flussdiagramm, das ein Verfahren zur Unterteilung von Polygonen gemäß der vorliegenden Erfindung darstellt.
  • 6a und 6c sind Diagramme, die herkömmliche Unterteilungen darstellen.
  • 6b und 6d sind Diagramme, die Unterteilungen gemäß der vorliegenden Erfindung darstellen.
  • 7 ist ein Flussdiagramm, das eine Rekonstruktion einer gekrümmten Oberfläche gemäß der vorliegenden Erfindung darstellt.
  • 8a8t sind Diagramme von Unterteilungsmustern zur Beseitigung von T-Scheiteln gemäß der vorliegenden Erfindung.
  • 9 ist eine Darstellung zur Erzeugung von 10 Bezier-Steuerparametern von 3 Kanten-Splines gemäß der vorliegenden Erfindung.
  • 10 ist eine Darstellung zur Erzeugung von Tangentenvektoren aus Oberfläche-normal-Daten gemäß der vorliegenden Erfindung.
  • 1 ist ein Blockdiagramm, das Prozessmodule zum Vorsehen einer gekrümmten Oberflächenrekonstruktion gemäß der vorliegenden Erfindung darstellt. Wie unten beschrieben, kann der Prozess gemäß der vorliegenden Erfindung durch anwenderspezifische integrierte Schaltungen, durch Mehrzweckprozessoren oder durch beliebige andere bekannte Verfahren zur Implementierung sequenzierter Instruktionen ausgeführt werden. Die Methodik der vorliegenden Erfindung ist besonders vorteilhaft für die Implementation als ASIC, da die Methodik keine Verzweigungsanweisungen erfordert, die eine ASIC-Implementierung anderenfalls verkomplizieren würden 1 stellt ein Graphiksubsystem 124 dar, worin ein Oberflächendarstellungsgenerator 100 ein Objekt erzeugt, das auf einem Computerdisplay dargestellt werden soll. Der Oberflächendarstellungsgenerator 100 kann jede beliebige herkömmliche Quelle für dreidimensionale Objekte sein, die in CAD-Anwendungen, Spielanwendungen oder dgl. verwendbar sind. Oberflächendarstellungen können Umgrenzungs-Darstellungen, nicht gleichmäßige rationale b-Splines, polygonale Annäherungen, primitive, analytische oder prozedurale Objekte umfassen. Wie ersichtlich, kann gemäß der vorliegenden Erfindung jedes Darstellungsformat verwendet werden. Hierin wird das zu analysierende Objekt als ein solches beschrieben, das eine Serie von Dreiecken aufweist, aber diese Beschreibung ist beispielhaft und soll nicht dazu dienen, die Anwendung der vorliegenden Erfindung auf Dreieck-basierende Graphiksysteme einzuschränken.
  • Als Nächstes wandelt ein Rekonstruktionsdatengenerator 104 eine Oberflächendarstellung in eine uniforme Darstellung um. Dies wird vorzugsweise dadurch erreicht, dass die Oberflächendarstellung in ein Steuernetz umgeformt wird. Um ein Steuernetz aus der Oberflächendarstellung zu erzeugen, werden bekannte Tesselationstechniken dazu verwendet, die Polygondaten aus der Oberflächendarstellung zu extrahieren. 2 ist ein Flussdiagramm, das ein Verfahren zur Rekonstruktion gekrümmter Oberflächen gemäß der vorliegenden Erfindung darstellt, und wird in Verbindung mit 1 beschrieben. Gemäß der vorliegenden Erfindung werden, nachdem in 200 ein Steuernetz erhalten ist, Rekonstruktionsdaten in 204 aus den Tesselationsdaten durch den Rekonstruktionsdatengenerator 104 generiert. Die Rekonstruktionsdaten sind Daten, die gemäß der vorliegenden Erfindung dazu benutzt werden, gekrümmte Oberflächen zu rekonstruieren, und sie werden daher in einem Speicher gehalten, der dem Rekonstruktionsdatengenerator 104 zugeordnet ist, oder in einem zentralisierten Speicher, der anderswo angeordnet ist (nicht gezeigt). Die Rekonstruktionsdaten sind zusätzlich zu den Polygondaten vorgesehen, die typischerweise in einem Steuernetz enthalten sind. Z.B. werden in einer Ausführung der vorliegenden Erfindung, wie in 3 gezeigt, in 300 Oberfläche-normal-Daten erzeugt. Zusätzlich werden Oberfläche-versteckt-Daten gespeichert, die Eigenschaften über die die Polygone aufweisende Oberfläche angeben. In einer Ausführung enthalten die Oberfläche-versteckt-Daten Kantendaten, Scharfheitsdaten und kubische Spline-Daten. Wenn in dieser Ausführung das Polygon eine Oberfläche darstellt, die einen scharten Punkt hat, wird in 304 ein Flag gesetzt, um Information für spätere Rekonstruktion beizubehalten. Auch wenn eine Oberfläche eine harte Kante hat, wird ein Flag (Harte-Kante-Flag genannt) in 308 gesetzt, um diese Information beizubehalten. Wenn eine Kante glatt ist, wird ein Glatt-Flag gesetzt. Kubische Spline-Information wird in 312 für jede ursprüngliche Polygonkante gespeichert, um die Krümmung einer Oberfläche zu erfassen. Kubische Spline-Information wird bevorzugt dadurch erhalten, dass ein Kopf- und Endetangentenvektor gespeichert wird, der dazu verwendet wird, den kubischen Spline über seine Hermit-Darstellung wieder herzustellen. Diese Hermit-Kubik-Splines entlang jeder Kante werden dann dazu benutzt, für jedes ursprüngliche Polygon ein dreieckiges Bezier-Patch zu erzeugen. Die Verwendung von Rekonstruktionsdaten ermöglicht die Rekonstruktion einer akkuraten Darstellung der ursprünglichen Oberfläche. Andere Daten, die in der Tesselationsinformation enthalten sind, können gemäß der vorliegenden Erfindung auch extrahiert werden, um Rekonstruktionsinformation zu erhalten.
  • Als Nächstes erhält ein Auflösungspegelgenerator 108 das Steuernetz und die Rekonstruktionsdaten, um scheitelspezifische Auslösungspegel für jedes Polygon zu berechnen. Die Auflösungspegel bestimmen, ob und wie oft ein Polygon unterteilt wird. Das Unterteilen eines Polygons liefert eine höhere Auflösung, da ein unterteiltes Polygon glattgängiger gekrümmt aussieht und bei der Erstellung detaillierter erscheint als ein Polygon, das nicht unterteilt ist. Ein scheitelspezifischer Auflösungspegel erlaubt, dass eine Unterteilung präzise dort erfolgt, wo sie erforderlich ist. Im Gegensatz hierzu haben herkömmliche Systeme keine scheitelspezifische Auflösungspegel und messen daher die Unterteilung nicht solchen Polygonen zu, die sie am meisten benötigen. Gemäß der vorliegenden Erfindung können die Auflösungspegel vier Werte einnehmen, 0 (keine Unterteilung), 1 (einmalige Unterteilung), 2 (zweifache Unterteilung) und 3 (dreifache Unterteilung). Z.B. sind in 8a die Auflösungspegel aller drei Scheitel 0. Daher wird das Polygon (in diesem Fall ein Dreieck) nicht unterteilt. In 8d haben alle drei Scheitel einen Auflösungspegel von 1. Dementsprechend wird das Polygon einmal in vier kleinere Dreiecke unterteilt, was für eine größere Detaillierung und Krümmung sorgt als das ursprüngliche Dreieck. In 8j werden die Scheitel auf einen Auflösungspegel von 2 spezifiziert. Somit wird das Polygon zweimal unterteilt, um aus dem ursprünglichen Dreieck 16 Dreiecke zu erzeugen. 8t hat Scheitel, die mit einem Auflösungspegel von 3 spezifiziert sind. Dementsprechend wird das ursprüngliche Polygon dreimal unterteilt, um 64 Dreiecke zu erzeugen. Die Unterteilung liefert den größten Auflösungswert und wird für Oberflächen ausgewählt, die sehr stark gekrümmt sind und die in Bezug auf die Kamerarichtung schräg positioniert sind, wie unten im näheren Detail diskutiert wird. Somit steuert die Spezifizierung der Auflösungspegel der Scheitel die Höhe er Unterteilung, die an einem Polygon vorgenommen wird und erlaubt daher eine dynamische Steuerung über den Detailreichtum, der unterschiedlichen Komponenten eines Objekts zugeordnet ist.
  • Um einen Auflösungspegel zu berechnen, wird, wie in 4a gezeigt, in 400 zuerst ein Sehnenabweichungsvektor für eine Kante 420 erzeugt. Wie in 4b gezeigt, wird der Sehnenabweichungsvektor 424 am Mittelpunkt einer Kante 420 zum Mittelpunkt eines kubischen Splines 416 erzeugt, der die Oberfläche des Polygons repräsentiert. Dieser kubische Spline 416 wird aus der kubischen Spline-Information genommen, die aus dem Steuernetz gewonnen wird, wie oben beschrieben. Für jede Kante des ursprünglichen Steuernetzes gibt es einen kubischen Spline 416. Dieser Vektor 42 repräsentiert somit die Auswärtsprojektion der Kante 420 eines Polygons. Als Nächstes wird der Vektor 324 in den Bildschirmraum projiziert, um einen Sichtbarkeitsfaktor für die Kante 420 des Polygons zu bestimmen. Der Sichtbarkeitsfaktor misst den Grad der Sichtbarkeit der Kante 420 des Polygons, wenn es in Bildschirmraumkoordinaten umgewandelt ist. Wenn z.B. das Polygon Teil der Nasenspitze eines Gesichts darstellt, das zur Kamera blickt, haben die die Spitze aufweisenden Polygone einen geringen Sichtbarkeitsfaktor, weil die Krümmung der Nase bei direkter Sicht nicht erkennbar ist. Wenn jedoch das Gesicht weiter zu einem stärker profilierten Winkel gedreht wird, ist der Sichtbarkeitsfaktor hoch, weil die Krümmung der Nase im Bildschirmraum sehr klar sichtbar sein kann. Um den Sichtbarkeitsfaktor einer Kante 420 zu bestimmen, wird der Vektor 424 in 404 in den Bildschirmraum projiziert, wie in 4c gezeigt. Die Länge des Vektors 424 im Bildschirmraum 428 repräsentiert die Höhe der Sichtbarkeit des Raums 420 des Polygons bei Betrachtung durch den Verwender. Somit wird in einer bevorzugten Ausführung ein Auflösungsschwellenwert erzeugt, um Längen gegenprojizierter Vektoren zu vergleichen, um in 412 die Auflösungshöhe zu bestimmen, die den Endpunkten einer Kante 420 zuzuordnen ist, die durch den Vektor 424 definiert ist.
  • In einer Ausführung wird ein Auflösungsschwellenwert derart gewählt, dass dann, wenn die Länge des projizierten Vektors den Schwellenwert nicht überschreitet, ein Auflösungspegel von 0 oder keine ausreichende Unterteilung den Endpunkten der durch den Vektor 424 repräsentierten Kante 420 zugeordnet wird. Wenn die Länge des projizierten Vektors 42 1T überschreitet, aber kleiner ist als 2T (wobei T der Auflösungsschwellenwert ist), dann wird den Endpunkten der Kante 420 ein Auflösungspegel von 1 zugeordnet, was angibt, dass das Polygon einmal unterteilt werden soll. Wenn die Länge des projizierten Vektors 424 2T überschreitet, aber kleiner 3T ist, wird den Endpunkten der Kante 420 ein Auflösungspegel 2 zugeordnet. Wenn schließlich in dieser Ausführung die Länge des projizierten Vektors 424 3T überschreitet, aber kleiner als 4T ist, wird den Endpunkten der Kante 420 ein Auflösungspegel 2 zugeordnet. Somit können die Auflösungspegel für einzelne Scheitel eines Polygons in Antwort auf die Sichtbarkeit der Kante 420 des Polygons, wenn es im Bildschirmraum dargestellt wird, adaptiv bestimmt werden. Gemäß der vorliegenden Erfindung können auch Varianten für einen gewählten Auflösungsschwellenwert und die sich daraus ergebenden Zuordnungen von Auflösungspegeln angewendet werden.
  • In einer bevorzugten Ausführung wird in 414 in ein Endauflösungspegel für alle Kanten, für die er ein Teil ist, erzeugt. Dies kann unterschiedliche Auflösungspegel für einen Endpunkt ergeben, in Abhängigkeit davon, ob das Polygon mit berücksichtigt wird. Gemäß der vorliegenden Erfindung wird in 415 ein maximaler Auflösungspegel für einen Endpunkt einer Kante als der Auflösungspegel, der für den Endpunkt anzuwenden ist, gewählt. Dies gewährleistet, dass durch die vorliegende Erfindung die höchste Qualität beim Aussehen eines Objekts erzeugt wird. Jedoch kann gemäß der vorliegenden Erfindung auch ein Durchschnitt der Auflösungswerte oder der minimale Auflösungswert (was für eine schnellere Geschwindigkeit sorgt) angewendet werden.
  • Sobald die Auflösungspegel für die Scheitel der Polygone bestimmt worden sind, werden in 112 die Polygone durch den Polygonunterteiler 112 unterteilt. Ein wichtiger Aspekt der 3D-Erstellung ist, dass T-Scheitel Artefakte erzeugen, die einen Benutzer stören. 6a stellt das T-Scheitelproblem dar. In 6a erzeugt das dem Dreieck 606 benachbarte Dreieck 605 ein T-Scheitelproblem, weil die Basen der Dreiecke 601 des Dreecks 605 durch die Dreiecke 602 des Dreiecks 606 and den Punkten 604 aufgeteilt sind. Bei der Erstellung erzeugt dies visuelle Artefakte. Um jedoch in herkömmlichen Systemen dem T-Scheitelproblem zu begegnen, werden nach der Unterteilung Polygone geprüft und nachgeprüft, um die T-Scheitelprobleme rekursiv zu "fixieren". Nach einer Iteration werden die unterteilten Polygone verändert, um jegliche T-ScheitelArtefakte zu beseitigen. Dann wird eine zweite Iteration erforderlich, um zu bestimmen, ob der vorangehende Durchlauf etwaige neue T-Scheitel erzeugt hat, und um diese T-Scheitelprobleme zu fixieren. Dies muss wiederholt durchgeführt werden, um die T-Scheitel zu beseitigen. Dies erfolgt zusätzlich zu der rekursiven Unterteilung und daher erfordert der gesamte Unterteilungs- bis Erstellungsprozess herkömmlicher Systeme einen großen Umfang rekursiver Verarbeitung.
  • Jedoch wird gemäß der vorliegenden Erfindung ein Unterteilungsoptimierer 116 vorgesehen, um diese rekursive Verarbeitung zu erübrigen. In einer bevorzugten Ausführung umfasst der Unterteilungsoptimierer 116 eine Nachschlagetabelle, die im Speicher gespeichert ist, der die Unterteilungen für jede mögliche Auflösungspegelkombination hält. Jedoch können gemäß der vorliegenden Erfindung auch andere Datenstrukturen dazu benutzt werden, Information in organisierter Weise zu speichern, die rasch abgefragt werden kann. Wie in 5 gezeigt, bestimmt in 500 der Polygonunterteiler 112 zuerst die Auflösungspegel von Scheiteln eines Polygons, das unterteilt werden soll. Der Auflösungspegelgenerator 108 hat bvorzugt die Auflösungspegel bestimmt, wobei aber die Auflösungspegel auch von einer beliebigen anderen Quelle erzeugt werden können. Dann fragt in 504 der Polygonunterteiler 112 ein Unterteilungsmuster ab, das in dem Unterteilungsoptimierer 116 für die gegebenen Auflösungspegel gespeichert ist. Die Unterteilungsmuster sind vorgestaltet, um T-Scheitelprobleme zu beseitigen, um hierdurch ohne rekursives Fixieren von T-Scheitelproblemen auszukommen. In 508 unterteilt dann der Polygonunterteiler 112 das Polygon in Antwort auf das abgefragte Unterteilungsmuster.
  • 8a8t stellen eine Ausführung vorgestalteter Muster dar, die alle möglichen Unterteilungen in einem System abdecken, das vier Auflösungspegel (0 – 3) hat. In den Figuren der 8a8t sind die Scheitelnummern der erzeugten unterteilen Dreiecke in Scheitelzahlenkästen neben dem unterteilten Dreieck aufgelistet. Die Scheitelnummern sind in dem Referenzdreieck 800 identifiziert, das auf jedem Blatter der Zeichnungen dargestellt ist. In einer Ausführung wird eine Darstellung des Referenzdreiecks 800 durch den Unterteiler 112 beibehalten, um eine effiziente Unterteilung eines gegebenen Dreiecks zu gestalten. Das Referenzdreieck 800 spezifiziert alle möglichen Scheitel eines unterteilten Dreiecks. Z.B. sollen in 8f vier unterteilte Dreiecke erzeugt werden. Die Scheitelnummern für das erste unterteilte Dreieck 801 sind (0, 1, 5) und wie im Referenzdreieck 800 gezeigt, können diese Punkte des Referenzdreiecks 800 verbunden werden zur Bildung eines Dreiecks 801. Die anderen Dreiecke 802, 803, 804 werden ähnlich berechnet. Somit kann, nachdem der Unterteilungsoptimierer 116 die Auflösungspegel von Scheiteln eines zu unterteilenden Polygons erhält, der Unterteilungsoptimierer 116 die Scheitelnummern der neuen Polygone zum Unterteiler 112 übertragen und der Unterteiler kann das Polygon unterteilen, indem die Polygone an den Stellen hinzugefügt werden, die durch die Scheitelnummern in Bezug auf das Referenzdreieck 800 spezifiziert sind. Der Unterteilungsoptimierer 116 braucht nur das Unterteilungsmuster und die zugeordneten Scheitelnummern der zu erzeugenden Polygone zu speichern, um hierdurch die Resourcen zu minimieren, die zum Implementieren des Unterteilungsoptimierers erforderlich sind. Wenn z.B. der Unterteilungsoptimierer eine Nachschlagetabelle ist, wird die Größe der Nachschlagetabelle durch die Verwendung des Referenzdreiecks 800 stark reduziert.
  • In der Ausführung der 8a8t sind Unterteilungsmuster für 20 mögliche Kombinationen von Auflösungspegeln gespeichert. Da jedoch jedes Muster drei Rotationsgrade hat, werden alle möglichen 64 Fälle durch diese 20 Unterteilungsmuster addressiert. Das Speichern von nur 20 Mustern und das Vorsehen von Rotation minimiert die Speicheranforderungen; jedoch könnten gemäß der vorliegenden Erfindung auch alle 64 Muster beibehalten werden. Wie in 6b gezeigt, beseitigt die Anwendung eines Unterteilungsmusters, in diesem Fall des Musters von 8g, T-Scheitelprobleme durch Erzeugen eines unterteilten Polygons, das den erforderlichen Unterteilungsgrad vorsieht, ohne T-Scheitel zu erzeugen. Gemäß diesem Unterteilungsmuster fluchten am Punkt 604 die Dreiecke 601 des Dreiecks 605 mit dem Dreieck 602, um den T-Scheitel zu beseitigen. 6c stellt ein zweites T-Scheitelproblem dar, und 6d stellt ein Unterteilungsmuster dar, das das T-Scheitelproblem löst. In 6c ist die Basis des Dreiecks 612 durch Dreiecke 614 an den Punkten 616 unterteilt. Jedoch trifft, gemäß dem vordefinierten Unterteilungsmuster von 8k, das in 3d gedreht gezeigt ist, die Basis des Dreiecks 612 mit einer gleichermaßen festen Basis des Dreiecks 614 zusammen. Somit ist gemäß der vorliegenden Erfindung lediglich eine einzige Iteration erforderlich, um T-scheitelfreie Polygon-Kombinationen zu erzeugen, Prozessleistung und Zeit einzusparen und eine qualitativ höherwertige visuelle Darstellung zu erzeugen. Wie oben diskutiert, erlaubt die Einzeliterationsmethode, dass die vorliegende Erfindung als gesonderte Hardware implementiert wird, da der rekursive Prozess herkömmlicher Systeme eliminiert wird.
  • Nachdem die Polygone unterteilt worden sind, erhält eine Gekrümmte-Oberfläche-Rekonstruktionsmaschine 118 die Polygoninformations- und -rekonstruktionsdaten sowie die Scheitelinformation der neuen Scheitel, die während der Unterteilung hinzugefügt wurden, um bei 216 die gekrümmte Oberfläche mit den zusätzlichen Polygonen, die durch die Unterteilung erzeugt wurden, zu rekonstruieren. 7 ist ein Flussdiagramm, das die Rekonstruktion einer gekrümmten Oberfläche gemäß der vorliegenden Erfindung darstellt. Zuerst wird in 700 ein zu analysierendes Polygon durch die Gekrümmte-Oberflächen-Rekonstruktionsmaschine 116 erhalten. Wiederum kann das Polygon von dem Polygonunterteiler 112 erzeugt werden, oder kann aus einer herkömmlichen Quelle von Polygonen, die durch einen Renderer 120 zu gewinnen sind, erzeugt werden. Dann wird in 704 die Positionsinformation der Scheitel des Polygons abgefragt. Diese Information war, wie oben beschrieben, als Teil der ursprünglichen Polygoninformation gespeichert, einhergehend mit den Rekonstruktionsdaten, die durch den Rekonstruktionsdatengenerator 104 erzeugt wurden.
  • Gemäß der vorliegenden Erfindung werden dreeckige Bezier-Patches (bikubische Patches) dazu benutzt, die gekrümmte Oberfläche darzustellen, die durch ein Polygon dargestellt ist, um eine genauere Rekonstruktion der Oberfläche aufgrund der hohen Flexibilität des Bezier-Patches vorzusehen. Wie bekannt ist, gibt es 10 Oberflächenparameter (genannt Steuerpunkte), die erforderlich sind, um ein bikubisches Bezier-Patch zu erzeugen. Die Bezier-Dreieckoberflächenparameter werden aus den Kanten-Spline-Daten berechnet, die zuvor während der Erzeugung des Rekonstruktionsdatenschritts gespeichert wurden. Wie in 9 gezeigt, umfasst ein Polygon 900 drei Kanten-Splines 901, 902, 903. Diese Splines (Hermite) sind aus zwei Scheiteln zusammengesetzt, einem Kopfscheitel und einem Endscheitel, für die zuvor die Positionsinformation gespeichert wurde. Die Oberfläche-normal-Daten, die ebenfalls zuvor gespeichert wurden, werden dazu benutzt, die zwei Tangenten an jedem Scheitel (nachfolgend diskutiert), eine Kopftangente und eine Endtangente zu erzeugen. Diese Information wird dann dazu benutzt, die drei Kanten-Splines 901, 902, 903 in 1 Bezier-Dreieckpatch umzuwandeln. Die in 9 aufgelisteten Gleichungen sind ein bevorzugtes Verfahren zum Umwandeln von Kanten-Spline-Daten in Bezier-Patchdaten; jedoch können Fachleute gemäß der vorliegenden Erfindung auch andere Methoden anwenden.
  • Insbesondere wird zuerst die Positionsinformation der Scheitel den drei Bezier-Parameterfeldern zugewiesen, um Koordinaten des Bezier-Patches zu speichern, wie in den Gleichungen 905, 908 und 911 gezeigt. Dann wird in 708 die Oberfläche-normal-Information, die zuvor als Teil der Rekonstruktionsdaten gespeichert wurde, abgefragt und dazu benutzt, zwei Oberflächentangenten für jede Oberflächen-Normale zu erzeugen. Wie in 8 im näheren Detail gezeigt, werden die Oberflächen-Normalen 1001, 1002 dazu benutzt, für jede Kante 901, 902, 903 des erhaltenen Polygons Tangentenvektoren 1003, 1004 zu erzeugen. Ein erster Tangentenvektor 1003 wird in Antwort auf Gleichung 1005 erzeugt, und ein zweiter Tangentenvektor 1004 wird in Antwort auf Gleichung 1006 erzeugt, wobei t0 der erste Tangentenvektor 1003, t1 der zweite Tangentenvektor ist, n0 die erste Oberflächen-Normale am Endpunkt am Ende der Kante 901, 902, 903 ist, n1 die Oberflächen-Normale am Kopf der Kante 901, 902, 903 ist, wobei das Symbol "^" den konventionellen Normalisierungsoperator bezeichnet, der einen Vektor einer beliebigen Länge einnimmt und einen Vektor mit einer Einheitslänge in der gleichen Richtung erzeugt, und e0 die zu analysierende Kante 901, 902, 903 ist. In der bevorzugten Ausführung werden alle diese Vektoren als 3D-Vektoren berechnet. Die Daten zur Darstellung der zwei Oberflächentangenten für jeden Kanten-Spline 901, 902, 903 werden zwei Bezier-Parameterfeldern in Antwort auf die Gleichungen 906, 907, 909, 910, 912, 913 zugewiesen. Als Nächstes wird der Abstand des Bezier-Patches, der von der die Endpunkte des Patches enthaltenden Ebene vorsteht, in Antwort auf Gleichung 904 berechnet, und dem letzten Bezier-Parameterfeld zugewiesen, der den letzten von 10 Bezier-Steuerpunkten gibt. Andere Gleichungen zum Umwandeln des Scheitels, Cubic Spline und Oberflächen-Normale-Information in 10 Bezier-Steuerparametern sollen auch innerhalb des Umfangs der vorliegenden Erfindung liegen.
  • Um eine genauere gekrümmte Oberflächendarstellung zu erzeugen, prüft die vorliegende Erfindung auch die Flags, die während der Rekonstruktionsdatenerzeugung gesetzt werden. Wie oben diskutiert, geben die Flags an, ob die zu rekonstruierende Oberfläche einen scharten Punkt, eine harte Kante hat, durchgehend glatt ist oder andere Oberflächenqualitäten hat. Diese Information erlaubt die Erzeugung einer gekrümmten Oberfläche, die durch das Bezier-Dreieck repräsentiert wird, das die Oberfläche des ursprünglichen Objekts akkurat wiedergibt. Insbesondere werden die Flags dazu benutzt, die Kontinuität benachbarter Bezier-Dreiecke zu steuern. Wenn das Glatt-Flag gesetzt ist, werden Normalen quer über benachbarte Bezier-Dreiecke angepasst. Wenn eine scharte Kante oder ein Punkt gesetzt ist, werden die Normalen nicht entlang den Kanten oder Punkten quer über benachbarte Bezier-Dreiecke gemeinsam benutzt, was eine scharfe Kante ergibt. Die Rekonstruktionsdaten könnten gemäß der vorliegenden Erfindung auch dazu benutzt werden, Parameter für alternative mathematische Darstellungen zu erzeugen. Sobald das Bezier-Patch für jedes Polygon erzeugt worden ist, wird das Bezier-Patch bei allen durch Unterteilung erzeugten neuen Scheiteln eines Polygons ausgewertet, und diese neuen Polygone werden zum Renderer 120 übertragen, der dann das Objekt erstellt, um es dem Benutzer anzuzeigen.
  • Trotz der Hinzufügung der neuen Polygone wird ein Detail jenen Teilen des Bilds hinzugefügt, denen das zusätzliche Detail am meisten nützt, und weniger Datil wird angewendet, wenn für einen Benutzer mehr Detail nicht sichtbar wäre. Dies ergibt eine maximale Bildqualität, während die Resourcenanforderungen minimiert werden. Zusätzlich kann, aufgrund der Unterteilungsmethodik der vorliegenden Erfindung, die gemäß der vorliegenden Erfindung die rekonstruierte Version des Objekts einen größeren Detailreichtum haben als die ursprüngliche Darstellung (wenn z.B. als die ursprüngliche Oberflächendarstellung eine polygonale Näherung benutzt wurde), um hierdurch eine höhere Qualität des rekonstruierten Objekts als die des ursprünglichen Objekts vorzusehen, auf dem das rekonstruierte Objekt basiert hat.
  • Während der Laufzeit führt die Schaltung der vorliegenden Erfindung die oben beschriebene Methodik bevorzugt jedesmal aus, wenn sich ein Kamerawinkel verschiebt, um bei Bedarf Polygone zu dem betrachteten Bild hinzuzufügen oder davon zu subtrahieren. Durch Implementieren der oben beschriebenen Methodik als gesonderte integrierte Schaltung kann die Verarbeitung der Bilder während der Laufzeit effektiv und effizient erreicht werden. Darüber hinaus wird aufgrund der Verwendung des Unterteilungsoptimierers 118 die zum Bearbeiten jedes Objekts erforderliche Zeit stark verkürzt. Dementsprechend können auch solche Systeme, die die vorliegende Erfindung mit einem Mehrzweckprozessor implementieren, die Gekrümmte-Oberfläche-Darstellung on-the-fly rasch mit der Laufzeit erzeugen.
  • Es versteht sich, dass die spezifischen Mechanismen und Techniken, die beschrieben worden sind, lediglich eine Anwendung der Prinzipien der Erfindung veranschaulichen. An der oben beschriebenen Vorrichtung können zahlreiche zusätzliche Modifikationen vorgenommen werden, ohne vom wahren Geist der Erfindung abzuweichen. Obwohl darüber hinaus eine spezifische Funktionalität an verschiedenen Schritten des oben beschriebenen Verfahrens und der Module der oben beschriebenen Schaltung beschrieben worden sind, können diese Funktionalitäten auch in anderen Reihenfolgen und anderen Modulen durchgeführt werden, wie sie dem Fachkundigen bekannt wären.

Claims (12)

  1. Verfahren der Erzeugung polygonaler Näherungen von Objekten, worin ein Objekt durch ein Steuernetz definiert ist, das Scheitel von das Objekt aufweisenden Polygonen spezifiziert, wobei das Verfahren die Schritte umfasst: Erhalten des Steuernetzes eines zu bearbeitenden Objekts; Berechnen eines Auflösungspegels für jeden Scheitel jedes durch das Steuernetz repräsentierten Polygons, worin die Auflösungspegel Auflösungspegel für die Polygone spezifizieren, wobei das Verfahren gekennzeichnet ist durch: Spezifizieren der Auflösungspegel gemäß dem Erscheinungsbild der Polygone im Bildschirmraum; Auswählen von Unterteilungsmustern gemäß den Auflösungspegeln, worin die Unterteilungsmuster Unterteilungen spezifizieren, in denen Polygone ohne die Bildung von T-Scheiteln unterteilt sind; und Unterteilen der Polygone gemäß den gewählten Unterteilungsmustern.
  2. Verfahren nach Anspruch 1, worin die Polygone des Steuernetzes eine Näherung einer gekrümmten Oberfläche des Objekts sind, und der Schritt der Berechnung von Auflösungspegeln umfasst: Projizieren eines Vektors, der eine Sehnenabweichung einer Kante eines Polygons des Steuernetzes von der gekrümmten Oberfläche repräsentiert, in den Bildschirmraum; und Bestimmen von Auflösungspegeln für beide Endpunkte der Kante in Antwort auf die Länge des projizierten Vektors in dem Bildschirmraum.
  3. Verfahren nach Anspruch 2, worin die Unterteilungsmuster Muster aufweisen, in denen Polygone nicht unterteilt sind, worin der Schritt der Berechnung von Auflösungspegeln umfasst, die Länge des projizierten Vektors mit einem Auflösungsschwellenwert zu vergleichen, und worin der Schritt des Auswählens von Unterteilungsmustern umfasst: Auswählen eines Unterteilungsmusters, in dem ein Polygon nicht unterteilt ist, wenn die Länge des projizierten Vektors den Schwellenwert nicht überschreitet.
  4. Verfahren nach Anspruch 2, worin die Unterteilungsmuster Muster aufweisen, die Unterteilungen spezifizieren, in denen ein Polygon mehrere Male unterteilt ist, worin der Schritt der Berechnung von Auflösungspegeln umfasst, die Länge des projizierten Vektors mit einem Auflösungsschwellenwert zu vergleichen, und worin der Schritt des Auswählens von Unterteilungsmustern den Schritt umfasst, Unterteilungsmuster derart auszuwählen, dass die Anzahl von Unterteilungen eines gewählten Unterteilungsmusters dem Betrag entspricht, um den die Länge des projizierten Vektors den Schwellenwert überschreitet.
  5. Verfahren nach einem der vorhergehenden Ansprüche, worin der Schritt des Unterteilens der Polygone umfasst, eine die Unterteilungsmuster speichernde Nachschlagetabelle zu verwenden.
  6. Vorrichtung zur Erzeugung polygonaler Näherungen von Objekten, worin ein Objekt durch ein Steuernetz definiert ist, das Scheitel von das Objekt aufweisenden Polygonen spezifiziert, wobei die Vorrichtung umfasst: ein Mittel zum Erhalten des Steuernetzes eines zu bearbeitenden Objekts; ein Mittel zum Berechnen eines Auflösungspegels für jeden Scheitel jedes durch das Steuernetz repräsentierten Polygons, worin die Auflösungspegel Auflösungspegel für die Polygone spezifizieren, wobei die Vorrichtung gekennzeichnet ist durch: Spezifizieren der Auflösungspegel gemäß dem Erscheinungsbild der Polygone im Bildschirmraum; ein Mittel zum Auswählen von Unterteilungsmustern gemäß den Auflösungspegeln, worin die Unterteilungsmuster Unterteilungen spezifizieren, in denen Polygone ohne die Bildung von T-Scheiteln unterteilt sind; und ein Mittel zum Unterteilen der Polygone gemäß den gewählten Unterteilungsmustern.
  7. Vorrichtung nach Anspruch 6, die eine Unterteilungsmuster speichernde Nachschlagetabelle aufweist.
  8. Vorrichtung nach Anspruch 7, worin die Nachschlagetabelle alle möglichen Unterteilungsmuster speichert, zur Abfrage durch das Mittel zum Unterteilen der Polygone.
  9. Vorrichtung nach Anspruch 7, worin die Nachschlagetabelle einen Untersatz aller möglichen Unterteilungsmuster speichert, und worin die Vorrichtung ein Mittel umfasst, um die in der Nachschlagetabelle gespeicherten Unterteilungsmuster zu drehen, um die restlichen möglichen weiteren Unterteilungsmuster zu erzeugen.
  10. Vorrichtung nach einem der Ansprüche 6 – 9, worin die Polygone des Steuernetzes eine Näherung einer gekrümmten Oberfläche des Objekts sind, und die ferner umfasst: ein Mittel zum Projizieren eines Vektors, der eine Sehnenabweichung einer Kante eines Polygons des Steuernetzes von der gekrümmten Oberfläche repräsentiert, in den Bildschirmraum; und ein Mittel zum Bestimmen von Auflösungspegeln für beide Endpunkte der Kante in Antwort auf die Länge des projizierten Vektors in dem Bildschirmraum.
  11. Vorrichtung nach Anspruch 10, worin das Mittel zum Auswählen von Unterteilungsmustern betreibbar ist, um Muster auszuwählen, in denen Polygone nicht unterteilt sind, worin das Mittel zum Berechnen von Auflösungspegeln Mittel umfasst, um die Länge des projizierten Vektors mit einem Auflösungsschwellenwert zu vergleichen, und worin das Mittel zum Auswählen von Unterteilungsmustern Mittel umfasst, um ein Unterteilungsmuster auszuwählen, in dem Polygon nicht unterteilt ist, wenn die Länge des projizierten Vektors den Schwellenwert nicht überschreitet.
  12. Vorrichtung nach Anspruch 10, worin das Mittel zum Auswählen von Unterteilungsmustern betreibbar ist, um Muster auszuwählen, die Unterteilungen spezifizieren, in denen ein Polygon mehrere Male unterteilt ist, worin das Mittel zum Berechnen von Auflösungspegeln Mittel umfasst, um die Länge des projizierten Vektors mit einem Auflösungsschwellenwert zu vergleichen, und worin das Mittel zum Auswählen von Unterteilungsmustern Mittel umfasst, um Unterteilungsmuster derart auszuwählen, dass die Anzahl von Unterteilungen eines gewählten Unterteilungsmusters dem Betrag entspricht, um den die Länge des projizierten Vektors den Schwellenwert überschreitet.
DE60032832T 1999-04-26 2000-04-20 Darstellung einer gekrümmten Oberfläche in mehreren Auflösungen Expired - Lifetime DE60032832T2 (de)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US466540 1983-02-15
US13118899P 1999-04-26 1999-04-26
US131188P 1999-04-26
US09/466,540 US6462738B1 (en) 1999-04-26 1999-12-17 Curved surface reconstruction

Publications (2)

Publication Number Publication Date
DE60032832D1 DE60032832D1 (de) 2007-02-22
DE60032832T2 true DE60032832T2 (de) 2007-11-29

Family

ID=26829222

Family Applications (1)

Application Number Title Priority Date Filing Date
DE60032832T Expired - Lifetime DE60032832T2 (de) 1999-04-26 2000-04-20 Darstellung einer gekrümmten Oberfläche in mehreren Auflösungen

Country Status (4)

Country Link
US (1) US6462738B1 (de)
EP (1) EP1049049B1 (de)
JP (1) JP2001052194A (de)
DE (1) DE60032832T2 (de)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102015013582B4 (de) 2014-10-23 2018-08-09 Fanuc Corporation Numerische Steuervorrichtung

Families Citing this family (43)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7158134B2 (en) * 2000-09-05 2007-01-02 Minolta Co., Ltd. Image processing apparatus and image processing method
US6664960B2 (en) * 2001-05-10 2003-12-16 Ati Technologies Inc. Apparatus for processing non-planar video graphics primitives and associated method of operation
US6940503B2 (en) * 2001-05-10 2005-09-06 Ati International Srl Method and apparatus for processing non-planar video graphics primitives
WO2003067527A1 (fr) 2002-02-06 2003-08-14 Digital Process Ltd. Programme d'affichage de forme tridimensionnelle, procede d'affichage de forme tridimensionnelle et dispositif d'affichage de forme tridimensionnelle
US8482559B2 (en) * 2002-11-04 2013-07-09 Ati Technologies Ulc Method and apparatus for triangle tessellation
US7212205B2 (en) * 2002-11-12 2007-05-01 Matsushita Electric Industrial Co., Ltd. Curved surface image processing apparatus and curved surface image processing method
US20060080072A1 (en) * 2003-03-12 2006-04-13 Computer Associates Think, Inc. Optimized rendering of dynamic moving bodies
US8471852B1 (en) 2003-05-30 2013-06-25 Nvidia Corporation Method and system for tessellation of subdivision surfaces
JP4481931B2 (ja) 2003-12-26 2010-06-16 トヨタ自動車株式会社 三次元cadデータの近似および表示方法、その方法を実行するシステム
US7408548B2 (en) * 2005-06-30 2008-08-05 Microsoft Corporation Triangulating procedural geometric objects
US8571346B2 (en) 2005-10-26 2013-10-29 Nvidia Corporation Methods and devices for defective pixel detection
US7750956B2 (en) 2005-11-09 2010-07-06 Nvidia Corporation Using a graphics processing unit to correct video and audio data
US8588542B1 (en) 2005-12-13 2013-11-19 Nvidia Corporation Configurable and compact pixel processing apparatus
US8737832B1 (en) 2006-02-10 2014-05-27 Nvidia Corporation Flicker band automated detection system and method
JP5007991B2 (ja) * 2006-02-13 2012-08-22 株式会社ディジタルメディアプロフェッショナル 細分割曲面描画用レンダリング装置
CN100437642C (zh) * 2006-03-27 2008-11-26 腾讯科技(深圳)有限公司 一种模型几何空间轮廓线查找的预处理方法
US7924278B2 (en) * 2006-07-28 2011-04-12 Microsoft Corporation Real-time GPU rendering of piecewise algebraic surfaces
US8594441B1 (en) 2006-09-12 2013-11-26 Nvidia Corporation Compressing image-based data using luminance
US9147288B1 (en) * 2006-11-08 2015-09-29 Lucasfilm Entertainment Company Ltd. Subdivision of surfaces approximation
US8723969B2 (en) 2007-03-20 2014-05-13 Nvidia Corporation Compensating for undesirable camera shakes during video capture
US8724895B2 (en) 2007-07-23 2014-05-13 Nvidia Corporation Techniques for reducing color artifacts in digital images
US8570634B2 (en) 2007-10-11 2013-10-29 Nvidia Corporation Image processing of an incoming light field using a spatial light modulator
US9177368B2 (en) 2007-12-17 2015-11-03 Nvidia Corporation Image distortion correction
US8698908B2 (en) 2008-02-11 2014-04-15 Nvidia Corporation Efficient method for reducing noise and blur in a composite still image from a rolling shutter camera
US9379156B2 (en) 2008-04-10 2016-06-28 Nvidia Corporation Per-channel image intensity correction
US20100085359A1 (en) * 2008-10-03 2010-04-08 Microsoft Corporation Surface normal reconstruction from a single image
US8373718B2 (en) 2008-12-10 2013-02-12 Nvidia Corporation Method and system for color enhancement with color volume adjustment and variable shift along luminance axis
KR101591472B1 (ko) * 2009-04-15 2016-02-03 삼성전자주식회사 점진적 메쉬 복호화 방법과 장치
US8749662B2 (en) 2009-04-16 2014-06-10 Nvidia Corporation System and method for lens shading image correction
CN101872488B (zh) * 2009-04-27 2012-05-16 鸿富锦精密工业(深圳)有限公司 曲面渲染系统及方法
US8698918B2 (en) 2009-10-27 2014-04-15 Nvidia Corporation Automatic white balancing for photography
US9401046B2 (en) * 2011-02-07 2016-07-26 Intel Corporation Micropolygon splatting
US8803885B1 (en) 2011-09-07 2014-08-12 Infragistics, Inc. Method for evaluating spline parameters for smooth curve sampling
US9798698B2 (en) 2012-08-13 2017-10-24 Nvidia Corporation System and method for multi-color dilu preconditioner
US9082204B2 (en) 2012-08-30 2015-07-14 Qualcomm Incorporated Storage structures for stitching primitives in graphics processing
US9142060B2 (en) 2012-08-30 2015-09-22 Qualcomm Incorporated Computation reduced tessellation
US9076260B2 (en) * 2012-08-30 2015-07-07 Qualcomm Incorporated Stitching for primitives in graphics processing
US9508318B2 (en) 2012-09-13 2016-11-29 Nvidia Corporation Dynamic color profile management for electronic devices
US9307213B2 (en) 2012-11-05 2016-04-05 Nvidia Corporation Robust selection and weighting for gray patch automatic white balancing
US9418400B2 (en) 2013-06-18 2016-08-16 Nvidia Corporation Method and system for rendering simulated depth-of-field visual effect
US9756222B2 (en) 2013-06-26 2017-09-05 Nvidia Corporation Method and system for performing white balancing operations on captured images
US9826208B2 (en) 2013-06-26 2017-11-21 Nvidia Corporation Method and system for generating weights for use in white balancing an image
CN103606193B (zh) * 2013-11-29 2016-10-12 中国科学院深圳先进技术研究院 一种自适应细分方法及装置

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0799549B2 (ja) 1986-09-27 1995-10-25 ソニー株式会社 陰影表示方法
WO1995006291A1 (en) * 1993-08-27 1995-03-02 Apple Computer, Inc. System and method for generating smooth low degree polynomial spline surfaces over irregular meshes
JP3199231B2 (ja) 1997-05-27 2001-08-13 日本アイ・ビー・エム株式会社 3次元形状モデルへの情報の埋め込み方法及びシステム
US6222553B1 (en) * 1997-08-04 2001-04-24 Pixar Animation Studios Hybrid subdivision in computer graphics
JP3705923B2 (ja) 1998-04-09 2005-10-12 株式会社ソニー・コンピュータエンタテインメント 画像処理装置および画像処理方法、プログラム提供媒体、並びにデータ提供媒体

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102015013582B4 (de) 2014-10-23 2018-08-09 Fanuc Corporation Numerische Steuervorrichtung

Also Published As

Publication number Publication date
EP1049049A3 (de) 2003-08-13
EP1049049A2 (de) 2000-11-02
DE60032832D1 (de) 2007-02-22
EP1049049B1 (de) 2007-01-10
JP2001052194A (ja) 2001-02-23
US6462738B1 (en) 2002-10-08

Similar Documents

Publication Publication Date Title
DE60032832T2 (de) Darstellung einer gekrümmten Oberfläche in mehreren Auflösungen
DE60026197T2 (de) Detailgerichtete hierarchische Distanzfelder in der Objektmodellierung
DE69907415T2 (de) Bestimmung sichtbarer objekte für interaktive visualisation
DE112007002991B4 (de) Computergraphikschattenvolumen unter Verwendung von hierarchischem Okklusions-Culling
DE69534331T2 (de) Verfahren und Vorrichtung zur Hervorhebung der Einzelheit einer Baumstruktur
DE69816824T2 (de) Texturabbildung in 3-d-rechnergraphik
DE69725483T2 (de) Gitternetzübertragung und -kodierung
DE19646194B4 (de) Echtzeit-Wiedergabeverfahren zum wahlweisen Ausführen von Bump-Mapping- und Phong-Schattierungs-Prozessen und zugehörige Vorrichtung
DE69815687T2 (de) Verfahren und vorrichtung zur texturabbildung und andere anwendungen von skalarfeldern auf unterteilungsoberflächen in rechnergraphik und animation
DE69924699T2 (de) Verfahren zur Schaffung von als Oberflächenelemente dargestellten grafischen Objekten
DE69534697T2 (de) Verfahren zur Erzeugung texturierter Bilder und Spezialvideoeffekte
DE69631718T2 (de) Verfahren und Gerät zur leistungsfähigen Graphikdarstellung dreidimensionaler Szenen
DE19807013B4 (de) Volumetrisches Vorabschneidungsverfahren, das eine minimale Anzahl von Abtastpunkten durch ein Volumen gewährleistet
EP0829822B1 (de) Verfahren zur Anzeige von geometrischen Objektoberflächen
DE102005050846A1 (de) Perspektiveneditierwerkzeuge für 2-D Bilder
DE69916808T2 (de) Verfahren und system zur strahlverfolgung
DE4124564A1 (de) Verfahren und einrichtung zur erzeugung von schattierten abbildungen
DE102005023964A1 (de) Volumenvisualisierung mittels Texturverschiebung
DE69924230T2 (de) Verfahren zur Modellierung von durch Oberflächenelemente dargestellten grafischen Objekten
DE102005035796B4 (de) System und Verfahren zum Polygon-Glätten beim texturbasierten Volumen-Rendering
DE69915837T2 (de) Parametrische Flächenauswertung im Eigenraum der Unterteilungsmatrix eines irregulären Flächenstücks
DE102022119422A1 (de) Verfahren zum Erzeugen einer hierarchischen Datenstruktur, hierarchische Datenstruktur sowie Verfahren zum Streamen von dreidimensionalen Objekten
DE60026785T2 (de) Bildverarbeitungsgerät
DE112011105126T5 (de) Texturkartierungsvorrichtung
DE602004001882T2 (de) Verfahren zur Unterteilung eines Maschengitters oder Polygonzuges

Legal Events

Date Code Title Description
8327 Change in the person/name/address of the patent owner

Owner name: SPATIAL CORP., WESTMINSTER, COL., US

8328 Change in the person/name/address of the agent

Representative=s name: WEICKMANN & WEICKMANN, 81679 MUENCHEN

8364 No opposition during term of opposition