DE60026197T2 - Detailgerichtete hierarchische Distanzfelder in der Objektmodellierung - Google Patents

Detailgerichtete hierarchische Distanzfelder in der Objektmodellierung Download PDF

Info

Publication number
DE60026197T2
DE60026197T2 DE60026197T DE60026197T DE60026197T2 DE 60026197 T2 DE60026197 T2 DE 60026197T2 DE 60026197 T DE60026197 T DE 60026197T DE 60026197 T DE60026197 T DE 60026197T DE 60026197 T2 DE60026197 T2 DE 60026197T2
Authority
DE
Germany
Prior art keywords
cell
cells
distance field
distance
tool
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
DE60026197T
Other languages
English (en)
Other versions
DE60026197D1 (de
Inventor
Sarah F. Arlington Frisken
Ronald N. Cambridge Perry
Thouis R. Cambridge Jones
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.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric 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 Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Publication of DE60026197D1 publication Critical patent/DE60026197D1/de
Application granted granted Critical
Publication of DE60026197T2 publication Critical patent/DE60026197T2/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

Description

  • GEBIET DER ERFINDUNG
  • Diese Erfindung betrifft allgemein das Gebiet der Abbildung von Formen und insbesondere das Darstellen, Wiedergeben und Manipulieren von Formen mit Distanzfeldern.
  • HINTERGRUND DER ERFINDUNG
  • Oberflächendarstellungen
  • Die Darstellung der „Form" eines Objektes oder Modells wird auf vielen Gebieten wie die rechnergestützte Konstruktion und Fertigung, rechnerische Physik, das physikalische Modellieren und die Computergrafik benötigt. Drei übliche Darstellungen für eine Form sind parametrische Oberflächenmodelle, implizite Oberflächen und abgetastete Volumendaten.
  • Parametrische Oberflächenmodelle
  • Parametrische Oberflächenmodelle definieren die Oberflächen eines Objekts als eine Sammlung von Darstellungselementen (Primitive) wie zum Beispiel Vielecke, keilförmige Flecke oder Unterteilungsflächen, die parametrisch definiert sind. Die meisten Grafiksysteme nutzen eine parametrische Darstellung. Wie von Alyn Rockwood in „The displacement method for implicit blending surfaces in solid models" („Die Verschiebungsmethode für implizite Mischflächen in Festkörpermodellen"), ACM Transactions on Graphics, Bd. 8, Nr. 4, 1989 festgestellt wird, „sind parametrische Oberflächen normalerweise leichter zu zeichnen, zu tesselieren, zu unterteilen und abzugrenzen oder dass eine beliebige Operation daran durchzuführen, die Kenntnis des „Wo" auf der Oberfläche erfordert." Parametrische Oberflächenmodelle sind jedoch schwierig zu kombinieren, zu formen oder zu verformen. Außerdem können parametrische Oberflächenmodelle nicht für Festkörper-Objekte genutzt werden, weil sie nicht das Innere von Objekten darstellen.
  • Implizite Oberflächen
  • Implizite Oberflächen werden durch eine implizite Funktion f(x) dargestellt. Die Funktion ist über den die Oberfläche einschließenden Raum definiert. Die Oberfläche des Objekts wird als Isofläche einer impliziten Funktion ausgedrückt: d. h. f(x) = c. Implizite Oberflächen können Innenräume des Objekts darstellen, sich leicht miteinander mischen, Formveränderung zwischen Objektformen bewirken und können Operationen der konstruktiven Festkörpergeometrie (CSG) an Objekten ausführen. Implizite Oberflächen können außerdem das Innere gegenüber dem Äußeren von Objekten detektieren. Jedoch gibt es wie von Bloomenthal in Introduction to Implicit Surfaces (Einführung zu impliziten Oberflächen), Morgan Kaufman Publishers, 1997, angegeben, während die „natürliche Umwandlung aus dem parametrischen (zweidimensionalen) Raum einer Oberfläche in den geometrischen (dreidimensionalen) Raum eines Objekts ein fundamentaler Vorteil ist und zum Teil für die Popularität von parametrischen Oberflächen verantwortlich ist, ... gibt es keinen vergleichbaren Mechanismus für implizite Oberflächen". Mit anderen Worten, ist die eine implizite Oberfläche definierende Gleichung gegeben, ist es schwierig, Punkte auf der Oberfläche im Objektraum örtlich festzulegen. Außerdem kann es schwierig sein, implizite Funktionen für einige willkürliche Objekte zu finden.
  • Abgetastete Volumendaten
  • Abgetastete Volumendaten stellen Objekte und Modelle in einer Anordnung von abgetasteten Intensitätswerten auf einem regelmäßigen oder unregelmäßigen Gitter dar. Volumendaten werden normalerweise aus dreidimensionalen Bilddaten oder aus einer numerischen Simulation erzeugt. So wie implizite Oberflächen, stellen abgetastete Volumendaten die Innenräume eines Objekts dar, und die abgetasteten Volumendaten können bei vielen der gleichen Methoden, in der implizite Oberflächen genutzt werden, verwendet werden. Jedoch ist die Genauigkeit der Objektdarstellung durch die Auflösung der Abtastung beschränkt. Abgetastete Daten basieren normalerweise auf der Intensität, so dass ein Objekt durch die abgetasteten Intensitätswerte von dem Hintergrund und von anderen Objekten unterschieden wird. Im Allgemeinen bedeutet dies, dass sich die abgetasteten Intensitäten auf Objektflächen plötzlich verändern, um hohe Raumfrequenzen in die Daten einzubringen. Es werden hohe Abtastraten benötigt, um das Aliasing von Artefakten und Treppeneffekten in wiedergegebenen Bildern zu vermeiden. Weil hohe Abtastraten die Anforderungen an den Speicher und Bildberechnungszeiten erhöhen, muss ein Kompromiss zwischen der Qualität der dargestellten Oberfläche und den Anforderungen an Speicher und die Bildberechnungszeit eingegangen werden.
  • Distanzfelder und Distanz-Bildvorlagen
  • Ein skalares Feld ist eine eindeutige N-dimensionale Funktion, die über einen gegebenen Bereich definiert ist. Ein Distanzfeld ist ein skalares Feld, das den „Abstand" zu einer Oberfläche, δS, eines Objektes S darstellt. Ein „Abstand" ist für jedes im Bereich des Feldes enthaltene p definiert durch D(p, S) = minabs{||p – q||} für alle Punkte q auf der Oberfläche δS, wobei minabs {A} das mit Vorzeichen behaftete Element einer Menge A mit der minimalen Absolutgröße bestimmt und ||–|| eine Distanzmetrik mit den folgenden Eigenschaften darstellt: Die Distanzmetrik besitzt überall auf δS einen Wert von Null, und die Metrik ist mit einem Vorzeichen versehen, um eine Unterscheidung zwischen dem Inneren und dem Äußeren von S zu erlauben. Eine Oberfläche an einer von Null abweichenden Isofläche des Distanzfeldes kann leicht durch Addieren einer skalaren Verschiebung zu dem Distanzfeld spezifiziert werden.
  • Ein abgetastetes Distanzfeld ist eine Menge von Werten, die aus dem Distanzfeld zusammen entweder mit einer impliziten oder expliziten Darstellung des Abtastortes abgetastet werden. Die abgetasteten Werte können Abstandswerte und zugeordnete Distanzberechnungen wie den Gradienten des Distanzfeldes und/oder andere partielle Ableitungen des Distanzfeldes umfassen.
  • Ein Beispiel einer Distanzmetrik ist die euklidische Distanz, bei der das Distanzfeld an einem beliebigen Punkt p die mit Vorzeichen versehene euklidische Distanz von p zu dem am nächsten liegenden Punkt auf der Objektoberfläche wird. Eine Distanz-Bildvorlage wird als das abgetastete euklidische Distanzfeld definiert, wo die Abtastorte auf einem regelmäßigen Gitter liegen. Distanz-Bildvorlagen sind in mehreren Anwendungen verwendet worden.
  • Zum Beispiel haben Lengyel et al. Distanz-Bildvorlagen genutzt zur Planung von Roboterstrecken in „Real-time robot motion planning using rasterizing computer graphics hardware" („Echtzeit-Planung von Roboterbewegung durch Rastern von Computergraphik-Hardware"), SIGGRAPH, Seiten 327–335, 1990. Andere haben Distanz-Bildvorlagen für das Morphing zwischen zwei Objekten eingesetzt. Siehe als Beispiel „Distance field manipulation of surface models" („Distanzfeld-Manipulierung von Oberflächenmodellen"), Payne et al. in IEEE Computer Graphics and Applications, Januar, 1992. Distanz-Bildvorlagen wurden außerdem zum Erzeugen von Verschiebungsflächen genutzt, wie durch Breen et al. in „3D scan conversion of CSG models into distance volumes" („Dreidimensionale Umwandlung von CSG Modellen [generative Modelle] zu Distanzvolumen"), Sitzungsberichte des IEEE-Symposiums zur Volumenvisualisierung, 1998 erörtert. Gibson nutzte in „Using distance maps for smooth surface representation in sampled volumes" („Verwendung von Distanz-Bildvorlagen zur gleichmäßigen Oberflächendarstellung in abgetasteten Volumen"), Sitzungsberichte des IEEE-Symposiums zur Volumenvisualisierung, 1998, Distanz-Bildvorlagen, um Präzisionsflächen zur Volumen-Bildberechnung darzustellen. Vier Verfahren zum Erzeugen von Distanz-Bildvorlagen aus binären abgetasteten Volumendaten werden von Gibson verglichen in „Calculating distance maps from binary segmented data" („Berechnen von Distanz-Bildvorlagen aus binären segmentierten Daten"), MERL Technical Report TR 99-26, April 1999.
  • Weil sich das euklidische Distanzfeld über Oberflächen langsam verändert, leiden Distanz-Bildvorlagen nicht an den Problemen einer Verfälschung durch Unterabtastung von abgetasteten Intensitätsvolumen. Aus relativ groben Distanz-Bildvorlagen können gleichmäßige Oberflächen genau rekonstruiert werden, solange die Oberfläche eine geringe Krümmung aufweist. Weil Distanz-Bildvorlagen regelmäßig abgetastet werden, leiden sie jedoch an einigen der gleichen Probleme wie abgetastete Volumen. Zum Beispiel wird die Größe der Distanz-Bildvorlage durch eine Kombination des Volumens des Objekts und dem feinsten Detail, das dargestellt werden muss, bestimmt. Daher benötigen Volumen, die einige feine Detailflächen aufweisen, große Distanz-Bildvorlagen, auch wenn nur ein kleiner Bruchteil des Volumens von den Oberflächen mit feinem Detail eingenommen wird. Außerdem werden Distanz-Bildvorlagen typischerweise durch Verwendung von Volumen-Bildberechnungs- Methoden wiedergegeben. Volumen-Bildberechnungs-Methoden können sehr langsam sein und viele Sekunden oder Minuten pro Bild für hoch qualitatives Wiedergeben von vernünftig bemessenen Volumen benötigen.
  • Räumliche Datenstrukturen zur hierarchischen Objektdarstellung
  • Es ist eine Anzahl von Verfahren bekannt, um räumliche Daten zur Verwendung von effizienter Speicherung, zur Bildberechnung oder zum Modellieren in der Physik hierarchisch zu organisieren. Beispiele von räumlichen Datenstrukturen sind in zwei Büchern von Samet, „The Design and Analysis of Spatial Data Structures" („Entwurf und Analyse räumlicher Datenstrukturen") und „Application of Spatial Data Structures" („Anwendung von räumlichen Datenstrukturen"), die beide von Addison-Wesley 1989 veröffentlicht wurden, dargestellt.
  • Oktonärbäume zerlegen rekursiv den dreidimensionalen Raum in acht Oktanten gleicher Größe oder Knoten, um Daten hierarchisch zu organisieren. Bereichs-Oktonärbäume teilen Daten in Knoten ein, die gleichmäßigen Bereichen des Volumenbildes entsprechen. Wenn die Bilddaten binär sind, besitzt der sich ergebende Baum zwei Knotentypen: innen liegende Knoten und außen liegende Knoten. Dreifarben-Oktonärbäume klassifizieren Knoten als innen liegende, außen liegende Knoten oder Begrenzungsknoten, wobei sich Begrenzungsknoten mit Objektflächen schneiden. Begrenzungsknoten werden rekursiv zu der höchsten Auflösung der Volumendaten unterteilt. Objektflächen werden wiedergegeben, indem die begrenzenden Leaf Cells gezeichnet werden.
  • Dreifarben-Oktonärbäume wurden auf Volumendaten angewandt, um die Speichermenge, die für innen liegende und außen liegende Bereiche benötigt werden, zu reduzieren und um eine effiziente Struktur zu bewirken, damit Bildberechnung und Kollisionserkennung beschleunigt werden. Jedoch führt das Darstellen von Oberflächen durch Begrenzungsknoten auf einem gleichförmigen Gitter zu Problemen, die den ähnlich sind, die in abgetasteten Volumen herausgefunden wurden. Wiedergegebene Bilder sind dem Aliasing von Artefakten ausgesetzt, es sei denn, Oberflächen werden mit sehr hohen Frequenzen abgetastet. Die Abtastrate, die der Auflösung der Begrenzungsknoten entspricht, wird durch die höchste benötigte Auflösung des wiedergegebenen Bildes anstelle der in der Fläche vorhandenen Detailgröße bestimmt. Folglich kann eine Dreifarben-Oktonärbaum-Darstellung eine erhebliche Speichermenge selbst für verhältnismäßig flache Oberflächen erfordern.
  • Umwandeln von abgetasteten Volumendaten zu einem Polygon-Modell
  • Der Algorithmus „Fortschreitende Würfel" und seine Nachfolger, die zuerst von Lorensen und Cline in „Marching Cubes: a high resolution 3D surface construction algorithm" („Fortschreitende Würfel: Algorithmus zur hoch auflösenden, dreidimensionalen Flächenkonstruktion") in Computer Graphics, 21 (4) Seiten 163–169, 1987 beschrieben wurde, ist das am häufigsten verwendete Verfahren zum Anpassen eines Dreieckmodells an die Isofläche eines regelmäßig abgetasteten Volumens. Für jede die Isofläche enthaltende Zelle bestimmt eine Verweistabelle eine Menge von Dreiecken, die die Isofläche innerhalb der Zelle approximieren. Dieses Verfahren ist wegen seiner Näherungen zum Auflösen von topologischen Mehrdeutigkeiten und zum Garantieren von risslosen Flächen auf die auf einem rechtwinkligen Gitter abgetasteten Volumen beschränkt.
  • Gibson stellte in „Constrained Elastic SurfaceNets: generating smooth surfaces from binary segmented data" (Eingeschränkte elastische Oberflächennetze: Erzeugen von glatten Oberflächen aus binären segmentierten Daten" in den Sitzungsberichten von MICCAI '98, Seiten 888–898, 1998 ein Verfahren zum Umwandeln eines binären abgetasteten Volumens in ein Dreieckmodell vor. Dieses Verfahren passt ein verknüpftes Netz von Knoten über der Oberfläche eines binären Objekts in einem regelmäßig abgetasteten Volumen an. Die Positionen der Knoten werden anschließend eingestellt, um die Form des Oberflächennetzes, das den durch die ursprüngliche Knotenanordnung definierten Einschränkungen unterworfen ist, zu glätten. Dieses Verfahren passt Oberflächen nicht auf Daten der Grauskala an.
  • Umwandeln von Punktflächen in parametrische Flächen
  • Hoppe et al. beschreiben in „Surface reconstruction from unorganized points" („Oberflächenrekonstruktion von nicht organisierten Punkten"), Sitzungsberichte SIGGRAPH '92, Seiten 71–78, 1992 und „Piecewise smooth surface reconstruction" („Stückweise Glattflächen-Rekonstruktion"), Sitzungsberichte SIGGRAPH '94, Seiten 295–302, 1994 ein Verfahren, das eine Menge von nicht organisierten Punkten zu einem Dreieckmodell umwandelt und anschließend eine Unterteilungsfläche an das ausgegebene Dreieckmodell anpasst. Das Verfahren erzeugt aus der Punktwolke eine Distanz-Bildvorlage und nutzt anschließend „Fortschreitende Würfel", um das Dreieckmodell zu erzeugen. Dieses Verfahren ist beschränkt durch die Auflösung der Distanz-Bildvorlage und durch die Genauigkeit der Distanz-Bildvorlage, die aus den nicht organisierten Punkten abgeschätzt werden kann.
  • Umwandeln von impliziten Flächen zu Dreiecken
  • Bloomenthal zeigt in "Polygonization of implicit surfaces" („Polygonisierung von impliziten Flächen"), Technical Report, Xerox Parc, EDL-88-4, Dezember 1988 ein Verfahren zum Umwandeln einer als einzelne implizite Funktion ausgedrückte Oberfläche zu Dreiecken. In einer dazwischen liegenden, temporären Datenstruktur wird die Funktion an allen Scheitelpunkten von Zellen, die sich mit der Fläche schneiden, bewertet. Die Zwischendarstellung wird durch Verbindungspunkte auf den zwölf Zellenkanten, die sich auf der gewünschten, durch die implizite Funktion ausgedrückte Isofläche befinden, polygonisiert. Er (Bloomenthal) verfolgt die Oberfläche durch das Fortschreiten von Zellen, die an einer „anfänglichen Saatzelle, die die Oberfläche schneidet, beginnen und im Vergleich zu dem Oberflächendetail klein ist". Alternativ dazu nähert er sich der Oberfläche an, indem nur „diejenigen Würfel unterteilt werden, die die Fläche schneiden". Bildberechnung und Aufbereiten der temporären Datenstruktur sind nicht beschrieben.
  • Bildberechnung von Distanz-Bildvorlagen
  • Distanz-Bildvorlagen können direkt wiedergegeben werden, ohne sie zu einem parametrischen Modell umzuwandeln wie es von Gibson in „Using distance maps for smooth surface representation in sampled volumes" („Verwendung von Distanz-Bildvorlagen zur glatten Flächendarstellung in abgetasteten Volumen"), Sitzungsberichte des IEEE-Symposiums Volumen-Visualisierung 1998 beschrieben ist. Die verwendete Lösung zur Volumen-Bildberechnung ist für angemessen große Volumen jedoch sehr langsam.
  • Oberflächenaufbereitung für parametrische Oberflächen
  • Das Aufbereiten von parametrischen Oberflächen ist ein herausforderndes Problem. Die am häufigsten verwendeten parametrischen Oberflächen im technischen Entwurf sind ungleichförmige rationale Basiskurven-Flächen (NURB), für die das Oberflächenaufbereitung durch einen Prozess ausgeführt wird, der Beschneiden genannt wird. Jedoch ist, wie von DeRose et al. in „Subdivision surfaces in character animation" („Unterteilungsflächen bei Character-Animation"), Sitzungsberichte SIGGRAPH '98, Seiten 85–94, 1998 angegeben, dieser Prozess „kostspielig und anfällig für numerische Fehler."
  • Es wurde eine Anzahl von Verfahren zum Aufbereiten anderer Typen von parametrischen Flächen dargestellt, die jedoch im Allgemeinen komplex und nicht intuitiv sind, und es schwierig ist, die Qualität der aufbereiteten Fläche zu steuern. Zum Beispiel stellt Naylor in „SCULPT: an interactive solid modeling tool" („SCULPT: Ein interaktives Festkörper-Modellier-Tool"), Sitzungsberichte Graphics Interface '90, Seiten 138–148, 1990 Festkörperobjekte und Tools als einen in binäre Räume aufgeteilten Baum (BSP) dar. Er (Naylor) führt Verbindungs-, Verschiedenheits- und Intersektionsoperationen zwischen einem Tool und einem Objekt durch, indem der Baum innerhalb des BSP-Objektbaums angeordnet und der Objektbaum aufbereitet wird. Er stellt dar, wie schwierig es ist, Modelle von Festkörpern auch von verhältnismäßig einfachen Objekten zu formen. Die Beispiele von gestalteten Objekten, die dargestellt werden, besitzen eine geringe Auflösung und raue Kanten um die gestalteten Bereiche herum.
  • Khodakovsky und Schroder stellten in „Fine level feature editing for subdivision surfaces" („Aufbereiten mit Feingrad-Merkmal für Unterteilungsflächen") in den Sitzungsberichten von Festkörper-Modellieren und Anwendungen, Seiten 203–211, 1999 ein Verfahren vor zum Gestalten von Unterteilungsflächen. Wiederum ist ihre Lösung auch für verhältnismäßig einfache Aufbereitungsoperationen an relativ einfachen Objektmodellen sehr komplex. Es ist schwer sich vorzustellen, diese Methode zum freien Formen zu verwenden.
  • Raviv und Elber haben kürzlich eine Methode zum Darstellen eines Objekts als eine Sammlung von skalaren gleichförmigen Tri-Zufallsgrößen-Basiskurven, die über eine Menge von zufällig orientierten kubischen Flecken definiert sind, beschrieben. Die Basiskurven werden durch eine große Anzahl von Steuerkoeffizienten (typischerweise 215) gesteuert, und die Objektform wird durch Modifizieren dieser Koeffizienten aufbereitet. Die Methode kann kein Aufbereiten mit feinen Details wie Ecken und kleine Löcher ohne übermäßige Speicher- und Berechnungszeiten zur Verfügung stellen. Die im Dokument vorgestellten Ergebnisse zeigen schlechte Oberflächendetails und die berichteten Aufbereitungs- und Wiedergabezeiten sind sehr langsam.
  • Das Formen von abgetasteten Volumendaten
  • Zum Formen von volumetrischen Daten wurden mehrere Systeme entwickelt. Diese Systeme stellen Objekte als Dichte-Bildvorlagen dar, wobei eine Dichte von 1 den Innenräumen eines Objekts und eine Dichte von 0 den Außenseiten eines Objekts entspricht. Diese Systeme umfassen typischerweise einen Begrenzungsbereich um jedes Objekt herum, wo sich die Dichte von 0 bis 1 ändert, um das Verfälschen von Artefakten durch Unterabtastung während einer Bildberechnung zu vermeiden. Alle diese Systeme nutzen zur Volumen-Aufbereitung ein regelmäßig abgetastetes Volumen, was das Addieren oder Subtrahieren von Material aus einem nicht verformbaren Volumenobjekt einschließt. Außerdem erörtert Barentzen die Verwendung eines Dreifarben-Oktonärbaums zum Speichern und Wiedergeben der Dichte-Bildvorlage. Zu Einzelheiten siehe Galyean und Hughes „Sculpting: an interactive volumetric modeling technique" („Formen: ein interaktives volumetrisches Modellierverfahren"), Sitzungsberichte SIGGRAPH '91; Wang und Kaufman „Volume sculpting" („Formen von Volumen"), Sitzungsberichte des 1995er Symposiums zur interaktiven dreidimensionalen Graphik"; Avila und Sobierajski, „A haptic interaction method for volume visualization" („Ein haptisches Interaktionsverfahren zur Volumen-Visualisierung"), IEEE-Sitzungsberichte Volumenvisualisierung '96; und Barentzen „Octree-based volume sculpting" („Volumenformen auf Basis von Oktonärbäumen"), Sitzungsberichte spät bekannt gegebener ganz neuer Themen, IEEE Visualisierung '98.
  • An diesen Systemen gibt es zahlreiche Einschränkungen. Erstens reduziert die Verwendung von gefilterten Begrenzungsbereichen das Verfälschen durch Unterabtastung, führt jedoch zu geglätteten und abgerundeten Ecken und Kanten. Das Glätten ist ein Ergebnis der hinsichtlich der Daten verwendeten Filter und könnte verringert werden, indem anstelle von Tiefpassfiltern Distanz-Bildvorlagen verwendet werden. Zweitens, weil die Objekte in einem regelmäßigen Gitter gespeichert sind, ist die Auflösung der Objektoberfläche durch die Gitterauflösung beschränkt. Daher erfordern Dichte-Bildvorlagen große Volumen, wenn ein kleines Detail vorhanden ist, auch wenn nur ein kleiner Bruchteil des Volumens durch Oberflächen mit kleinem Detail eingenommen wird. Drittens, ist die Bildberechnung von Dichte-Bildvorlagen ist wegen der hohen Volumengröße langsam. Während die von Barentzen vorgeschlagene Dichte-Bildvorlage auf der Basis von Oktonärbäumen diese Probleme reduziert, treffen die Probleme von Dreifarben-Oktonärbäumen zu. Außerdem wird das Aufbereiten durch die vorbestimmte höchste Auflösung des Oktonärbaums beschränkt.
  • Schroeder et al. beschreibt in „Implicit modeling of swept volumes and swept surfaces" („Impliziertes Modellieren von abgetasteten Volumen und abgetasteten Flächen [allgemeine Sweep-Flächen]"), US-Patent Nr. 5 542 036 ein Verfahren zum Berechnen eines Computermodells von abgetasteten Volumen. Eine zusammengesetzte Distanz-Bildvorlage wird berechnet, indem für jeden Abtastpunkt der Mindestabstand zu dem Objekt über die Zeit zugeordnet wird, wenn das Objekt durch Raum abgetastet wird. Eine Fläche des abgetasteten Volumens wird über den Fortschreitende-Würfel-Algorithmus von Lorensen und Cline zu Dreiecken umgewandelt. Die Distanz-Bildvorlage besitzt eine feste Auflösung auf und wird regulär abgetastet, so dass die Probleme von Distanz-Bildvorlagen zutreffen.
  • Colburn stellt in „Method for global blending of computer modeled solid objects using a convolution integral" („Verfahren zum pauschalen Ineinanderübergehen computermodellierter fester Objekte mit einem Faltungsintegral"), in US-Patent Nr. 4 791 583, ein Verfahren zur Erzeugung von Ausrundungen und Rundungen an den Kanten und Ecken von Festkörpermodellen vor, das gewisse Ähnlichkeiten mit Aufbereitungsverfahren für Volumendaten aufweist. In diesem Verfahren werden Festkörperobjekte in einem Oktonärbaum dargestellt und jede Begrenzungszelle wird einem Wert zugeordnet, der durch den prozentualen Anteil ihres durch das Objekt eingenommenen Volumens bestimmt wird. Eine Rundung wird erreicht durch Beurteilen der Faltung von Zellenwerten mit einem sphärischen Gauß-Filter an Punkten entlang von Strahlen, die senkrecht zu der ursprünglichen Objektfläche liegen. Die abgerundete Fläche wird durch den Punkt auf jedem Strahl rekonstruiert, wo die Faltung auf einen konstanten ISO-Wert bewertet ist. Das Verfahren ist speziell auf das Hinzufügen von Rundungen und Ausrundungen an Kanten und Ecken von Festkörper-Modellen beschränkt. Außerdem ist die Auflösung der Objektdarstellung durch die Größe der Begrenzungszellen beschränkt und schränkt folglich die Genauigkeit der rekonstruierten Fläche ein.
  • Abriss von Problemen mit dem Stand der Technik
  • Jede der drei üblichen Oberflächendarstellungen, die oben erörtert wurden, weist Einschränkungen auf. Parametrische Oberflächenmodelle stellen keine Innenräume dar und bewirken kein einfaches Mittel zum Erfassen des Innenraums gegenüber dem Außenseite. Implizite Flächen besitzen keine natürliche Umwandlung vom Ausdruck für die Oberfläche zu Punkten in dem dreidimensionalen Raum und sind folglich schwerer wiederzugeben als parametrische Oberflächen. Abgetastete Volumendaten sind Artefakten ausgesetzt und müssen folglich mit hohen Frequenzen abgetastet werden, um Oberflächen genau darzustellen. Diese hohen Abtastraten erfordern große Speichermengen und lange Bildberechnungszeiten.
  • Distanz-Bildvorlagen können Rückfaltungs-Artefakte in abgetasteten Volumen reduzieren, erfordern jedoch auch einen Kompromiss zwischen Speicheranforderungen und dem feinsten Detail, das dargestellt werden kann, weil Distanz-Bildvorlagen auf einem regelmäßigen Gitter abgetastet werden. Außerdem ist die Volumen-Bildberechnung von Distanz-Bildvorlagen langsam, was die Echtzeit-Interaktivität einschränkt. Der Dreifarben-Oktonärbaum könnte bei Distanz-Bildvorlagen verwendet werden, um die Wiedergabe-Raten zu verbessern und die für Innenräume und Außenseiten notwendige Speichermenge zu reduzieren.
  • Es ist wünschenswert, die Speichermenge weiter zu reduzieren, indem Begrenzungsknoten des jüngsten Objekts zugelassen werden, deren Auflösung auf ein lokales Oberflächendetail zugeschnitten werden könnte. Zum Beispiel wäre es wünschenswert, auf einem großen, relativ gleichförmigen Objekt eine dünne Kurve darstellen zu können, ohne die Oberfläche des gesamten Objekts mit äußerst hoher Auflösung darstellen zu müssen. Folglich besteht Bedarf für eine Darstellung von abgetasteten Distanzfeldern, die detailgerichtet ist, so dass die Auflösung von Begrenzungsknoten des jüngsten Objekts auf ein lokales Detail in der Oberfläche angepasst wird.
  • Wie oben erörtert, sind Volumendarstellungen gut geeignet zum Aufbereiten und Formen von grafischen Objekten. Jedoch sind vorhandene Verfahren für Dichte-Bildvorlagen wegen übermäßiger Glättung von Kanten und Ecken sowie wegen der Anforderungen an die Datenspeicherung und Bildberechnung problematisch. Außerdem ist das Detail, das beim Aufbereiten erreicht werden kann, eingeschränkt, bevor das Aufbereiten beginnt, weil die Auflösung der abgetasteten Daten vorher bestimmt wird.
  • Folglich besteht zum Formen von grafischen Objekten Bedarf an einer detailgerichteten Volumendarstellung. Die Darstellung sollte flexibel sein, so dass sie sich an die Anforderungen einer Auflösung örtlich anpassen würde, wenn eine scharfe Ecke erzeugt oder während des Aufbereitens entfernt werden würde. Sowohl die Objektdarstellung als auch Arbeitsverfahren zur Aufbereitung, Interaktion mit und Wiedergabe von durch die Struktur dargestellten Objekten sind erforderlich. Außerdem werden Verfahren zum Umwandeln der neuen Darstellung in und aus normalen Darstellungen benötigt.
  • ABRISS DER ERFINDUNG
  • Es ist ein Verfahren vorgesehen, das eine detailgerichtete hierarchische Darstellung eines von einem Begrenzungskasten umschlossenen Distanzfeldes erzeugt. Das Verfahren beginnt durch Aufteilen des Begrenzungskastens, der das Distanzfeld umschließt in Zellen. Jede Zelle besitzt eine Größe, die einem Detail des Distanzfeldes entspricht, und einer Stelle relativ zu dem Begrenzungskasten.
  • Als Nächstes wird das Distanzfeld abgetastet, um eine Menge von Werten für jede Zelle zu erhalten. Ein Verfahren zum Rekonstruieren des Teils des Distanzfeldes, das von der Zelle umschlossen ist, wird für jede Zelle spezifiziert. Die Stelle und Größe, die Menge von Werten und das Verfahren zum Rekonstruieren für jede Zelle werden in einem Speicher gespeichert, um eine Rekonstruktion des Distanzfeldes zu ermöglichen, indem die Rekonstruktionsmethode der Zellen auf die Werte angewandt wirde.
  • Die Aufteilung kann in einer Weise von oben nach unten oder von unten nach oben durchgeführt werden. Der Begrenzungskasten wird in der Weise von oben nach unten aufgeteilt, so dass jede Aufteilung Zellen ergibt, die kleiner bemessen sind, bis ein Teil des von jeder Zelle dargestellten Distanzfeldes durch das Verfahren zum Rekonstruieren bis zu einem vorgegebenen Oberflächendarstellungsfehler im Wesentlichen rekonstruiert werden kann.
  • Der Begrenzungskasten wird in der Weise von unten nach oben zuerst in gleich große Zellen aufgeteilt, so dass ein Teil des von jeder Zelle dargestellten Distanzfeldes durch das Verfahren zum Rekonstruieren bis zu einem vorgegebenen Oberflächendarstellungsfehler im Wesentlichen rekonstruiert werden kann. Anschließend werden Gruppen von benachbarten Zellen zu größeren Zellen kombiniert, solange der Teil des von der größeren Zelle umschlossenen Distanzfeldes im Wesentlichen bis zu dem Oberflächendarstellungsfehler rekonstruiert werden kann.
  • In einer Ausführung wird durch die Erfindung eine Datenstruktur-Darstellung des abgetasteten Distanzfeldes bereitgestellt, die hinsichtlich der Speicherverwendung effizient ist, während sie es zulässt, dass das Distanzfeld mit einer beliebigen Genauigkeit dargestellt wird. Spezieller wird das Distanzfeld im hierarchischen Distanzfeld mit einer Auflösung abgetastet, die hoch genug ist, so dass es auf eine vorgegebene Genauigkeit rekonstruiert werden kann, wobei die Abtastung detailgerichtet ist, so dass höhere Abtastraten in den Bereichen genutzt werden, wo das Distanzfeld mehr Details aufweist, und niedrigere Abtastraten in den Bereichen genutzt werden, wo sich das Distanzfeld gleichmäßig ändert.
  • KURZBESCHREIBUNG DER ZEICHNUNGEN
  • 1 ist ein Begrenzungskasten, der ein Objekt umschließt, das durch ein detailgerichtetes, hierarchisches Distanzfeld (HDF) gemäß der Erfindung darzustellen ist;
  • 2 ist ein Begrenzungskasten, der aufgeteilte Zellen des HDF gemäß der Erfindung umschließt;
  • 3 ist ein Baumdiagramm eines HDF nach einer bevorzugten Ausführung;
  • 4 ist ein Blockdiagramm eines Dateianfangssatzes und von Zellendaten des HDF;
  • 5 ist ein Blockdiagramm des HDF-Dateianfangssatzes;
  • 6 ist ein Blockdiagramm der Zellendaten;
  • 7 ist ein Blockdiagramm, das eine HDF-Zelle und Zellendaten verknüpft;
  • 8 ist das Blockdiagramm eines das HDF speichernden Speichers;
  • 9 ist das Blockdiagramm eines das HDF als eine verknüpfte Liste speichernden Speichers;
  • 10 ist ein Blockdiagramm von grundlegenden HDF-Operationen;
  • 11 ist ein Ablaufdiagramm der Methode von oben nach unten zur Erzeugung des HDF;
  • 12 ist ein Ablaufdiagramm der Methode von unten nach oben zum Erzeugen des HDF;
  • 13 ist eine grafische Darstellung eines voll besetzten HDF;
  • 14 ist eine grafische Darstellung nach dem Kombinieren;
  • 15a bis 15c sind Blockdiagramme von nicht kombinierten und kombinierten Oberflächenzellen;
  • 16 ist das Ablaufdiagramm eines Verfahrens zum Umwandeln des HDF, indem geimpfte Scheitelpunkte verwendet werden;
  • 17 ist ein Ablaufdiagramm eines Verfahrens zu Umwandeln des HDF, indem parametrische Flecken verwendet werden;
  • 18 ist das Ablaufdiagramm eines Verfahrens zum Umwandeln des HDF, indem Oberflächennetze verwendet werden;
  • 19 ist das Ablaufdiagramm eines Verfahrens zur Bildberechnung des HDF, indem analytische Strahlverfolgung verwendet wird;
  • 20 ist das Ablaufdiagramm eines Verfahrens zur Bildberechnung des HDF, indem Abtast-Strahlverfolgung verwendet wird;
  • 21 ist das Ablaufdiagramm eines Verfahrens zur Bildberechnung des HDF, indem angenäherte Geometrie-Darstellungselemente verwendet werden;
  • 22 ist das Ablaufdiagramm eines Verfahrens zum Aufbereiten des HDF;
  • 23 ist das Ablaufdiagramm eines Verfahrens zum Anwenden eines Aufbereitungs-Tools für das HDF;
  • 24 ist das Ablaufdiagramm eines Verfahrens zum Formen eines HDF;
  • 25 ist ein Diagramm von benachbarten Zellen mit unterschiedlicher Auflösung;
  • 26 ist das Ablaufdiagramm eines Verfahrens zum Umwandeln des HDF, indem Verweistabellen für Darstellungselemente verwendet werden;
  • 27 ist das Diagramm eines Begrenzungskastens, der aufgeteilte Zellen eines eine Farbskala darstellenden HDF umschließt.
  • AUSFÜHRLICHE BESCHREIBUNG DER BEVORZUGTEN AUSFÜHRUNGEN
  • Einleitung hierarchische Distanzfelder
  • Die vorliegende Erfindung stellt detailgerichtete hierarchische Distanzfelder (HDF) bereit. Im Folgenden werden zuerst die Datenstrukturen beschrieben, die verwendet werden, um diese Distanzfelder in einem Speicher zu speichern. Dann werden grundlegende Operationen dargestellt, die auf die Datenstrukturen angewandt werden können, denen sich Einzelheiten hinsichtlich der Methoden zum Erzeugen, Umwandeln, Wiedergeben und Aufbereiten der Datenstrukturen anschließen. Schließlich werden spezifische Anwendungen zum Formen und Farb-Management mit den detailgerichteten hierarchischen Distanzfeldern gegeben.
  • 1 zeigt einen Begrenzungskasten 100, der einen Teil eines einem Objekt 101 zugeordneten Distanzfeldes umschließt. In dem zweidimensionalen Raum ist der Begrenzungskasten 100 in einem gewissen Weltkoordinatenraum, der durch einen Ursprung 103 und Achsen 104 und 105 definiert ist, angeordnet. Der von dem Begrenzungskasten umschlossene Raum ist hinsichtlich der Koordinaten des Weltkoordinatenraumes definiert. Größe und Stelle des Begrenzungskastens wird durch seine Scheitelpunkte 109 spezifiziert.
  • In diesem Beispiel ist der Raum zweidimensional und das Objekt ein grafisches Element (Dreieck). Es soll verständlich werden, dass die Erfindung auf Räume, die eine größere Abmessung aufweisen, und auf andere Typen von Objekten oder Modellen, zum Beispiel Farbmodelle, erweitert werden kann. Die Objektoberfläche ist so definiert, dass sie die Begrenzung des Objekts darstellt. Im zweidimensionalen Raum ist die Begrenzung die außen liegende Kante des Objekts. Im drei- und mehrdimensionalen Raum ist die Begrenzung die dreidimensionale oder mehrdimensionale Oberfläche des Objekts.
  • Das mit Vorzeichen versehene Distanzfeld, das dem Objekt 101 zugeordnet ist, stellt den Abstand 106 von einem beliebigen Punkt im Raum 107 zu den am nächsten liegenden Punkt 108 auf der Oberfläche des Objekts 101 dar. Das Vorzeichen des Distanzfeldes unterscheidet zwischen Punkten, die innerhalb und außerhalb der Objektoberfläche liegen. Zum Beispiel sind positive Abstände Punkten innerhalb der Oberfläche zugeordnet, negative Abstände sind Punkten außerhalb der Oberfläche zugeordnet, und ein Abstand von 0 ist Punkten zugeordnet, die auf der Oberfläche liegen.
  • Um das Distanzfeld auf einem Computer darzustellen, kann das Distanzfeld an repräsentativen Stellen innerhalb des Begrenzungskastens 100 abgetastet werden. Ein Lösungsweg ist das Aufteilen des vom Distanzfeld umschlossenen Begrenzungskastens in Zellen und Abtasten des Distanzfeldes an Scheitelpunkten der Zellen. Wenn der Begrenzungskasten in eine regelmäßige Anordnung von geradlinigen Zellen aufgeteilt ist, dann stellen die gespeicherten Abstandswerte eine Distanz-Bildvorlagen dar. Es soll jedoch verständlich werden, dass die Zellen von beliebiger Form einschließlich rechteckiger Festkörper, Kugeln oder beliebige Polyeder sein können, und dass die Zellen nicht zwangsläufig den Begrenzungskasten vollständig besetzen müssen.
  • Die Absicht ist es, eine Darstellung von Datenstrukturen für das abgetastete Distanzfeld zur Verfügung zu stellen, die hinsichtlich einer Speichernutzung effizient ist, während sie es erlaubt, das Distanzfeld mit einer beliebigen Genauigkeit darzustellen. Spezieller wird das Distanzfeld in dem hier beschriebenen hierarchischen Distanzfeld (HDF) mit einer Auflösung abgetastet, die hoch genug ist, so dass es bis auf eine vorgegebene Genauigkeit rekonstruiert werden kann, wobei die Abtastung detailgerichtet ist, so dass höhere Abtastraten in den Bereichen verwendet werden, in denen das Distanzfeld ausführlicher ist, und geringere Abtastrate in den Bereichen verwendet werden, wo sich das Distanzfeld gleichmäßig ändert.
  • Folglich wurde, wie in 2 gezeigt, der Begrenzungskasten 100, der einen Teil des das Objekt 101 darstellenden Distanzfeldes umschließt, in Zellen 201 bis 202 aufgeteilt, die verschiedene Größen aufweisen und Stellen relativ zu dem Begrenzungskasten. Große Zellen 201 werden verwendet, wo sich das Detail des Distanzfeldes relativ langsam verändert, und kleine Zellen 202 werden in der Nähe von Objektkanten verwendet, wo das Distanzfeld ausführlicher ist und eine hohe Auflösung gewünscht wird.
  • Die Zellen, die das Distanzfeld aufteilen, können zur effizienteren Speicherspeicherung und Zugriff in einer räumlichen Datenstruktur organisiert werden. Zum Beispiel können, wie in 3 dargestellt, die Zellen im Speicher als ein Baum 300 angeordnet werden, wie zum Beispiel ein Vierfachbaum für ein zweidimensionales Distanzfeld, oder ein Oktonärbaum für ein dreidimensionales Distanzfeld. Wie es nachstehend beschrieben wird, können auch andere Datenstrukturen wie verknüpfte Listen verwendet werden, um die Zellen des HDF zu speichern.
  • Der Baum 300 umfasst eine einzelne Ursprungszelle 301 hohen Niveaus, die den Begrenzungskasten (Zelle) 100 von 1 darstellt. Alle Zellen mit Ausnahme des Wurzelknotens besitzen eine Mutterzelle, und jede Zelle ist entweder eine Leaf Cell (z. B. 303) oder sie weist vier (oder acht) Kinderzellen auf (z. B. besitzt die Zelle 302 eine Mutterzelle 301 und Kindzellen 304). Wie angegeben ist, kann eine spezielle Zelle als eine Außenseite-Zelle 311, eine Innenraum-Zelle 312 oder eine Oberflächenzelle 313 bezeichnet werden. In der Abbildung geben ungefüllte Zellen Außenseiten-Zellen, voll ausgefüllte Zellen geben Innenraum-Zellen und gestreifte Zellen geben Oberflächenzellen an. Die Außenseiten-Zellen stellen Zellen dar, die völlig außerhalb des Objekts 101 von 1 liegen. Innenraum-Zellen stellen Zellen dar, wie völlig innerhalb des Objekts liegen. Oberflächenzellen 313 enthalten einen Teil der Objektoberfläche, wo das Distanzfeld einen Wert von 0 umfasst.
  • Gemäß der Erfindung verbindet sich mit jeder Zelle ein Verfahren zum Rekonstruieren des Teils des Distanzfeldes innerhalb der Zelle aus einer kleinen Anzahl von der Zelle zugeordneten abgetasteten Abstandswerten. Das rekonstruierte Distanzfeld kann verwendet werden, um die Objektoberfläche, Abstände zu der Objektoberfläche, die Richtung zu der Objektoberfläche und andere Eigenschaften, die auf das Objekt bezogen sind, das dem Distanzfeld zugeordnet ist, zu rekonstruieren.
  • Die Darstellung von 2 und 3 weicht in zwei wichtigen Bereichen vom Stand der Technik ab.
  • Erstens speichern räumliche Datenstrukturen im Stand der Technik tatsächlich keine Distanzfeld-Werte. Stattdessen zeigen bekannte Dreifarben-Bäume nur an, welche Knoten die Oberflächenknoten sind und welche Knoten die Innenraum- oder Außenseiten-Knoten sind. Oberflächen werden wiedergegeben, indem einfach die Pixel gezeichnet werden, die Oberflächenknoten entsprechen. Infolgedessen ist die Auflösung des Bildes nur so gut wie die Auflösung des Gitters, von dem der Baum abgeleitet wurde. Mit hierarchischen Distanzfeldern gemäß der Erfindung kann das ununterbrochene Distanzfeld innerhalb jeder Zelle aus den Abstandswerten der Zelle und einem Rekonstruktionsmethode rekonstruiert werden. Zur Bildberechnung oder zum Manipulieren von Oberflächen bewirkt dies eine genauere Rekonstruktion von Oberflächen, auch wenn die Auflösung der Oberflächenzelle relativ gering ist.
  • Zweitens ist die Größe von jeder Zelle detailgerichtet. Im Gegensatz zu bekannten Distanz-Bildvorlagen, bei denen alle Zellen die gleiche Auflösung besitzen, oder bekannten Dreifarben-Bäumen, bei denen Oberflächeknoten alle auf dem höchsten Auflösungsniveau des Baumes liegen, wird die Größe einer Oberflächenzelle in hierarchischen Distanzfeldern durch das Detail in dem von der Zelle umschlossenen Distanzfeld bestimmt. Zellen mit geringer Auflösung (große) können verwendet werden, um veränderliche Felder in der Nähe von gleichmäßigen Oberflächen gleichmäßig darzustellen, während Zellen mit beliebig hoher Auflösung (kleine) verwendet werden können, um das Distanzfeld in der Nähe von Oberflächendetails wie zum Beispiel Ecken, Oberflächen mit hoher Krümmung oder Teile des Distanzfeldes mit Komponenten hoher Raumfrequenz. Dieses Merkmal der Erfindung reduziert die Anforderungen an die Speicherkapazität eines Speichers und den Zugriff gegenüber herkömmlichen Distanz-Bildvorlagen erheblich.
  • Datenstrukturen von hierarchischen Distanzfeldern
  • 4 zeigt ein hierarchisches Distanzfeld (HDF) 400. Das HDF 400 umfasst einen HDF-Datenanfangssatz 500 und Zellendaten 600. Wie oben angegeben ist, ist eine Zelle ein abgegrenzter verbundener Bereich der Sphäre des HDF. Als Beispiel kann ein regelmäßiges orthogonales Gitter die Sphäre des HDF in eine Menge von rechteckigen Zellen aufteilen, wobei jede Zelle eine Größe aufweist, die einem Detail des Distanzfeldes und einer Stelle relativ zu dem Begrenzungskasten entspricht.
  • HDF-Datenanfangssatz
  • Wie in 5 dargestellt ist, kann der HDF-Datenanfangssatz 500 eine Begrenzungskasten-Spezifikation 510, die den Begrenzungskasten 100 des HDF definiert, eine Abstandsmetrik-Kennung 520, eine Rekonstruktionsmethode-Kennung 530, eine Zellenform-Kennung 540, Informationen 550 der räumlichen Organisation und eine Hinweisadresse 560 für die Zellendaten 600 enthalten.
  • Die durch die Abstandsmetrik-Kennung 520 spezifizierte Abstandsmetrik kann eine von den folgenden 521 sein: euklidischer Abstand, quadrierter euklidischer Abstand, Manhattan-Abstand, Schachbrett-Abstand oder eine beliebige einwertige N-dimensionale Funktion mit den für Distanzfelder oben erörterten Eigenschaften.
  • Das durch die Rekonstruktionsmethode-Kennung 530 spezifizierte Rekonstruktionsmethode kann eines der folgenden 531 sein: ein lineares, bilineares, trilineares, quadratisches, biquadratisches, triquadratisches, kubisches, bikubisches, trikubisches oder ein beliebiges Rekonstruktionsfilter wie zum Beispiel eine gewichtete Summe von Abtastwerten aus dem abgetasteten Distanzfeld.
  • Die Zellenform, die durch die Zellenform-Kennung 540 spezifiziert wird, kann eine der folgenden 541 sein: ein N-dimensionaler rechteckiger Festkörper, ein Tetraeder, ein Hexaeder, ein N-dimensionales Polyeder oder eine Kugel, um nur einige wenige mögliche Formen zu nennen.
  • Die Informationen 550 der räumlichen Organisation bestimmen die räumliche Aufteilung, die verwendet wird um das HDF darzustellen, die hierarchische Struktur, die verwendet wird, um diese Aufteilung darzustellen, und die Stelle des HDF. Beispiele 551 von räumlichen Organisationen umfassen einen dünnen Vierfachbaum mit festem Gitter oder Oktonärbaum, einen dünnen Vierfachbaum mit einer Wavelet-Struktur und festem Gitter oder Oktonärbaum, eine verknüpfte Zellenliste oder eine sequenzielle Zellenliste.
  • Die Hinweisadresse auf die HDF-Zellendaten 560 kann eine Hinweisadresse zu der Ursprungszelle 301 eines dünnen Baums 300 mit festem Gitter sein. Die bevorzugte Form der verschiedenen Felder ist mit einem Sternchen „*" gekennzeichnet.
  • Baumzellen-Daten
  • Wie in 6 gezeigt ist, können Zellendaten 600 abgetastete Werte 601 bis 606 für einer Zelle zugeordnete M Abtastpunkte P1, P2 ... PM umfassen. Die Abtastwerte für jeden Abtastpunkt können Attribute wie zum Beispiel einen Distanzfeld-Vektor 610, Erscheinungsparameter 620 und Berechnungsparameter 630 enthalten. Außerdem können die Zellendaten 600 Hinweisadressen 640 des Baumes 300 wie zum Beispiel Hinweisadressen auf die Kinderzellen der Zelle und eine Hinweisadresse auf die Mutterzelle der Zelle enthalten. Andere Zellendaten umfassen eine Zellentyp-Kennung 650 und eine Hinweisadresse 660 auf anwendungsspezifische Zellendaten 661 wie zum Beispiel das Niveau der Zelle in der Hierarchie oder der Oberflächendarstellungsfehler der Zelle.
  • Der Distanzfeld-Vektor 610 kann den Wert des Distanzfeldes, einen Gradienten des Distanzfeldes und weitere partielle Ableitungen des Distanzfeldes 611 enthalten. Die Erscheinungs-Parameter 620 können Werte 621 wie Farbe, Glanz, Transparenz oder Texturkoordinaten an einem vorgegebenen Abtastpunkt umfassen. Berechnungsparameter 630 können Werte 631 enthalten, die beim physikalischen Modellieren verwendet werden wie zum Beispiel physikalische Eigenschaften wie Masse, Position, Ausrichtung, Winkelgeschwindigkeit, Masse, Elastizität oder Young'scher Modul. Physikalisches Modellieren kann Festkörpermechanik und dynamische Verformung umfassen.
  • Der durch die Zellentyp-Kennung 650 spezifizierte Zellentyp kann einer der folgenden 651 sein: Innenraum (eine Zelle, die vollkommen innerhalb der Oberfläche des Objekts 101 liegt), Außenseite (eine Zelle gegen völlig außerhalb liegt), und eine Oberfläche (eine Zelle, die durch die Oberfläche des Objekts 101 geschnitten wird).
  • Wavelet-Baum
  • Ein Wavelet-Baum mit dünnem festem Gitter kann den die Stelle des HDF definierenden Begrenzungskasten 100, eine Hinweisadresse zu dem Wurzelknoten und eine Wavelet-Basis-Kennung enthalten. Die durch die Wavelet-Basis-Kennung spezifizierte Wavelet-Basis kann eine der folgenden sein: die Haar-Basis, die Daubechies-Basis oder eine beliebige andere willkürliche Wavelet-Basis-Funktion. Die Zellendaten für diesen Baumtyp sind die gleichen wie in 6 dargestellt, mit der Ausnahme, dass der Distanzfeld-Vektor 610 als Wavelet-Abstandsdetail-Koeffizienten ausgedrückt ist.
  • Verknüpfte Liste
  • Alternativ dazu kann die HDF-Datenstruktur als eine verknüpfte Liste organisiert werden. In diesem Fall umfasst die Struktur einen die Stelle des HDF definierenden Begrenzungskasten 100 und eine Hinweisadresse an die verknüpfte Liste. Außerdem können in dieser Darstellung die Hinweisadressen 640 der Zellendaten 600 Hinweisadressen auf die nächste Zelle in der Liste und die vorhergehende Zelle in der Liste enthalten.
  • Datenstruktur-Erweiterungen
  • Als eine Erweiterung für die bevorzugte Datenstruktur kann ein HDF die Rekonstruktionsmethoden-Kennung 530 enthalten. Die Kennung kann auf einer Basis je Zelle spezifiziert werden. Wenn eine Zelle außerdem eine Rekonstruktionsmethoden-Kennung spezifiziert, dann wird die Methode der Zelle die in dem HDF-Datenanfangssatz 500 spezifizierte Methode aufheben. Diese Rekonstruktionsmethoden-Kennung je Zelle kann eine Rekonstruktionsmethode spezifizieren, die speziell auf das Oberflächendetail, das durch das Distanzfeld innerhalb dieser Zelle dargestellt ist, angewandt wird. Zum Beispiel können die in der Nähe flacher Oberflächen genutzten Rekonstruktionsmethoden anders sein als Methoden, die nahe einer stark gebogenen Fläche oder einer Ecke genutzt werden. Rekonstruktionsmethoden können auf Oberflächenmerkmale innerhalb der Zelle wie scharfe Ecken, abgerundete Ecken oder Zacken spezialisiert werden, oder um ein besonderes Aussehen wie zum Beispiel Unebenheiten, Kratzer, Dellen oder Grate auf der Oberfläche zu erzeugen.
  • Speicher-Layout
  • 7 zeigt die Beziehung zwischen der räumlichen Aufteilung des HDF innerhalb des Begrenzungskastens 100 und einer in einem Sprecher gespeicherten Datenstruktur 710. Das HDF enthält eine Zelle 700 mit Scheitelpunkten a, b, c und d. Außerdem ist die Zelle in detailgerichtete Kinderzellen e, f, g und h aufgeteilt. Die Datenstruktur 710 umfasst eine Zellentyp-Kennung 711, abgetastete Abstandswerte 712 an Abtastpunkten a, b, c und d sowie Kennungen 713 für Kinderzellen e, f, g und h.
  • 8 zeigt ein mögliches Speicher-Layout 800 für ein HDF in Form eines Vierfachbaums mit der Ursprungszelle 301 und ihren Zellendaten 600 sowie Kindzellen mit ihren Zellendaten. Die mit 801 gekennzeichneten Kästchen stellen Speicheradressen dar. In 8 zeigen die voll gefüllten Zellen 802 in den Sub-Bäumen 803 die Beziehung zwischen der Datenstruktur des Speichers und dem HDF von 3.
  • 9 zeigt ein mögliches Speicher-Layout 900 für ein HDF in Form 910 einer verknüpften Liste. Die mit 901 kennzeichneten Kästchen stellen Speicheradressen dar.
  • Grundlegende Methoden
  • Dieser Abschnitt und die 10 beschreiben grundlegende Methoden, die an den hierarchischen Distanzfeldern gemäß der Erfindung durchgeführt werden können. Es wird die folgende Bezeichnungsweise verwendet. Für jede Methode ist das halbfette Wort der Name der Methode 1010, dem sich Argumente in Klammern des Verfahrens 1020 anschließen, denen der Datentyp 1030, der durch die Methode zurückgeführt wird, folgt. Eine mit „*" bezeichnete Methode verweist auf eine Hinweisadresse zu der benannten Variablen. Datentypen enthalten folgendes:
    Punkt – eine Stelle im Weltkoordinatensystem (z. B. x, y, z)
    Vektor – ein (z. B. dreidimensionaler) Vektor;
    Boolesch – ein RICHTIG- oder FALSCH-Wert
    HDF – die hierarchische Distanzfeld-Datenstruktur; und
    Zelle – eine Zelle der HDF-Datenstruktur wie oben definiert
    Fließ – ein Fließkommawert
    ganze Zahl – ein ganzzahliger Wert
    Bit-Vektor – ein Vektor von Einschalt-/Ausschalt-Zustandsvariablen mit Einzelbit
    Matrix – eine Matrix (z. B. 4 * 4) von Fließkommawerten
    ObjDistParamFunction
    eine Funktion zum Berechnen des nächsten Abstands zu einer Objektoberfläche an einem Punkt und der Erscheinung sowie Berechnungsparameter für dieses Objekt
  • Verfahren zum Abfragen und örtlichen Festlegen eines Punktes in dem HDF (1001)
  • PointInHDF (Zeigen in HDF)
  • Rücksetzen der Booleschen Funktion RICHTIG, wenn der Punkt p der Begrenzungskasten des HDF ist, und sonst FALSCH.
  • PointInHDFCell (Zeigen in HDF-Zelle)
  • Queren des HDF-Baums von der Ursprungszelle zu der Leaf Cell, die p enthält, indem entweder der implizite räumliche Umfang der Zelle aus der HDF-Hierarchie oder der berechnete räumliche Umfang aus der HDF-Hierarchie und die Daten der Zelle verwendet werden, sowie Rücksetzen der p enthaltenden HDF-Leaf Cell.
  • PointInHDFCellAtSomeFixedLevel (Zeigen in HDF-Zelle bei beliebigem festen Niveau)
  • Rücksetzen der p enthaltenden HDF-Zelle, die sich auf dem vorbestimmten Niveau oder einem niedrigeren Auflösungsniveau befindet, wenn die Zelle keine Kinder besitzt. Queren des Baums von der Ursprungszelle in Richtung der p enthaltenden Leaf Cell, Prüfen des Zellenniveaus gegenüber dem vorgegebenen Niveau. Rücksetzen der ersten begegneten Leaf Cell und der Zelle auf dem vorgegebenen Niveau.
  • PointInHDFCellAtFixedErrorTolerance (Zeigen in HDF-Zelle bei fester Fehlertoleranz)
  • Rücksetzen der p enthaltenden HDF-Zelle, deren Oberflächendarstellungsfehler 661 geringer ist als die gegebene Fehlertoleranz. Queren des Baums von der Ursprungszelle zu der p enthaltenden Leaf Cell, Prüfen des Oberflächendarstellungsfehlers der Zellen gegenüber der gegebenen Fehlertoleranz. Rücksetzen der ersten Zelle, deren Oberflächendarstellungsfehler kleiner ist als die vorgegebene Fehlertoleranz.
  • Verfahren zum Ändern des Inhalts einer HDF-Zelle
  • Um den Inhalt einer Zelle in dem HDF zu verändern, kann sich einer beliebigen der oben erwähnten Abfragemethoden, die die Zelle bestimmen, die einen Punkt p enthält, das direkte Zuweisen eines neuen Inhalts einem beliebigen der Elemente der in 5 und 6 gezeigten Zelle anschließen.
  • Verfahren zum Rekonstruieren und Interpolieren von Abständen und Parametern (1102)
  • DistanceToSurfaceInSurfaceCell (Abstand zu Oberfläche in Oberflächenzelle)
  • Berechnet den Distanzfeldwert an einem Punkt p innerhalb der vorgegebenen Oberflächenzelle mit der Rekonstruktionsmethode des HDF oder der Zelle.
  • DistanceToSurfaceInNonSurfaceCell (Abstand zu Oberfläche in Nicht-Oberflächenzelle)
  • Prüfen des Oberflächendarstellungsfehlers in einer Nicht-Oberflächenzelle gegenüber der vorgegebenen Fehlertoleranz. Wenn der Oberflächendarstellungsfehler kleiner ist als die vorgegebene Fehlertoleranz, dann Abstand-zu-Oberfläche-in-Oberflächenzelle verwenden, um den Distanzfeldwert zu berechnen. Wenn der Oberflächendarstellungsfehler größer ist als die vorgegebene Fehlertoleranz, dann den am nächsten liegenden Oberflächenpunkt finden, indem die Methode LocateClosestPointOnSurface (Methode zum Lokalisieren des am nächsten liegenden Punktes auf Oberfläche; nachstehend) verwendet wird, und den Abstand von p zu diesem Punkt berechnen.
  • PointInsideObject (Punkt im Inneren des Objekts)
  • Wenn die Zelle eine Oberflächenzelle ist, dann den Abstandswert bei p mit DistanceToSurfaceInSurfaceCell (Abstand-zu-Oberfläche-in-Oberflächenzelle) berechnen. Das Vorzeichen des berechneten Abstandes als Innenraum-/Außenseite-Test verwenden. Wenn die Zelle eine Nicht-Oberflächenzelle ist, den Zellentyp (Innenraum oder Außenseite) verwenden, um zu bestimmen, ob sich p innerhalb oder außerhalb der Oberfläche befindet. RICHTIG zurücksetzen, wenn sich p innerhalb des Objekts befindet, sonst FALSCH.
  • ReconstructAppearanceParams (Erscheinungsparameter rekonstruieren)
  • Rekonstruiert die Erscheinungsparameter bei p innerhalb der gegebenen Zelle mit der Rekonstruktionsmethode des HDF oder der Zelle.
  • ReconstructComputationalParams (Berechnungsparameter rekonstruieren)
  • Rekonstruiert die Berechnungsparameter bei p innerhalb der gegebenen Zelle mit der Rekonstruktionsmethode des HDF oder der Zelle.
  • ComputeHDFGradient (HDF-Gradient berechnen)
  • Berechnet den Gradienten des Distanzfeldes bei p mit der Rekonstruktionsmethode des HDF oder der Zelle. Zum Beispiel kann der Gradient (dx, dy, dz) an einem Punkt (x, y, z) innerhalb einer rechteckigen Festkörperzelle mit einem durch die Ecken-Scheitelpunkte (0, 0, 0) und (1, 1, 1) definierten Begrenzungskasten durch Verwendung einer trilinearen Rekonstruktionsmethode und eines Gradientenfilters mit mittleren Differenzen aus den abgetasteten Abstandswerten von den 8 Ecken-Scheitelpunkten berechnet werden als: dx = (d100 – d000)(l – y)(l – z) ÷ (d110 – d010)y(l – z) ÷ (d111 – d011)yz ÷ (d101 – d001)(l – y)z dy = (d010 – d000)(l – x)(l – z) ÷ (d110 – d100)x(l – z) ÷ (d111 – d101)xz ÷ (d011 – d001)(l – x)z dz = (d001 – d000)(l – x)(l – y) ÷ (d101 – d100)x(l – y) ÷ (d111 – d110)xy ÷ (d011 – d010)(l – x)ywobei dijk der abgetastete Abstand am Scheitelpunkt (i, j, k) ist.
  • ComputeHDFPartialDerivatives (Partielle HDF-Ableitungen berechnen)
  • Berechnet die partiellen Ableitungen des durch einen „whichPartials"-Bit-Vektor spezifizierten Distanzfeldes mit der Rekonstruktionsmethode des HDF oder der Zelle. Alle möglichen oder erwünschten partiellen Ableitungen und/oder gemischten partiellen Ableitungsberechnungen werden aufgezählt, so dass jedes Bit in dem whichPartials-Bit-Vektor festgelegt, ob die zugeordnete partielle Ableitung zu berechnen ist oder nicht.
  • Methode zum Finden des am nächsten liegenden Punktes auf der Objektoberfläche (1003)
  • LocateClosestPointOnSurface (Am nächsten liegenden Punkt auf der Oberfläche örtlich festlegen)
  • Diese Methode nutzt den Abstandswert und Gradienten des Distanzfeldes, um den am nächsten liegenden Oberflächenpunkt zu suchen. Die Methode setzt die Stelle des am nächsten liegenden Oberflächenpunktes zurück. In einer Lösung wird ein Strahl von dem Punkt p in Richtung des Gradienten angeordnet, um die Stelle zu bestimmen, wo sich der Strahl mit der Oberfläche kreuzt. Diese Lösung funktioniert gut, wenn der Oberflächendarstellungsfehler in der p enthaltenden Zelle ausreichend klein ist. Wenn diese Lösung nicht Positionsfehlertoleranz epsPositionError nicht erfüllt, nutzt ein alternativer Lösungsweg den gegebenen Oberflächen-Strahlenkreuzungspunkt als Ausgangspunkt in einem eingeschränkten Optimierungsalgorithmus. Diese Optimierungsmethode minimiert den Abstand zwischen p und einer objektiven Position q, wobei q so eingeschränkt ist, das es auf der Oberfläche liegt. Um die Notwendigkeit einer eingeschränkten Optimierungslösung auszuschließen, wird das HDF erzeugt, so dass der Oberflächendarstellungsfehler für alle Zellen, die nur durch diese Methode abgefragt werden könnten, z. B. die Außenseitenzelle und die Oberflächenzelle, klein genug ist.
  • Die Verfahren zum Aufteilen, Kombinieren und Verkürzen von HDF (1004)
  • PointBasedPartitionPredicate (Punktbasiertes Aufteilungsprädikat)
  • Berechnen einer Menge {D1} von Abstands- und Parameterwerten an Testpunkten mit der ObjDistAndParamFunction, die als Eingabe gegeben ist. Berechnen der Menge {D2} von Abstands- und Parameterwerten an den Testpunkten mit der Rekonstruktionsmethode des HDF oder der der Zelle und den Daten der Zelle. Falls Differenzen zwischen den Mengen {D1} und {D2} alle kleiner als die Fehlertoleranzen epsDist und epsParams sind, dann RICHTIG zurücksetzen, das anzeigt, dass die Zelle nicht aufgeteilt zu werden braucht.
  • CellBasedPartitionPredicate (Zellenbasiertes Aufteilungsprädikat)
  • Wählen einer Menge von Vorhersagepunkten und einer Menge von Bewertungspunkten aus den Abtastpunkten der Zelle. Die Verbindung der Vorhersage- und Bewertungspunkte sollte alle der Abtastpunkte der Zelle sein; und der Kreuzungspunkt dieser zwei Punktmengen sollte die NULL-Einstellung sein. Wählen einer Rekonstruktionsmethode R von niedrigerer Ordnung als die Rekonstruktionsmethode der Zelle. Berechnen einer Menge {D} von Abstands- und Parameterwerten an den Stellen der Bewertungspunkte mit der Methode R, die auf die Vorhersage punkte angewandt wird. Falls Differenzen zwischen der Menge {D} und den tatsächlichen Abstands- und Parameterwerten an den Bewertungs-Scheitelpunkten alle kleiner sind als die Fehlertoleranzen epsDist und epsParams, dann RICHTIG zurücksetzen, das anzeigt, das die Zelle nicht aufgeteilt zu werden braucht.
  • GradientBasedPartitionPredicate (Gradientbasiertes Aufteilungsprädikat)
  • Berechnen einer Menge {G1} von Gradienten des Distanzfeldes an Testpunkten mit der Funktion ObjDistAndParam, die als Eingabe gegeben ist. Berechnen der Menge {G2} von Gradienten des Distanzfeldes an den Testpunkten mit der Methode ComputeHDFGradient des HDF oder der Zelle und den Daten der Zelle. Falls Differenzen zwischen den Mengen {G1} und {G2} alle kleiner sind als die Fehlertoleranzen epsGradient, dann RICHTIG zurücksetzen, das anzeigt, dass die Zelle nicht aufgeteilt zu werden braucht.
  • FeatureBasedPartitionPredicate (Merkmalbasiertes Aufteilungsprädikat)
  • Berechnen der Größe der Zelle. Vergleichen dieser Größe mit der Größe des kleinsten Merkmals des Distanzfeldes innerhalb dieser Zelle. Wenn die Zelle kein Merkmal enthält, das kleiner als die Größe der Zelle ist, dann RICHTIG zurücksetzen, das anzeigt, dass die Zelle nicht aufgeteilt zu werden braucht.
  • PartitionCell (Aufteilungszelle)
  • Erzeugen und Initialisieren von Kindern der Elternzelle und ihre Datenanfangssätze zu der Elternzelle hinzufügen.
  • CombinePredicate (Prädikat kombinieren)
  • Falls alle Kinder der Elternzelle Innenraumzellen sind und der Oberflächendarstellungsfehler sowie die vorhergesagten Rekonstruktionsfehler in den Parameterwerten für die Elternzelle kleiner sind als die Fehlertoleranzen epsDist und epsParams, dann den Elternzellen-Typ auf Innenraum setzen und RICHTIG zurücksetzen. Außerdem, falls alle Kinder der Elternzelle Außenseitenzellen sind und der Oberflächendarstellungsfehler und die vorhergesagten Rekonstruktionsfehler in den Parameterwerten für die Elternzelle alle kleiner sind als die Fehlertoleranzen epsDist und epsParams, dann den Elternzellen-Typ auf Außenseite setzen und RICHTIG zurücksetzen. Außerdem, falls einige der Kinder der Elternzelle Innenraum und einige Außenseite sind, und der Oberflächendarstellungsfehler und die vorhergesagten Rekonstruktionsfehler in den Parameterwerten für die Elternzelle kleiner sind als die Fehlertoleranzen epsDist und epsParams, dann den Elternzellen-Typ auf Oberfläche setzen und RICHTIG zurücksetzen.
  • CombineCell (Zelle kombinieren)
  • Modifizieren einer Elternzelle mit beliebigen notwendigen Daten aus ihren Kinderzellen und anschließend Entfernen der Kinderzellen der Elternzelle.
  • BuildLevelOfDetailHDF (HDF-Detailniveau konstruieren)
  • Setzt eine verkürzte Version des gegebenen HDF zurück. In der verkürzten Version des HDF werden Zweige des Baums unterhalb von Zellen, die die vorgegebenen Fehlertoleranzen erfüllen, verkürzt.
  • BuildLevelOfDetailSurfaceCellList (Detailniveau von Oberflächenzellenliste konstruieren)
  • Setzt eine Liste von Knoten-Leaf-Cells aus einem HDF, das entsprechend den gegebenen Fehlertoleranzen verkürzt wurde, zurück.
  • BuildMaxLevelHDF (Maximales Niveau des HDF konstruieren)
  • Setzt eine verkürzte Version des gegebenen HDF zurück, wenn Zweige des Baums mit einer Auflösung, die höher ist als das vorgegebene maximale Niveau, verkürzt sind.
  • BuildMaxLevelSurfaceCellList (Maximales Niveau der Oberflächenzellenliste konstruieren)
  • Setzt eine Liste von Knoten-Leaf-Cells von einem auf das vorgegebene maximale Niveau verkürzten HDF zurück.
  • BuildViewDependentHDF (Sichtabhängiges HDF konstruieren)
  • Diese Methode setzt ein HDF zurück, das verkürzt worden ist, um sichtabhängige Fehlertoleranzen zu erfüllen. Die Toleranzen jeder Zelle können unterschiedlich sein und werden davon abhängig sein, wie weit die Zelle vom Betrachter weg ist, und von der perspektivischen Projektion, usw. Während des Querens des HDF von oben nach unten werden für jede Zelle die Betrachtungsparameter, z. B. eyePosition und ObjToSampleSpaceTransform sowie die Oberflächendarstellungsfehler der Zelle und vorhergesagten Rekonstruktionsfehler in Erscheinungsparametern genutzt, um den maximalen Abtastraumfehler, den maximalen Normalfehler und die maximalen Fehler für die Erscheinungsparameter zu berechnen. Zweige des HDF-Baums unterhalb von Zellen, bei denen diese vorhergesagten maximalen Fehler kleiner sind als die entsprechenden Fehlertoleranzen, z. B. epsSampleSpaceError, epsNormal und epsParams werden verkürzt.
  • Methoden zur Bildberechnung (1005)
  • IsSurfaceCellBAckFacing (Zeigt Oberflächenzelle nach hinten)
  • Die abgetasteten Abstandswerte an Abtastpunkten der Oberflächenzelle und die Rekonstruktionsmethoden verwenden, um zu bestimmen, ob die gesamte Oberfläche innerhalb der Oberflächenzelle von der Strahlenrichtung weg zeigt. Die Methode setzt RICHTIG zurück, wenn die gesamte Oberfläche innerhalb der Oberflächenzelle von der Strahlenrichtung weg zeigt. Diese Informationen können zum Backface-Culling genutzt werden, um die Belastung der Bildberechnung zu reduzieren. Wenn die Oberfläche in der Zelle eben genug ist, wie es durch eine gewisse Kombination der abgetasteten Abstandswerte, die Rekonstruktionsmethode und den Oberflächendarstellungsfehler der Zelle festgelegt wird, dann kann zum Beispiel bestimmt werden, ob die Oberfläche in der Zelle nach hinten zeigt oder nicht, indem das skalare Produkt des Gradienten im Mittelpunkt der Zelle mit der Strahlenrichtung berechnet wird. Wenn die Oberfläche in der Zelle nicht eben genug ist, dann kann die Zelle unterteilt werden, und dieses Verfahren kann rekursiv angewandt werden.
  • Erzeugen von hierarchischen Distanzfeldern
  • Die zwei nächsten Abschnitte beschreiben, wie mit den oben beschriebenen grundlegenden Methoden ein HDF erzeugt werden kann. Ein HDF kann entweder in der Weise von oben nach unten oder von unten nach oben erzeugt werden. Typischerweise kann die Reihenfolge von oben nach unten genutzt werden, wenn das HDF aus einer parametrischen Form oder einer impliziten Darstellung der Objektoberfläche erzeugt wird; und die Reihenfolge von unten nach oben kann genutzt werden, wenn das HDF aus einem Bild oder einer Distanz-Bildvorlage erzeugt wird.
  • Eine Erzeugung von oben nach unten kann wie folgt zusammengefasst werden. Der Raum innerhalb des Begrenzungskastens 100 ist rekursiv aufgeteilt in Zellen mit gleichen Abmessungen, zum Beispiel Quadranten im zweidimensionalen Raum, Oktanten im dreidimensionalen Raum, usw. In jedem Aufteilungsniveau wird ein Test durchgeführt, um zu bestimmen, ob eine Oberfläche des Objekts 101 sich mit einer speziellen Zelle schneidet. Wenn nicht, wird die Zelle entweder als Außenseiten- oder Innenraumzelle markiert. Andererseits wird ein weiterer Test durchgeführt, um zu bestimmen, ob ein vorgegebenes Auflösungsniveau erreicht worden ist oder ob die aus den Musterwerten der Zelle rekonstruierte Oberfläche mit der Zellen-Rekonstruktionsmethode innerhalb einer Fehlertoleranz der wahren Oberfläche liegt. Wenn nicht, wird die Aufteilung iteriert; andererseits wird die Zelle als Oberflächenzelle markiert.
  • Eine Erzeugung von unten nach oben beginnt dadurch, dass der Raum innerhalb des Begrenzungskastens rekursiv in Zellen gleicher Größe aufgeteilt wird, bis ein vorgegebenes Auflösungsniveau erreicht ist. Die Zellen werden geeignet als Innenraum-, Außenseiten- oder Oberflächenzellen markiert. Als Nächstes werden gruppierte von benachbarten Zellen rekursiv kombiniert, wenn der Oberflächendarstellungsfehler der kombinierten Zelle kleiner ist als eine spezifizierte Fehlertoleranz. Die spezifizierte Fehlertoleranz kann unterschiedlich sein in Abhängigkeit von der Anwendung und davon, ob die kombinierte Zelle eine Außenseiten-, Innenraum-, oder Oberflächenzelle ist. Wenn benachbarte Zellen nicht kombiniert werden können, verbleiben die Zellen in dem Baum als Leaf Cells.
  • Von oben nach unten
  • Initialisierung
  • 11 zeigt ein Verfahren 1100 zum Erzeugen eines HDF gemäß der Erfindung in einer Reihenfolge von oben nach unten. Die Eingabe in das Verfahren 1100 ist eine Objektbeschreibung oder ein Modell 1101. Zum Beispiel kann das Modell eine implizite Funktion, Polygone, bikubische Flecke und dergleichen sein. Im Schritt 1110 wird ein Begrenzungskasten (BBox) 1111 erhalten. Der Begrenzungskasten kann aus dem Modell berechnet werden oder er kann explizit mit dem Modell gespeichert werden. Im Schritt 1120 wird eine Abstands- und Parameterfunktion DistAndParamFunc 1121 erhalten. Diese Funktion wird während einer HDF-Erzeugung genutzt, um Abstände zu der Oberfläche des Objekts oder Modells, Erscheinungsparameter und Berechnungsparameter zu bestimmen. Der Schritt 1130 weist eine Ursprungszelle 1131 zu und berechnet diese für das HDF mit dem Begrenzungskasten und der Abstands- und Parameterfunktion. Die Ursprungszelle 1131 ist die Eingabe für den Hauptzyklus 1120 des Erzeugungsverfahrens 1100.
  • Hauptzyklus
  • Der Hauptzyklus 1120 für das Erzeugungsverfahren 1100 von oben nach unten kann durch andere Methoden für jede beliebige Eingabezelle wie nachstehend beschrieben aufgerufen werden. Zum Beispiel kann eine Methode zum Anwenden eines Aufbereitungs-Tools auf das HDF den Hauptzyklus 1120 aufrufen, nachdem ein gewisser Teil des Distanzfeldes durch ein Tool aufbereitet worden ist.
  • Der Schritt 1140 fügt die Eingabe-Zelle 1131 einer Arbeitsliste L 1141 hinzu. Der Schritt 1150 entfernt eine aktuelle Zelle C 1151 aus der Arbeitsliste L. Wenn die Liste leer ist, schließt die Erzeugung im Schritt 1190 ab. Der Schritt 1160 fügt die Zelle C der HDF-Struktur hinzu.
  • Der Schritt 1170 prüft die Zelle C, um zu bestimmen, ob sie aufgeteilt werden sollte oder nicht. Im Allgemeinen wird der Test einem Aufteilungsprädikat zugrunde gelegt, das bestimmt, ob die Musterwerte der Zelle die Objektoberfläche, Erscheinungs- oder Berechnungsparameter spezifizieren, d. h. Einzelheiten innerhalb von spezifizierten Fehlertoleranzen, epsDist und epsParams, 1172. Einige Beispiele von Aufteilungsprädikaten werden mit 10 unter grundlegende Methoden zum Aufteilen, Kombinieren und Verkürzen von HDF (1004) als PointBasedPartitionPredicate (punktbasiertes Aufteilungsprädikat) und CellBasedPartitionPredicate (zellenbasiertes Aufteilungsprädikat) beschrieben. Diese Aufteilungsprädikate vergleichen vorausgesagte Werte mit gespeicherten oder berechneten Abstands- und Parameterwerten an Testpunkten in der Zelle. Diese Aufteilungsprädikate erfordern die Spezifikation von Testpunkten, Abstandsfehlertoleranzen (epsDist) und Parameterfehlertoleranzen (epsParam) 1172 als Eingabe.
  • Der Test 1170 bewertet auf richtig oder falsch 1171. Wenn der Test falsch 1173 ist, dann ist die Zelle C 1151 genügend aufgeteilt, und der Prozess wird fortgesetzt, indem die nächste Zelle in der Arbeitsliste L beim Schritt 1150 entfernt wird. Andererseits wird die Zelle C 1151, wenn der Test richtig 1174 ist, im Schritt 1180 aufgeteilt, um Kinderzellen 1181 zu erzeugen, und der Prozess wird im Schritt 1140 fortgesetzt, indem die Kinderzellen zu der Arbeitsliste L zur weiteren Verarbeitung durch den Hauptzyklus 1120 hinzugefügt werden.
  • Als Vorteil bei diesem Erzeugungsverfahren können Abstandsinformationen nur berechnet werden, wenn sie benötigt werden, was Speicher und Berechnung einspart, wobei das HDF bis zu einer willkürlichen Tiefe unterteilt werden kann, bei der die Rekonstruktion des Distanzfeld höhere Abtastraten erfordert, was bei der Darstellung des Distanzfeldes eine beliebige detailgerichtete Genauigkeit bewirkt.
  • Von unten nach oben
  • Erzeugen eines völlig besetzten HDF
  • 12 zeigt ein Verfahren 1200 zum Erzeugen eines HDF gemäß der Erfindung von unten nach oben. Wie bei der Methode von oben nach unten ist die Eingabe in das Verfahren 1200 eine Objektbeschreibung oder Modell 1201. Zum Beispiel kann das Modell eine implizite Funktion, Polygone, bikubische Flecke und dergleichen sein. Alternativ dazu kann die Objektbeschreibung ein Bild sein. Im Schritt 1210 wird ein Begrenzungskasten für das Objekt (BBOX) 1211 erhalten. Der Begrenzungskasten kann aus dem Modell berechnet werden, oder der Begrenzungskasten kann explizit mit dem Modell gespeichert werden. Im Schritt 1220 wird eine Abstands- und Parameterfunktion DistAndParamFunc 1221 erhalten. Diese Funktion wird während einer HDF-Erzeugung verwendet, um Abstände zu der Oberfläche des Objekts oder Modells, Erscheinungsparameter und Berechnungsparameter zu bestimmen.
  • Im Schritt 1230 werden der Begrenzungskasten 1211 und die Abstands- und Parameterfunktion genutzt, um ein völlig besetztes HDF mit einem vom Benutzer spezifizierten höchsten Auflösungsniveau 1231 zu konstruieren. Dieses höchste Auflösungsniveau begrenzt die Tiefe der Baumstruktur; und wenn die eingegebene Objektbeschreibung ein Bild ist, dann kann die höchste Auflösung als die Auflösung des eingegebenen Bildes ausgewählt werden. Um das HDF völlig zu besetzen, wird der Begrenzungskasten rekursiv aufgeteilt, bis sich alle der Leaf Cells des HDF auf dem spezifizierten höchsten Auflösungsniveau befinden. Die Daten in den Zellen sind wie für 5 und 6 beschrieben.
  • Kombinieren von Zellen in dem völlig besetzten HDF
  • Nachdem das völlig besetzte HDF erzeugt worden ist, können die Kinder von Zellen auf einem speziellen Auflösungsniveau kombiniert werden, wo immer es möglich ist. Dies kann in einer Reihenfolge von unten nach oben wie folgt vorgenommen werden.
  • Im Schritt 1240 wird ein aktuelles Auflösungsniveau 1241 auf ein Niveau gesetzt, das niedriger ist als das spezifizierte höchste Auflösungsniveau 1231.
  • Im Schritt 1250 wird eine Zelle C 1251 auf dem aktuellen Niveau aus dem HDF ausgewählt. Schritt 1260 wendet die oben beschriebene Methode CombinePredicate auf die Kinder der Zelle C an, um zu prüfen, ob die Kinderzellen kombiniert werden können oder nicht. Dieser Test wird als richtig 1261 oder falsch 1262 bewertet.
  • Wenn er falsch ist, dann werden die Kinder der Zelle C nicht kombiniert, und es wird die nächste Zelle auf dem aktuellen Niveau ausgewählt. Wenn es auf dem aktuellen Niveau 1252 keine Zellen mehr auszuwählen gibt, dann wird das aktuelle Niveau 1241 im Schritt 1270 auf das nächstniedrigere Auflösungsniveau herabgesetzt. Das herabgesetzte Niveau wird geprüft, um zu bestimmen ob es das Ursprungsniveau des Baumes im Schritt 1275 ist oder nicht. Wenn es richtig 1276 ist, dann schließt die Erzeugung des HDF im Schritt 1290 ab. Andererseits, wenn es falsch 1277 ist, dann wird das herabgesetzte Niveau zum aktuellen Niveau, wobei Zellen auf diesem Niveau verarbeitet werden 1278.
  • Wenn die Methode CombinePredicate im Schritt 1260 auf richtig 1261 bewertet, dann werden die Kinder der Zelle C im Schritt 1280 mit der Methode CombineCell zu C kombiniert.
  • 13 bis 14 zeigen jeweils einen Baum, der ein HDF für ein zweidimensionales Objekt vor und nach dem Kombinieren darstellt. Wie in 3 geben ungefüllte Zellen Außenseitenzellen an, ausgefüllte Zellen geben Innenraumzellen an und mit Strich versehene Zellen geben Oberflächenzellen an.
  • Die 15a, 15b und 15c zeigen jeweils das zweidimensionale Objekt, das verwendet wurde, um das HDF von 13 und 14 zu erzeugen, und die entsprechende Aufteilung des Begrenzungskastens des Objekts für das nicht kombinierte und kombinierte HDF. Aus 14 und 15c soll deutlich werden, dass Oberflächenzellen die auch Leaf Cells in der Baumstruktur sind, nicht darauf beschränkt sind, auf dem höchsten Auflösungsniveau des Baums wie im Stand der Technik zu liegen; hier können Leaf Cells auf beliebigen Niveaus liegen.
  • Die Methode von unten nach oben ist einfach, erfordert jedoch genügend Speicher um das völlig besetzte hierarchische Distanzfeld zu besetzen, erfordert die Erzeugung des völlig besetzten hierarchischen Distanzfeldes, wobei die endgültige Auflösung durch die vorher spezifizierte höchste Auflösung des völlig besetzten hierarchischen Distanzfeldes begrenzt ist.
  • Umwandeln von HDF in normale Oberflächendarstellungen.
  • Die folgenden Abschnitte beschreiben vier Methoden zum Umwandeln von HDF in normale geometrische Oberflächendarstellungen.
  • Methode zum Umwandeln eines HDF in eine Oberflächendarstellung
  • 16 zeigt eine Methode 1600 zum Umwandeln eines HDF in eine gewünschte Oberflächendarstellung. Gewünschte Darstellungen können Polygone (Dreiecke), bikubische Flecke, Punktmuster und dergleichen enthalten. Die Eingabe 1601 in die Umwandlungsmethode 1600 ist das HDF und die Fehlertoleranzen epsDist und epsParams.
  • Schritt 1610 wählt Oberflächenzellen 1611 aus, die ein Detailniveau (LOD), das mit den gegebenen Fehlertoleranzen epsDist und epsParams im Einklang steht, erfüllen. Zum Beispiel können diese Zellen so gewählt werden, dass ihre Oberflächendarstellungsfehler kleiner als die vorgegebenen Fehlertoleranzen sind. Schritt 1620 impft jede ausgewählte Zelle mit N „Punkten" und kommentiert die Zellen mit den Punkten 1621. Die geimpften Punkte werden möglicherweise zu Scheitelpunkten der parametrischen Flecke (z. B. Dreiecke) der gewünschten Oberflächendarstellung. Die Anzahl von geimpften Punkten kann durch den Benutzer von der Größe der Zelle, wenn sie auf ein Bild projiziert wird, oder von der Zellengröße ausgewählt 1615 werden. Die erste Stelle der geimpften Punkte kann regelmäßig oder zufällig sein.
  • Schritt 1630 verändert Stelle und Anzahl der geimpften Punkte, um die gesamte Oberflächenenergie zu reduzieren. Das bedeutet, Punkte können bewegt werden, Punkte können an Stellen mit hohem Oberflächendetail (z. B. hohe Krümmung) hinzugefügt werden und Punkte können von Stellen mit geringem Oberflächendetail (z. B. geringe Krümmung) entfernt werden. Die Oberflächenenergie ist typischerweise eine Funktion 1632 des Abstands zwischen Partikeln, und der Energiebeitrag von miteinander wirksamen Punkten ist typischerweise nicht Null nur über einen beschränkten Bereich von Zwischenkrafteinfluss 1621. Dieser Bereich bestimmt, wie weit die Energiefunktion benachbarte Punkte beeinflusst. Die Ausgabe 1633 von Schritt 1630 sind Oberflächenzellen, die mit neuen Impfpunktstellen kommentiert werden und eine Messung der Änderung in der Oberflächenenergie, surface energy delta, die sich aus dem Schritt 1620 ergeben hat.
  • Schritt 1640 bestimmt, ob die Änderung der Oberflächenenergie kleiner oder gleich einer vorgegebenen Schwellenwertänderung in der Oberflächenenergie epsEnergy 1641 ist. Wenn es falsch 1642 ist, dann beim Schritt 1630 fortsetzen und die Punkte ändern, bis es richtig 1643 ist. Wenn es richtig ist, dann ist die Ausgabe die Oberflächenzellen, die an ihren endgültigen Positionen 1644 mit Punkten kommentiert sind.
  • Schritt 1650 rekonstruiert die Erscheinungsparameter und die Distanzfeld-Gradienten an den endgültigen Punktpositionen mit den oben beschriebenen grundlegenden Methoden. Ist die Menge von Oberflächenpunkten, ihre Örtlichkeiten, Erscheinungsparameter und Flächennormalen gegeben, dann kann die gewünschte Oberflächendarstellung 1690 im Schritt 1660 aus den mit Attribut versehenen Oberflächenpunkten 1651 mit einer Oberflächenrekonstruktionsmethode erzeugt werden. Zum Beispiel kann, wenn die gewünschte Oberflächendarstellung Dreiecke sind, die bekannte Triangulationsmethode 1661 nach Delaunay verwendet werden.
  • Methode zum Umwandeln eines HDF zu parametrischen Flecken
  • 17 zeigt eine Methode 1700 zu Umwandeln eines HDF zu parametrischen Flecken 1790. Die Eingabe 1701 in die Umwandlungsmethode 1700 ist ein HDF und Fehlertoleranzen epsDist und epsParams. Schritt 1702 setzt eine Fehlertoleranz epsPatchInit entweder durch Auswahl des Benutzers oder dadurch, dass sie aus der gegebenen Distanzfehlertoleranz epsDist abgeleitet wird. Die Fehlertoleranz epsPatchInit ist im Allgemeinen weniger einschränkend als epsDist, so dass die durch den Schritt 1710 ausgewählten Oberflächenzellen ein Auflösungsniveau besitzen können, das geringer ist als es ausgewählt worden wäre, wenn die gegebene Fehlertoleranz epsDist verwendet wird. Weil Oberflächenflecke anschließend unterteilt werden, wenn Fehlertoleranzen nicht erfüllt sind, schränkt diese Initialisierung mit größeren Oberflächenflecken die Genauigkeit der endgültigen parametrischen Flecken nicht zwangsläufig ein, kann jedoch die Möglichkeit von größeren Flecken als sie erzeugt worden wären, wenn epsDist verwendet wird, in Betracht ziehen.
  • Schritt 1710 wählt Oberflächenzellen 1711 aus, die ein Detailniveau (LOD) erfüllen, das mit den Fehlertoleranzen epsPatchInit und epsParams in Einklang steht. Schritt 1720 initialisiert einen Scheitelpunkt der Fleckenecke im Mittelpunkt von jeder Oberflächenzelle und versieht jeden Scheitelpunkt der Fleckenecke mit seiner anfänglichen Oberflächenzelle 1721.
  • Schritt 1730 verknüpft die Flecken-Scheitelpunkte von benachbarten Oberflächenzellen, um dreieckige Bezier-Oberflächenflecke oder bikubische Bezier-Flecke 1731 zu bilden. Wenn bikubische Bezier-Flecke gebildet werden, können beliebige dreieckige Flecken, die geformt werden, als entartete Vierecke dargestellt werden. Die Ausgabe 1731 von 1730 ist ein verknüpftes Netz parametrischer Flecke, die aus Scheitelpunkten bestehen, die mit ihren entsprechenden anfänglichen Oberflächenzellen versehen sind und eine Darstellung der Verknüpfungen zwischen Flecken-Scheitelpunkten.
  • Schritt 1740 erzeugt ein aufgelockertes Oberflächennetz 1741, indem die Gesamtenergie des Netzes 1731 entsprechend dem Energiebeitrag von benachbarten Scheitelpunkt-Positionen, dem Abstand eines Scheitelpunktes von einer HDF-Isofläche und Einschränkungen zum Halten der Scheitelpunkte innerhalb der Oberflächenzellen minimiert wird. Nach dem Einstellen der Positionen von jedem Scheitelpunkt in dem Oberflächennetz wird die Änderung der Oberflächenenergie mit epsEnergy 1742 verglichen. Wenn die Änderung der Oberflächennetz-Energie größer ist als epsEnergy, wird die Positionseinstellung wiederholt. Andererseits wird das aufgelockerte Oberflächennetz 1741 ausgegeben.
  • Schritt 1750 berechnet die Scheitelpunkt-Normalen aus rekonstruierten Gradienten des HDF und gibt die Flecken-Scheitelpunkte und ihre Normalen 1751 aus.
  • Schritt 1760 erzeugt parametrische Flecken aus Scheitelpunkten und Normalen der Flecken und kennzeichnet die Scheitelpunkte als gut oder schlecht in Abhängigkeit davon, wie gut ihre entsprechenden Flecke zu der durch das HDF dargestellten Oberfläche passen. Erstens erzeugt Schritt 1760 für jeden Fleck eine parametrische Gleichung für den Fleck aus den Fleck-Scheitelpunkten und Normalen 1751. Zweitens, wird ein Maß der Passform zwischen der parametrischen Gleichung und der HDF-Isofläche berechnet. Wenn der Fehler in der Passform zwischen der parametrischen Darstellung und der HDF-Isofläche eine gegebene Fehlertoleranz epsFit überschreitet, stellt der Fleck die Oberfläche gut dar und muss unterteilt werden. In diesem Fall werden die Fleck-Scheitelpunkte als schlecht gekennzeichnet, andererseits werden die Scheitelpunkte als gut gekennzeichnet.
  • Schritt 1770 unterteilt alle Oberflächenzellen mit Scheitelpunkten, die als schlecht gekennzeichnet sind, aktualisiert 1771 das verknüpfte Oberflächennetz 1731 und iteriert erneut 1772 im Schritt 1740, bis alle Fleck-Scheitelpunkte als gut gekennzeichnet sind, und die endgültigen Flecken 1790 werden ausgegeben.
  • Methode zum Umwandeln eines HDF mit Oberflächenetzen
  • 18 zeigt eine Methode 1800 zum Umwandeln eines HDF in ein Oberflächennetze nutzendes Dreiecksmodell. Die Eingabe 1801 in die Umwandlungsmethode 1800 ist das HDF und Fehlertoleranzen epsDist und epsParams.
  • Schritt 1810 wählt Oberflächenzellen 1811 aus, die ein Detailniveau (LOD) erfüllen, das in Einklang steht mit den gegebenen Fehlertoleranzen epsDist und epsParams. Schritt 1820 initialisiert jede ausgewählte Zelle mit N Oberflächennetz-Knoten, die mit ihren anfänglichen Oberflächenzellen 1821 versehen sind. Die Anzahl N von Knoten kann durch den Benutzer von der Größe der Zelle, wenn sie auf ein Bild projiziert wird, oder von der Zellengröße ausgewählt 1815 werden.
  • Schritt 1830 konstruiert das Oberflächennetz 1831, indem Verknüpfungen zwischen benachbarten Oberflächen-Knoten eingerichtet werden. Dieser Schritt erzeugt außerdem eine Oberflächen-Dreiecksliste 1832, in der die Scheitelpunkte der Dreiecke den Knoten entsprechen, wobei die Ecken der Dreiecke durch die Verknüpfungen in dem Oberflächenetz bestimmt werden.
  • Schritt 1840 ändert die Stelle der Knoten, um die gesamte Oberflächenenergie zu reduzieren. Beiträge zur Energie in der Oberflächennetz-Energie können Energie aufgrund des Zwischenraums benachbarter Knoten 1841, des Abstands zwischen Knoten und der HDF-Isofläche 1842 und Einschränkungen, die die Knoten innerhalb ihrer anfänglichen Oberflächenzellen 1843 halten, umfassen. Die Änderung der Oberflächennetz-Energie nach dem Einstellen aller Knoten im Oberflächenetz ist eine SurfaceNet Energy-Deltainformation 1841.
  • Schritt 1850 prüft, ob die SurfaceNet Energy-Deltainformation kleiner ist als eine gegebene Toleranz epsEnergy 1851. Wenn es falsch 1852 ist, dann beim Schritt 1840 fortsetzen und die Knotenstellen bis richtig 1853 ändern. Bei richtig 1853 werden die endgültigen Positionen der Oberflächennetz-Knoten 1854 ausgegeben.
  • Schritt 1860 rekonstruiert die Erscheinungsparameter und Distanzfeld-Gradienten an den endgültigen Knotenpositionen, indem die oben beschriebenen grundlegenden Methoden genutzt werden, um die endgültigen Dreieck-Scheitelpunkte 1861 zu erzeugen. Durch Anwenden dieser endgültigen Scheitelpunkte auf die Oberflächendreiecks-Liste 1832, wird das endgültige Dreiecksmodell 1890 erzeugt.
  • Methode zum Umwandeln eines HDF mit einer Verweistabelle für Darstellungselemente
  • 25 zeigt einen Teil 2500 einer Oberfläche, die durch Viereck-Darstellungselemente dargestellt ist. Die Figur stellt „Spalte" oder „Risse" von Oberflächen dar, die in fleckigen parametrischen Darstellungen erscheinen können, wenn die Scheitelpunkte von benachbarten Darstellungselementen nicht geteilt werden. Zum Beispiel ist ein Spalt 2504 zwischen den Darstellungselementen 2501, 2502 und 2503 vorhanden, weil ein Scheitelpunkt 2510 der von 2502 und 2503 geteilt wird, von 2501 nicht geteilt wird. Zahlenmäßige Fehler oder eine Krümmung in der zum örtlichen Festlegen des Scheitelpunktes 2510 genutzten Isofläche kann zu einem Scheitelpunkt 2510 führen, der nicht auf der Kante 2520 von 2501 liegt, was zu dem Spalt 2504 führt.
  • Wenn HDF in parametrische Darstellungen umgewandelt werden, können zwischen Darstellungselementen, die aus benachbarten Zellen mit unterschiedlichen Auflösungen in der HDF-Baumstruktur erzeugt werden, Spalte eingeführt werden. Die folgende Methode widmet sich dem Problem von Spalten, wenn sie Oberflächen-Darstellungselemente mit einer Verweistabelle für Darstellungselemente erzeugt.
  • 26 zeigt eine Methode 2600 zum Umwandeln eines HDF zu einer Liste von geometrischen Darstellungselementen 2660 mit einer Verweistabelle 2630 für Darstellungselemente. Die Eingabe 2601 in die Umwandlungsmethode 2600 ist ein HDF und Fehlertoleranzen epsDist und epsParams.
  • Schritt 2610 wählt Oberflächenzellen 2611 des HDF aus, die ein Detailniveau (LOD) erfüllen, das mit den vorgegebenen Fehlertoleranzen epsDist und epsParams 2601 in Einklang steht. Jede ausgewählte Oberflächenzelle ist mit einem Mehrdeutigkeits-Auflösungscode (ACC) gekennzeichnet. Der ACC wird verwendet, um topologische Mehrdeutigkeiten während der Verarbeitung der Oberflächenzelle aufzulösen.
  • Im Schritt 2620 wird eine Darstellungselemente-Verweistabelle 2630 genutzt, um eine Liste von Darstellungselementen 2631 zu erzeugen, die die Isofläche für jede Zelle und ihre ARC 2621 darstellt. Oberflächenzellen und ihre zugeordneten Darstellungselemente 2640 werden anschließend zum Schritt 2650 geleitet, der die Scheitelpunkte der benachbarten Zellen mit unterschiedlichen Niveaus in dem HDF-Baum prüft, um Spalte in der Oberfläche zu detektieren. Wenn Spalte existieren, werden zusätzliche Darstellungselemente erzeugt, um die Spalte zu füllen. Diese zusätzlichen Darstellungselemente und die Liste 2640 von Darstellungselementen bilden die endgültige Darstellungselemente-Liste 2660.
  • Weil die HDF flache Bereiche der Isofläche mit großen Zellen darstellen und nicht erfordern, dass alle Zellen die Auflösung mit feinstem Detail in der Oberfläche besitzen, kann diese Methode bedeutend weniger Darstellungselemente, z. B. Dreiecke, als herkömmliche Algorithmen wie „Fortschreitende Würfel" erzeugen, die regelmäßig abgetastete Volumen zu Darstellungselementen umwandeln, siehe Lorensen et al. „Marching Cubes: A High Resolution 3D Surface Construction Algorithm" („Fortschreitende Würfel: Ein Algorithmus zur hoch auflösenden dreidimensionalen Oberflächenkonstruktion"), Sitzungsberichte von SIGGRAPH 1987, Computer Graphics, Bd. 21 (4): Seiten 163–169, 1987.
  • Bildberechnung
  • Die folgenden Abschnitte beschreiben vier Verfahren zur Bildberechnung von hierarchischen Distanzfeldern.
  • Bildberechnung von HDF mit analytischer Strahlverfolgung
  • Wie in 19 dargestellt ist, nutzt das eine Verfahren 1900 zur Bildberechnung eines HDF die analytische Strahlverfolgung. Im Schritt 1910 wird als Eingabe zum Erzeugen von Strahlen 1911 ein Betrachtungspunkt 1901 und Bildebenen-Parameter 1902 genutzt. Im Schritt 1920 werden die Strahlen durch das HDF verfolgt. Wenn die Strahlen durch das HDF hindurchgehen, werden Oberflächenzellen detektiert. Das Niveau, auf dem eine Oberflächenzelle in dem HDF vorgefunden wird, und die Begrenzungskasten-Parameter werden genutzt, um die Größe der Oberflächenzelle zu bestimmen. Die Ausgabe dieses Schrittes ist eine Oberflächenzelle 1921 und ein zugeordneter Strahl 1922.
  • Im Schritt 1930 wird das Distanzfeld entlang des Strahls mit einem Gleichungsgenerator, der die oben beschriebene grundlegende Methode DistanceToSurfaceInSurfaceCell verwendet, erneut parametriert. Im Schritt 1940 werden die Punkte 1941 identifiziert, wenn der Strahl 1922 eine Isofläche des Distanzfeldes innerhalb der Oberflächenzelle kreuzt. Im Schritt 1950 werden Erscheinungsparameter, zum Beispiel Gradienten des Distanzfeldes, für die Zelle 1921 an den Kreuzungspunkten 1941 erzeugt, indem einige der oben beschriebenen grundlegenden Methoden verwendet werden.
  • Eine analytische Schattierungsfunktion 1960 erzeugt Farb- und Undurchsichtigkeitswerte 1961 für Pixel aus den Strahlkreuzungspunkten 1941, aus Erscheinungsparametern 1951 an diesen Kreuzungspunkten und aus Szenenparametern wie zum Beispiel Lichtpositionen und Farben 1952, die durch das Graphiksystem spezifiziert werden. Die Werte 1961 werden im Schritt 1970 zusammengesetzt, um ein Bild 1971 zu erzeugen, das zu einem Display 1980 gesendet werden kann.
  • Bildberechnung von HDF mit Abtaststrahlverfolgung
  • Wie in 20 dargestellt ist, gibt ein Verfahren 2000 ein HDF wieder, indem Abtaststrahlverfolgung genutzt wird. Im Schritt 2010 wird ein Betrachtungspunkt 2001 und Bildebenen-Parameter 2002 als Eingabe verwendet, um Strahlen 2011 zu erzeugen. Im Schritt 2020 werden die Strahlen durch das HDF verfolgt. Wenn die Strahlen durch das HDF hindurch gehen, werden Oberflächenzellen detektiert. Das Niveau, auf dem eine Zelle in dem HDF vorgefunden wird, und die Begrenzungskasten-Parameter werden genutzt, um die Größe der Oberflächenzelle zu bestimmen. Die Ausgabe dieses Schrittes ist eine Oberflächenzelle 2021 und der zugeordnete Strahl 2022.
  • Im Schritt 2040 wird eine Strahlabtastrate 2041 als Eingabe genutzt, um Strahlabtastpunkte 2042 zu erzeugen. Im Schritt 2050 werden Zellen 2021 und die Strahlabtastpunkte als Eingabe genutzt, um mit den oben beschriebenen grundlegenden Methoden Abstands- und Erscheinungsparameter zu bestimmen.
  • Eine abgetastete Schattierungsfunktion 2060 erzeugt Farb- und Undurchsichtigkeitswerte 2061 für Pixel aus den Strahlabtastpunkten 2042, aus Abstands- und Erscheinungsparametern 2051 an diesen Abtastpunkten und aus Szenenparametern wie zum Beispiel durch das Grafiksystem spezifizierte Lichtpositionen und Farben 2052. Im Schritt 2070 werden die Werte 2061 zusammengesetzt, um ein Bild 2071 zu erzeugen, das zu einem Display 2080 gesendet werden kann.
  • Bildberechnung von HDF mit angenäherten Geometrie-Darstellungselementen
  • Wie in 21 dargestellt ist, gibt das Verfahren 2100 ein HDF mit Geometrie-Darstellungsartelementen wieder. Im Schritt 2110 werden die Kamera-Parameter 2101, das HDF und die Fehlertoleranzen epsDist und epsParams als Eingabe genommen. Oberflächenzellen, in die die vorgegebenen Fehlertoleranzen sowie beliebige sichtabhängige Fehlertoleranzen erfüllen, werden in einer verknüpften Zellenliste 2111 gespeichert.
  • Im Schritt 2120 werden die Oberflächenzellen in der verknüpften Zellenliste 2111 zu einer Liste von Geometrie-Darstellungselementen 2122 umgewandelt. Die Darstellungselemente 2122 können zum Beispiel Dreiecke mit Scheitelpunkten sein, die mit Farbe, Normalen, Texturkoordinaten, usw. versehen sind. Ein Verfahren zur Umwandlung 2121 kann eines der oben beschriebenen Umwandlungsmethoden sein.
  • Eine Bildberechnungsmaschine 2170, z. B. OpenGL, nimmt einen Wiedergabezustand 2160 als Eingabe, um ein Bild 2171 zu erzeugen, das angezeigt werden kann 2180.
  • Aufbereiten von hierarchischen Distanzfeldern
  • 23 zeigt das Verfahren 2300 zur Anwendung eines Tools zum Aufbereiten eines HDF. Im Schritt 2310 wird als Eingabe das Objekt HDF 2311 und eine Beschreibung des Tools 2312 entweder als ein HDF, eine implizite Funktion oder eine beliebige andere Darstellung genommen, und es wird ein Aufbereitungs-Begrenzungskasten 2313 des Bereiches erzeugt, in dem sich das Objekt HDF 2311 und die Tool-Darstellung 2312 kreuzen. Im Schritt 2320 wird eine aufbereitete Untermenge des Objekts HDF 2322 erzeugt, die diesem Kreuzungsbereich entspricht, die die aktuelle entsprechende Untermenge des Objekts HDF 2311 bei 2330 ersetzt, indem das aufbereitete Objekt HDF 2331 erzeugt wird.
  • Der Schritt 2320 kann ein Erzeugungsverfahren wie zum Beispiel den Hauptzyklus der oben beschriebenen Erzeugungsmethode 1120 von oben nach unten mit dem Unterschied nutzen, dass Abstandswerte an Abtastpunkten innerhalb jeder Zelle in folgender Weise berechnet werden.
  • Jeder Abtastpunkt 2321 von jeder Zelle, der während der Erzeugung in Betracht gezogen wird, wird durch 2340 und durch 2350 abgefragt, indem einige der oben beschriebenen grundlegenden Methoden genutzt werden, um einen Abstandswert für das Objekt 2311 und das Tool 2312 an dem Abtastpunkt 2321 zu bestimmen. Anschließend werden der Abstandswert des Objekts dO 2341 und der Abstandswert des Tools dT 2351 im Schritt 2360 entsprechend einer Aufbereitungsfunktion kombiniert. Einige Beispiele von Aufbereitungsfunktionen umfassen: Subtrahieren der Tool-Form von der Objektform mit einer entsprechenden Aufbereitungsfunktion dnew = min(dO, –dT); Kreuzen der Objektform und der Tool-Form mit einer entsprechenden Aufbereitungsfunktion dnew = min(dO, dT); und Addieren der Tool-Form zu der Objektform mit einer entsprechenden Aufbereitungsfunktion dnew = max(dO, dT). Andere Aufbereitungsfunktionen wie die, die die Ebenheit der Oberfläche oder der Erscheinungsparameter beeinflussen, sind ebenfalls möglich.
  • Der sich ergebende neue Abstandswert, dO 2361 neu, ist der Abtastwert des aufbereiteten Objekts für den in der Erzeugung 2320 verwendeten Abtastpunkt 2321.
  • Eine Anwendung zum Formen von hierarchischen Distanzfeldern
  • Wie in 22 dargestellt ist, kann ein HDF durch Anwendung eines Tools nach dem Verfahren 2200 aufbereitet werden, das eine Aufbreitungssteuerfunktion 2210 umfasst, die Aufbereitungsparameter 2201 als Eingabe verwendet und Anforderungen erzeugt, um neue Tool-Formen 2211 zu konstruieren, die aktuelle Tool-Form 2212 zu ändern, die Tool-Position und Ausrichtung 2213 zu ändern, die Tool-Operation 2214 zu ändern und das Tool auf das HDF 2215 anzuwenden.
  • Konstruieren einer neuen Tool-Form
  • Im Schritt 2220 wird die angeforderte Tool-Form aus einer Toolform-Datenbank 2221 gelesen. Tool-Formen können in der Datenbank als normale gewöhnliche Formen, z. B. Dreiecke, bikubische Flecke, implizite Funktionen, usw. gespeichert werden. Die Tool-Form kann zum Beispiel als Parameter gelesen werden, um eine HDF-Darstellung des Tools 2222 zu erzeugen, oder als Parameter, um die Darstellung einer impliziten Funktion (IF) des Tools 2223 zu erzeugen.
  • Im Schritt 2230 wird aus den Tool-Parametern 2222 ein HDF-Tool 2231 erzeugt; und im Schritt 2240 wird aus den Tool-Parametern 2223 ein HDF-Tool 2241 mit impliziter Funktion erzeugt. In jedem Fall wird im Schritt 2250 die Tool-Form in einer Datenbank 2251 gespeichert.
  • Verändern der aktuellen Tool-Form
  • Um die aktuelle Tool-Form zu verändern, wird aus der Tool-Datenbank 2251 über den Speichermanager 2250 ein angefordertes Tool zurück gewonnen, und im Schritt 2260 werden Typ und Darstellung 2259 der neuen Form in den Tool-Zustand 2270 gesetzt. Der Tool-Zustand 2270 kann einen Form-Typ (z. B. HDF-Typ oder IF-Typ), die Darstellung des Tools (z. B. HDF oder IF des Tools), die Aufbereitungsfunktion, Position und Ausrichtung des Tools und dergleichen enthalten.
  • Verändern des Tool-Zustandes
  • Position oder Orientierung des Tools und die Aufbereitungsfunktion des Tools können im Tool-Zustand 2270 jeweils über die Schritte 2280 und 2281 verändert werden.
  • Tool anwenden
  • Im Schritt 2300 wird ein Tool mit einem vorgegebenen Zustand 2270 zum Aufbereiten des HDF angewandt. Das aufbereitete HDF kann entsprechend vorgegebener Bildberechnungs-Parameter wie zum Beispiel der Begrenzungskasten des aufbereiteten Bereichs 2294 wiedergegeben werden 2295.
  • Ein Formungssystem für hierarchische Distanzfelder
  • 24 stellt ein System 2400 für eine Anwendung zum Formen von HDF dar. In 2410 kann die Anwendung oder ein Benutzer der Anwendung die Parameter für das System, wie Parameter zum Erzeugen eines anfänglichen HDF, das durch die Anwendung 2421 zu formen ist, Parameter zur Bildberechnung 2423, zur Aufbereitung 2422 oder zur Umwandlung des aufbereiteten HDF in andere Standardformen 2424 einstellen. Im Schritt 2410 können außerdem Anforderungen 2411 an das System ausgelöst werden, um ein anfängliches HDF zu erzeugen oder um eine Bildberechnung, Aufbereitung oder Umwandlung in normale Formen durchzuführen.
  • Diese Anforderungen und die zugeordneten Parameter werden durch die Abfertigungseinrichtung 2420 entsprechend zu den Methoden von Erzeugung 1100, Aufbereitung 2200, Bildberechnung 1900 und Umwandlung 1600 verteilt. Die Methoden wirken auf das HDF entsprechend den Anforderungen der Anwendung.
  • Darstellen einer Farbskala mit einem hierarchischen Distanzfeld
  • Ein Teil der Computergrafik beschäftigt sich mit der Reproduktion von Farben an Eingabe- und Ausgabegeräten wie zum Beispiel Scanner, Anzeigemonitore und Drucker. Die Farben können zum Beispiel Farbtupfer wie Farbtöne, synthetische Farben, die durch Wiedergabesoftware erzeugt werden, und digitalisierte Farben von Fotografien aus Scannern sein. Im Allgemeinen sind Eingabe- und Ausgabegeräte in der Lage, nur eine Untermenge aller sichtbaren Farben zu akzeptieren und darzustellen. Dieser Bogen oder Farbbogen wird Farbskala des Gerätes genannt. Farben, die durch ein spezielles Wiedergabesystem oder Eingabesystem erzeugt werden, können innerhalb der Skala des Zielanzeigegerätes fallen oder nicht fallen. Wenn eine Farbe aus dieser Skala herausfällt, kann sie durch das Zielanzeigegerät nicht korrekt reproduziert werden, was zu unerwünschten Ergebnissen führt.
  • Um sich diesem Problem zu widmen, ist es wünschenswert Farben prüfen zu können, um zu bestimmen, ob sie in die Skala des Zielanzeigegerätes fallen. Es ist außerdem wünschenswert, dass die Anwendung alternative Farben vorschlägt oder automatisch Farben, die außerhalb der Farbskala liegen, korrigiert, um sie der Farbskala des Gerätes anzupassen. Für hoch auflösende digitalisierte Bilder, die Millionen von Farben enthalten, muss der Test oder der Korrekturprozess sehr schnell sein. Außerdem muss er in einer Weise vorgenommen werden, dass er mit der ursprünglichen Absicht oder dem Farbempfinden des ursprünglichen Wiedergabe- oder Eingabesystems im Einklang steht, wenn die Farbe so modifiziert wird, dass sie in die Skala fällt.
  • Im Stand der Technik wird eine dreidimensionale Verweistabelle (LUT) für die Farbskala des Gerätes erzeugt, die Boolesche Prüfergebnisse von "innerhalb der Skala" gegenüber „außerhalb der Skala" an diskreten Abtastpunkten im Farbraum kodiert. Jede Abmessung oder Achse der LUT stellt einen Kanal einer Dreibereichsfarbe wie RGB (Rot-Grün-Blau), HSV (Farbton-Helligkeit-Intensität) und dergleichen dar. Wenn mittels LUT eine gegebene Farbe geprüft wird, werden, wenn die Farbe nicht auf Abtastpunkten in der LUT liegt, die Booleschen Prüfergebnisse von benachbarten Abtastpunkten in der LUT gemittelt, indem ein beliebiges Interpolationsschema (z. B. trilineare Interpolation) genutzt wird, um das Boolesche Prüfergebnis für die gegebene Farbe vorherzusagen. Im Stand der Technik wird die Farbe dann, falls das Ergebnis der Booleschen Prüfung „innerhalb der Skala" liegt, angezeigt wie sie ist. Wenn das Ergebnis „außerhalb der Skala" liegt, dann warnt die Anwendung entweder den Benutzer, dass manueller Eingriff erforderlich ist, um die Wiedergabefarbe einzustellen oder es wird ein beliebiger Substitutionsalgorithmus eingesetzt, um die gegebene Farbe durch eine Farbe zu ersetzen, die innerhalb der Farbskala des Gerätes liegt.
  • Eines der Probleme mit dem oben erwähnten Stand der Technik ist, dass die LUT im Grunde genommen die Farbskala als ein binäres abgetastetes Volumen darstellt, bei dem Abtastwerte entweder „innerhalb der Skala" oder „außerhalb der Skala" liegen können. Wie oben erörtert, kann die Oberfläche nicht genau rekonstruiert werden, wenn sich Abtastwerte in einem abgetasteten Volumen plötzlich auf einer Objektfläche ändern, es sei denn, dass das Volumen mit genügend hohen Abtastraten abgetastet wird. Tatsächlich besitzt ein binäres abgetastetes Volumen wie zum Beispiel die Farb-LUT im Stand der Technik unendliche Raumfrequenzkomponenten, und die Oberfläche kann niemals genau rekonstruiert werden. Das Ergebnis ist, dass der Boolesche LUT-Test keinen genauen Test der Innenskala gegenüber der Außenskala für Farben in der Nähe der Oberfläche der Farbskala des Gerätes liefern kann, was zu wahrnehmbaren Farbfehlern in dem angezeigten Bild führt.
  • Das am 14. April 1998 Lindbloom erteilte US-Patent Nr. 5 740 076 „System for describing a color gamut in a graphical data processing system" („System zur Beschreibung einer Farbskala in einem Verarbeitungssystem für graphische Daten") widmet sich teilweise dem oben erwähnten Problem. Dort wird eine Farbskala analysiert, indem eine dreidimensionale LUT verwendet wird, die mit Mustern einer stetigen Funktion anstelle einer nicht stetigen Funktion besetzt ist. Die gewählte Funktion ist ein kodierter Abstand zwischen der Musterfarbe und der am nächsten liegenden Farbe auf der Farbskala-Oberfläche. Mit anderen Worten, die LUT speichert die Distanz-Bildvorlage der Oberfläche der Farbskala des Gerätes.
  • Die Nutzung einer regelmäßig abgetasteten Distanz-Bildvorlage zum Darstellen des Distanzfeldes für die Farbskala des Gerätes ist allen für Distanz-Bildvorlagen oben erörterten Problemen unterworfen. Außerdem wird in diesem System eine bestimmte eingegebene Farbe analysiert, um drei Ausgaben zu erzeugen, die durch das graphische Verarbeitungssystem genutzt werden: der interpolierte Abstand von der Skalaoberfläche, das Boolesche Testergebnis von „Innenskala" gegenüber „Außenskala" und eine Klassifizierung des Abstandes in eine von einer Anzahl (mindestens zwei) von Distanzbereichen. Jede dieser Ausgaben wird in einer graphischen Schnittstelle verwendet, um einen Benutzer zu führen, der Farbenänderungen in dem Wiedergabesystem vornimmt. Das System umfasst kein Verfahren zum Ersetzen einer gegebenen Farbe, die außerhalb einer Skala liegt, durch eine innerhalb der Skala liegende Farbe.
  • 27 zeigt, wie ein detailgerichtetes hierarchisches Distanzfeld 2700 verwendet werden kann, um eine Farbskala 2701 darzustellen. In dieser Anwendung drücken die Werte der Zellen mit Vorzeichen versehene Abstände zu einem am nächsten liegenden Punkt auf der Skalenoberfläche aus. Als Vorteil kann das Skalen-HDF die Einzelheit 2702 auf der Oberfläche viel besser und mit verringerten Speicherkosten darstellen als Verfahren im Stand der Technik. Durch Nutzung einiger der oben beschriebenen grundlegenden Methoden kann eine gegebene Farbe geprüft werden, um zu sehen, ob sie innerhalb oder außerhalb der Farbskala-Fläche liegt; und wenn die gegebene Farbe außerhalb der Skala liegt, kann der am nächsten liegende Punkt auf der Farbskala-Fläche herausgefunden und durch einen Farbsubstitutions-Algorithmus genutzt werden, um jede beliebige gegebene Farbe zu ersetzen.
  • Vorteile von hierarchischen Distanzfeldern
  • Erfindungsgemäße hierarchische Distanzfelder kombinieren die Vorteile von parametrischen Oberflächen und impliziten Oberflächen sowie abgetasteten Volumen. HDF können die Innenräume eines Objekts bis auf ein beliebiges gewünschtes Auflösungsniveau darstellen, indem eine dünne Datenstruktur verwendet wird. Mit den HDF ist es leicht, zwischen dem Innenraum und dem Außenseite von Objekten zu differenzieren. Wegen ihrer räumlichen Organisation besitzen HDF eine leichte und natürliche Umwandlung in herkömmliche Oberflächendarstellungen. Die Verwendung einer HDF-Darstellung in abgetasteten Volumen lässt kleinere Abtastraten mit einer genaueren und präziseren Oberflächendarstellung zu, als Darstellungen von Verfahren im Stand der Technik, die auf Intensität basieren. Dadurch, dass anstelle einer festen Auflösung auf ein lokales Oberflächendetail angepasst abgetastet wird, wird ermöglicht, dass das HDF niedrige Abtastraten in der Nähe von relativ flachen Oberflächen aufweist, was zu einer erheblichen Verringerung des Speicherbedarfs resultiert. Die HDF-Datenstruktur stellt eine effiziente Speicherspeicherung und einen gut funktionierenden Zugriff bereit. Die HDF ermöglichen eine praktische abgetastete Darstellung von großen Objekten mit feinem Oberflächendetail. Zum Beispiel kann ein relativ flaches Objekt mit Abmessungen in der Größenordnung von einem Meter durch ein HDF gut funktionierend dargestellt werden, auch wenn das Objekt ein gewisses Oberflächendetail in einer Auflösung von Millimetern aufweist.
  • Diese Erfindung ist unter Verwendung spezifischer Begriffe und Beispiele beschrieben worden. Es soll verständlich werden, dass verschiedene andere Anpassungen und Modifizierungen innerhalb des Geistes und Umfangs der Erfindung vorgenommen werden können. Folglich ist es die Aufgabe der angefügten Patentansprüche, alle diese Variationen und Modifizierungen wie sie innerhalb des wahren Geistes und Umfangs der Erfindung vorkommen, abzudecken.

Claims (93)

  1. Verfahren zum Erzeugen einer detailgerichteten hierarchischen Darstellung eines Distanzfeldes, das durch einen Begrenzungskasten umschlossen ist, welches die Schritte aufweist: Teilen des umschlossenen Distanzfeldes in mehrere Zellen, wobei jede Zelle eine Größe entsprechend dem Detail des Distanzfeldes und einen Ort mit Bezug auf den Begrenzungskasten hat; Abtasten eines Satzes von Werten des umschlossenen Distanzfeldes für jede Zelle; Spezifizieren, für jede Zelle, eines Verfahrens, um das von der Zelle umschlossene Distanzfeld zu rekonstruieren; und Speichern für jede Zelle, der Größe, des Ortes, des Satzes von Werten und des Verfahrens zum Rekonstruieren in einem Speicher, um die Rekonstruktion des Distanzfeldes durch Anwenden der Rekonstruktionsverfahren für die Zellen zu ermöglichen.
  2. Verfahren nach Anspruch 1, bei dem die Größe jeder Zelle durch Scheitelpunkte der Zelle spezifiziert ist, und der Ort der Zelle durch Scheitelpunkte der Zelle und Scheitelpunkte des Begrenzungskastens spezifiziert ist.
  3. Verfahren nach Anspruch 1, bei dem das Detail des Distanzfeldes durch einen Gradienten des Distanzfeldes bestimmt ist.
  4. Verfahren nach Anspruch 1, bei dem das Verfahren zum Rekonstruieren für alle Zellen identisch ist.
  5. Verfahren nach Anspruch 1, bei dem das Verfahren zum Rekonstruieren einer individuellen Zelle von dem Satz von Werten der individuellen Zelle abhängt.
  6. Verfahren nach Anspruch 2, bei dem das Distanzfeld an den Scheitelpunkten der Zellen abgetastet wird.
  7. Verfahren nach Anspruch 1, bei dem das Distanzfeld, der Begrenzungskasten und die Zellen zweidimensional sind.
  8. Verfahren nach Anspruch 1, bei dem das Distanzfeld, der Begrenzungskasten und die Zellen dreidimensional sind.
  9. Verfahren nach Anspruch 1, bei dem jede Zelle identisch geformt ist.
  10. Verfahren nach Anspruch 1, bei dem jede Zelle quadratisch ist.
  11. Verfahren nach Anspruch 1, bei dem jede Zelle ein N-dimensionaler rechteckiger fester Körper ist.
  12. Verfahren nach Anspruch 1, bei dem jede Zelle ein N-dimensionales Polyeder ist.
  13. Verfahren nach Anspruch 1, bei dem die Zellen den Begrenzungskasten vollständig besiedeln.
  14. Verfahren nach Anspruch 1, bei dem ein individueller Wert ein mit Vorzeichen versehener Abstand zu einer Oberfläche eines Objekts ist.
  15. Verfahren nach Anspruch 14, bei dem ein individueller Wert ein nahester Abstand zu der Oberfläche eines Objekts ist.
  16. Verfahren nach Anspruch 14, bei dem das Detail des Distanzfeldes durch den Grad der Krümmung der Oberfläche eines Objekts bestimmt ist.
  17. Verfahren nach Anspruch 1, bei dem die Größe, der Ort, das Verfahren zum Rekonstruieren und die Werte, die mit jeder Zelle assoziiert sind, in einem Speicher als ein Baum gespeichert sind.
  18. Verfahren nach Anspruch 17, bei dem jede Zelle zweidimensional ist und der Baum ein Vierfachbaum ist.
  19. Verfahren nach Anspruch 17, bei dem die Zelle dreidimensional ist und der Baum ein Achtfachbaum ist.
  20. Verfahren nach Anspruch 18 oder 19, bei dem der Begrenzungskasten in dem Baum als eine Wurzelzelle dargestellt ist und die Zellen absteigende Knoten der Wurzelzelle sind.
  21. Verfahren nach Anspruch 1, bei dem die Werte mit Vorzeichen versehene Abstände zu einer Oberfläche eines Objekts enthalten, und das weiterhin die Schritte aufweist: Identifizieren von Zellen, die vollständig außerhalb des Objekts sind, als äußere Zellen; Identifizieren von Zellen, die vollständig innerhalb des Objekts sind, als innere Zellen; und Identifizieren von Zellen, die die Oberfläche des Objekts schneiden, als Oberflächenzellen.
  22. Verfahren nach Anspruch 1, bei dem ein individuelles Verfahren zum Rekonstruieren eine lineare Funktion ist.
  23. Verfahren nach Anspruch 1, bei dem ein individuelles Verfahren zum Rekonstruieren eine quadratische Funktion ist.
  24. Verfahren nach Anspruch 1, bei dem ein individuelles Verfahren zum Rekonstruieren eine kubische Funktion ist.
  25. Verfahren nach Anspruch 1, bei dem ein individuelles Verfahren zum Rekonstruieren einer Filterfunktion ist.
  26. Verfahren nach Anspruch 1, bei dem die Werte einen mit Vorzeichen versehenen Abstand zu einer Oberfläche eines Objekts enthalten, die Oberfläche ein Detail enthält, und das weiterhin den Schritt aufweist: Spezifizieren des Verfahrens zum Rekonstruieren gemäß dem individuellen Oberflächendetail.
  27. Verfahren nach Anspruch 26, bei dem das individuelle Oberflächendetail eine Ecke der Oberfläche ist.
  28. Verfahren nach Anspruch 26, bei dem das individuelle Oberflächendetail eine gerundete Ecke ist.
  29. Verfahren nach Anspruch 26, bei dem das individuelle Oberflächendetail eine Kante ist.
  30. Verfahren nach Anspruch 26, bei dem das individuelle Oberflächendetail eine Spitze ist.
  31. Verfahren nach Anspruch 1, bei dem die Werte einen mit Vorzeichen versehenen Abstand zu einer Oberfläche eines Objekts enthalten und eine Abstandsmetrik ein euklidischer Abstand ist.
  32. Verfahren nach Anspruch 1, bei dem die Werte einen mit Vorzeichen versehenen Abstand zu einer Oberfläche eines Objekts enthalten und eine Abstandsmetrik ein quadratischer euklidischer Abstand ist.
  33. Verfahren nach Anspruch 1, bei dem die Werte einen mit Vorzeichen versehenen Abstand zu einer Oberfläche eines Objekts enthalten und eine Abstandsmetrik ein Manhattan-Abstand ist.
  34. Verfahren nach Anspruch 1, bei dem die Werte einen mit Vorzeichen versehenen Abstand zu einer Oberfläche eines Objekts enthalten und eine Abstandsmetrik ein Schachbrett-Abstand ist.
  35. Verfahren nach Anspruch 1, bei dem die Werte einen mit Vorzeichen versehenen Abstand zu einer Oberfläche eines Objekts enthalten und eine Abstandsmetrik eine einwertige N-dimensionale Funktion ist.
  36. Verfahren nach Anspruch 1, bei dem die Größe, der Ort, das Verfahren zum Rekonstruieren und der Satz von Werten, die mit jeder Zelle assoziiert sind, in einem Speicher als eine verbundene Liste gespeichert sind.
  37. Verfahren nach Anspruch 1, bei dem ein individueller Wert des Satzes einen Gradienten des Abstandsfeldes enthält.
  38. Verfahren nach Anspruch 1, bei dem ein individueller Wert des Satzes eine Teilableitung des Abstandsfeldes enthält.
  39. Verfahren nach Anspruch 1, bei dem ein individueller Wert des Satzes einen mit Vorzeichen versehenen Abstand zu einer Oberfläche eines Objekts enthält, und das weiterhin den Schritt aufweist: Assoziieren von Erscheinungsparametern des Objekts mit jeder Zelle.
  40. Verfahren nach Anspruch 39, bei dem die Erscheinungsparameter die Farbe, den Glanz, die Durchlässigkeit und Strukturkoordinaten des Objekts enthalten.
  41. Verfahren nach Anspruch 1, bei dem die Werte mit Vorzeichen versehene Abstände zu einer Oberfläche eines Objekts enthalten, und das weiterhin den Schritt aufweist: Assoziieren von Berechnungscharakteristiken des Objekts mit jeder Zelle.
  42. Verfahren nach Anspruch 41, bei dem die Berechnungscharakteristiken die Elastizität, den Elastizitätsmodul und die Dichte enthalten.
  43. Verfahren nach Anspruch 41, bei dem die Berechnungscharakteristiken verwendet werden, um die Statik des starren Körpers des Objekts zu simulieren.
  44. Verfahren nach Anspruch 41, bei dem die Berechnungscharakteristiken verwendet werden, um die dynamische Verformung des Objekts zu simulieren.
  45. Verfahren nach Anspruch 1, bei dem die Werte mit Vorzeichen versehene Abstände zu einer Oberfläche eines Objekts enthalten, und das weiterhin die Schritte aufweist: Messen einer Differenz zwischen einem Attribut der Oberfläche des Objekts, das durch eine individuelle Zelle dargestellt wird, und einem entsprechenden Attribut der Oberfläche gemäß dem Distanzfeld; und Speichern der Differenz als einen Oberflächendarstellungsfehler mit der individuellen Zelle.
  46. Verfahren nach Anspruch 45, bei dem die Differenz eine Differenz von Abständen enthält.
  47. Verfahren nach Anspruch 45, bei dem die Differenz eine Differenz von Erscheinungsparametern enthält.
  48. Verfahren nach Anspruch 1, das weiterhin die Schritte aufweist: Auswählen eines Punktes in dem Begrenzungskasten; Identifizieren einer individuellen Zelle, die den ausgewählten Punkt umschließt; und Auswerten des Rekonstruktionsverfahrens der individuellen Zelle an dem Punkt mit dem Satz von Werten der individuellen Zelle, um das Distanzfeld an dem ausgewählten Punkt zu rekonstruieren.
  49. Verfahren nach Anspruch 1, bei dem die Teilung weiterhin die Schritte aufweist: Teilen, von oben nach unten, des Begrenzungskas tens derart, dass jede Teilung kleinere Zellen ergibt, bis ein Teil des Distanzfeldes, das von jeder Zelle umschlossen ist, durch das Verfahren zum Rekonstruieren im Wesentlichen bis zu einem vorbestimmten Oberflächendarstellungsfehler rekonstruiert werden kann.
  50. Verfahren nach Anspruch 49, bei dem jede fortschreitende Teilung Zellen gleicher Größe ergibt.
  51. Verfahren nach Anspruch 49, bei dem ein punktbasiertes Verfahren bestimmt, ob eine individuelle Zelle weiter geteilt werden soll.
  52. Verfahren nach Anspruch 49, bei dem ein zellenbasiertes Verfahren bestimmt, ob eine individuelle Zelle weiter geteilt werden soll.
  53. Verfahren nach Anspruch 49, bei dem ein gradientenbasiertes Verfahren bestimmt, ob eine individuelle Zelle weiter geteilt werden soll.
  54. Verfahren nach Anspruch 49, bei dem ein detailbasiertes Verfahren bestimmt, ob eine individuelle Zelle weiter geteilt werden soll.
  55. Verfahren nach Anspruch 1, bei dem die Teilung weiterhin die Schritte aufweist: Teilen des Begrenzungskastens in Zellen gleicher Größe derart, dass ein Teil des Distanzfeldes, das von jeder Zelle umschlossen ist, durch das Verfahren zum Rekonstruieren im Wesentlichen bis zu einem vorbestimmten Oberflächendarstellungsfehler rekonstruiert werden kann; und Kombinieren, von unten nach oben, von Gruppen von benachbarten Zellen in größere Zellen, solange wie der Teil des Distanzfeldes, der von der größeren Zelle umschlossen ist, im Wesentlichen bis zu dem Oberflächendarstellungsfehler rekonstruiert werden kann.
  56. Verfahren nach Anspruch 55, bei dem ein punktbasiertes Verfahren bestimmt, ob eine individuelle Gruppe von Zellen weiter kombiniert werden soll.
  57. Verfahren nach Anspruch 55, bei dem ein zellenbasiertes Verfahren bestimmt, ob eine individuelle Gruppe von Zellen weiter kombiniert werden soll.
  58. Verfahren nach Anspruch 55, bei dem ein gradientenbasiertes Verfahren bestimmt, ob eine individuelle Gruppe von Zellen weiter kombiniert werden soll.
  59. Verfahren nach Anspruch 55, bei dem ein detailbasiertes Verfahren bestimmt, ob eine individuelle Gruppe von Zellen weiter kombiniert werden soll.
  60. Verfahren nach Anspruch 1, bei dem die Werte mit Vorzeichen versehene Abstände zu einer Oberfläche eines Objekts enthalten, und das weiterhin die Schritte aufweist: Identifizieren von Zellen, die die Oberfläche schneiden, als Oberflächenzellen; Messen einer Differenz zwischen einem Attribut der Oberfläche des Objekts, das durch jede Oberflächenzelle dargestellt wird, und einem entsprechenden Attribut der Oberfläche gemäß dem Distanzfeld; Speichern der Differenz als einen Oberflächendarstellungsfehler mit jeder Zelle; Auswählen von Oberflächenzellen mit Oberflächendarstellungsfehlern, die geringer als ein vorbe stimmter Schwellenwert sind; Impfen jeder ausgewählten Oberflächenzelle mit mehreren Punkten an Orten innerhalb der Zelle; Minimieren einer Oberflächenenergie durch Ändern des Ortes und der Zahl der Punkte, bis die Änderungsrate der Oberflächenenergie geringer als ein vorbestimmter Energieschwellenwert ist; und Auswählen einer Oberflächendarstellung, um die Punkte zu verbinden, wenn die Oberflächenenergie ein Minimum ist, um das dargestellte Distanzfeld in eine Oberflächendarstellung umzuwandeln.
  61. Verfahren nach Anspruch 60, bei dem die Oberflächendarstellung Polygone verwendet.
  62. Verfahren nach Anspruch 60, bei dem die Oberflächendarstellung parametrische Flecken verwendet.
  63. Verfahren nach Anspruch 60, bei dem die Oberflächenenergie von Abständen zwischen benachbarten Punkten abhängig ist.
  64. Verfahren nach Anspruch 60, bei dem die Oberflächenenergie von Abständen von den Punkten zu der Oberfläche abhängig ist.
  65. Verfahren nach Anspruch 60, bei dem während des Minimierens die Punkte auf die Zelle begrenzt sind, in der die Punkte geimpft wurden.
  66. Verfahren nach Anspruch 60, bei dem die Anzahl von geimpften Punkten proportional zu dem Detail eines Teils eines von einer individuellen Zelle umschlossenen Distanzfeldes ist.
  67. Verfahren nach Anspruch 1, bei dem die Werte mit Vorzeichen versehene Abstände zu einer Oberfläche eines Objekts enthalten, und das weiterhin die Schritte aufweist: Identifizieren von Zellen, die die Oberfläche schneiden, als Oberflächenzellen; Messen einer Differenz zwischen einem Attribut der Oberfläche des Objekts, das durch jede Oberflächenzelle dargestellt ist, und einem entsprechenden Attribut der Oberfläche gemäß dem Distanzfeld; Speichern der Differenz als einen Oberflächedarstellungsfehler mit jeder Zelle; Auswählen von Oberflächenzellen mit Oberflächendarstellungsfehlern, die kleiner als ein vorbestimmter Schwellenwert sind; Impfen jeder ausgewählten Oberflächenzelle mit einem Scheitelpunkt, der sich in der Mitte jeder ausgewählten Zelle befindet; Verbinden von benachbarten Scheitelpunkten, um Flecken zu bilden; Minimieren einer Oberflächenenergie der Flecken durch Ändern des Ortes der Scheitelpunkte, bis die Änderungsrate der Oberflächenenergie kleiner als ein vorbestimmter Energieschwellenwert ist; Rekonstruieren des Distanzfeldes an den geänderten Orten der Scheitelpunkte; Berechnen von Oberflächennormalen zu den Scheitelpunkten an den geänderten Orten anhand von Gradienten des rekonstruierten Distanzfeldes; Erzeugen einer parametrischen Gleichung für jeden Flecken anhand der geänderten Orte der Scheitelpunkte und der Normalen; Bestimmen einer Differenz zwischen einer Lösung der parametrischen Gleichung und einem Teil der Oberfläche, die durch entsprechende Zellen dargestellt ist; und wenn die Differenz größer als vorbestimmter Passschwellenwert ist, Teilen der Zelle in gleich große kleinere Zellen und Wiederholen des Auswahl-, Impf-, Verbindungs-, Minimierungs-, Rekonstruierungs-, Berechnungs-, Erzeugungs- und Bestimmungsschritts, bis die Differenz geringer als der oder gleich dem vorbestimmten Passschwellenwert ist, um das dargestellte Distanzfeld in parametrische Flecken umzuwandeln.
  68. Verfahren nach Anspruch 1, bei dem die Werte mit Vorzeichen versehene Abstände zu einer Oberfläche eines Objekts enthalten, und das weiterhin die Schritte aufweist: Identifizieren von Zellen, die die Oberfläche schneiden, als Oberflächenzellen; Messen einer Differenz zwischen einem Attribut der Oberfläche des Objekts, das durch jede Oberflächenzelle dargestellt ist, und einem entsprechenden Attribut der Oberfläche gemäß dem Distanzfeld; Speichern der Differenz als einen Oberflächendarstellungsfehler mit jeder Zelle; Auswählen von Oberflächenzellen mit Oberflächendarstellungsfehlern, die kleiner als ein vorbestimmter Schwellenwert sind; Impfen jeder ausgewählten Oberflächenzelle mit mehreren Knoten; Verbinden benachbarter Knoten, um ein Oberflächennetz zu bilden; Minimieren einer Oberflächenenergie des Oberflächennetzes durch Ändern des Ortes der Knoten, bis die Änderungsrate der Oberflächenenergie kleiner als ein vorbestimmter Energieschwellenwert ist; und Auswählen einer Oberflächendarstellung für das Oberflächennetz, wenn die Oberflächenenergie ein Minimum ist, um das dargestellte Distanzfeld in eine Oberflächendarstellung umzuwandeln.
  69. Verfahren nach Anspruch 1, bei dem die Werte mit Vorzeichen versehene Abstände zu einer Oberfläche eines Objekts enthalten, das weiterhin die Schritte aufweist: Identifizieren von Zellen, die die Oberfläche schneiden, als Oberflächenzellen; Messen einer Differenz zwischen einem Attribut der Oberfläche des Objekts, das durch jede Oberflächenzelle dargestellt ist, und einem entsprechenden Attribut der Oberfläche gemäß dem Distanzfeld; und Speichern der Differenz als einen Oberflächendarstellungsfehler mit jeder Zelle; Auswählen von Oberflächenzellen mit Oberflächendarstellungsfehlern, die kleiner als ein vorbestimmter Schwellenwert sind; Markieren jeder ausgewählten Zelle mit einem Mehrdeutigkeitsauflösungscode; Erzeugen, für jede Zelle, von mehreren grafischen Grundelementen, die die durch die Zelle dargestellte Oberfläche annähern; Prüfen benachbarter grafischer Grundelemente mit unterschiedlichen Auflösungen, um Spalte zwischen den benachbarten grafischen Grundelementen zu identifizieren; und Erzeugen, für jeden Spalt, von mehreren zusätzlichen grafischen Grundelementen, um die Spalte zu füllen.
  70. Verfahren nach Anspruch 1, bei dem die Werte mit Vorzeichen versehene Abstände zu einer Oberfläche eines Objekts enthalten, das weiterhin die Schritte aufweist: Identifizieren von Zellen, die die Oberfläche des Objekts schneiden, als Oberflächenzellen; Erzeugen von Strahlen gemäß einem Sichtpunkt und Bildebenenparametern; Kreuzen des dargestellten Distanzfeldes mit den Strahlen, um die Oberflächenzellen mit kreuzenden Strahlen zu identifizieren; Wiederparameterisieren jedes Rekonstruktionsverfahrens entlang der die Oberflächenzellen kreuzenden Strahlen; Bestimmen von Punkten, an denen die die Oberflächenzellen kreuzenden Strahlen die Oberfläche schneiden; Interpolieren von Erscheinungsparametern an den Schnittpunkten unter Verwendung der entsprechenden Rekonstruktionsverfahren; und Darstellen des Objekts gemäß den interpolierten Erscheinungsparametern an den Punkten.
  71. Verfahren nach Anspruch 70, bei dem die Bestimmung eine Bezier-Beschneidung verwendet.
  72. Verfahren nach Anspruch 70, bei dem die Bestimmung eine global konvergierende Newton-Raphson-Annäherung verwendet.
  73. Verfahren nach Anspruch 70, bei dem die Bestimmung eine konjugierte Gradientenannäherung verwendet.
  74. Verfahren nach Anspruch 1, das weiterhin den Schritt aufweist: Bestimmen eines Distanzfeldgradienten an irgendeinem Punkt innerhalb des Begrenzungskastens unter Verwendung des Rekonstruktionsverfahrens einer individuellen Zelle, die den Punkt enthält.
  75. Verfahren nach Anspruch 1, das weiterhin den Schritt aufweist: Bestimmen einer Teilableitung an irgendeinem Punkt innerhalb des Begrenzungskastens unter Verwendung des Rekonstruktionsverfahrens einer individuellen Zelle, die den Punkt enthält.
  76. Verfahren nach Anspruch 1, das weiterhin den Schritt aufweist: Bestimmen einer gemischten Teilableitung an irgendeinem Punkt innerhalb des Begrenzungskastens unter Verwendung des Rekonstruktionsverfahrens einer individuellen Zelle, die den Punkt enthält.
  77. Verfahren nach Anspruch 1, bei dem die Werte mit Vorzeichen versehene Abstände zu einer Oberfläche eines Objekts enthalten, und das weiterhin die Schritte aufweist: Identifizieren von Zellen, die die Oberfläche des Objekts schneiden, als Oberflächenzellen; Erzeugen von Strahlen für einen Sichtpunkt und Bildebenenparameter; Erzeugen von Strahlenabtastpunkten für einen Teil der Strahlen, die die Oberflächenzellen schneiden; und Interpolieren von Erscheinungsparametern für jeden Abtastpunkt, um das dargestellte Distanzfeld darzustellen.
  78. Verfahren nach Anspruch 1, bei dem die Werte mit Vorzeichen versehene Abstände zu einer Oberfläche eines Objekts enthalten, und das weiterhin die Schritte aufweist: Umwandeln des dargestellten Distanzfeldes in eine Oberflächendarstellung und Darstellen der Oberflächendarstellung.
  79. Verfahren nach Anspruch 78, bei dem die Oberflächendarstellung Polygone verwendet.
  80. Verfahren nach Anspruch 78, bei dem die Oberflächendarstellung parametrische Flecken verwendet.
  81. Verfahren nach Anspruch 78, bei dem die Oberflächendarstellung eine Punktwolke verwendet.
  82. Verfahren nach Anspruch 1, bei dem die Werte mit Vorzeichen versehene Abstände zu einer Oberfläche eines Objekts enthalten, so dass das Distanzfeld ein Objektdistanzfeld ist und der Begrenzkasten ein Objektbegrenzungskasten ist, das weiterhin die Schritte aufweist: Spezifizieren eines Aufbereitungswerkzeugs mit einer Oberfläche, die durch ein Werkzeug-Distanzfeld und einen Aufbereitungsvorgang ausgedrückt ist, wobei das von einem Werkzeug-Begrenzungskasten umschlossene Werkzeug-Distanzfeld eine Position und eine Orientierung relativ zu dem Objektbegrenzungskasten hat; Schneiden des Werkzeug-Distanzfeldes mit dem Objektdistanzfeld, um einen Aufbereitungsbegrenzungskasten zu bestimmen; Rekonstruieren des Objektdistanzfeldes innerhalb des Aufbereitungsbegrenzungskastens durch Anwenden der Rekonstruktionsverfahren auf die Werte der Zellen des Objektdistanzfelds, das von dem Aufbereitungsbegrenzungskasten umschlossen ist; Modifizieren des von dem Aufbereitungsbegrenzungskasten umschlossenen Objektdistanzfeldes gemäß der Position und Orientierung des Werkzeug-Distanzfeldes und dem Aufbereitungsvorgang; und Erzeugen der detailgerichteten hierarchischen Darstellung für das modifizierte Objektdistanzfeld.
  83. Verfahren nach Anspruch 82, das weiterhin die Schritte aufweist: Auswählen von Abtastpunkten in einem von dem Aufbereitungsbegrenzungskasten umschlossenen Objektdistanzfeld; Rekonstruieren des Objektdistanzfeldes an den Abtastpunkten, um Objektdistanzfeldwerte zu erzeugen; Auswerten des Werkzeug-Distanzfeldes an den Abtastpunkten, um Werkzeug-Distanzfeldwerte zu erzeugen; und Anwenden des Aufbereitungsvorgangs auf die Objektdistanzfeldwerte und die Werkzeug-Distanzfeldwerte, um die aufbereiteten Distanzfeldwerte an den Abtastpunkten zu erzeugen.
  84. Verfahren nach Anspruch 82, bei dem der Aufbereitungsvorgang die Werkzeugoberfläche von dem Objekt subtrahiert durch Bestimmen eines Minimums des Objektdistanzfelds und des Negativen des mit Vorzeichen versehenen Abstands zu der Oberfläche des Werkzeugs,
  85. Verfahren nach Anspruch 82, bei dem das Werkzeug-Distanzfeld durch eine implizite Funktion ausgedrückt ist.
  86. Verfahren nach Anspruch 82, das weiterhin die Schritte aufweist: Teilen des umschlossenen Werkzeug-Distanzfeldes in mehrere Werkzeugzellen, wobei jede Werkzeugzelle eine Größe entsprechend einem Detail des Werkzeug-Distanzfelds und einen Ort mit Bezug auf den Werkzeug-Begrenzungskasten hat; Abtasten, für jede Werkzeugzelle, eines Satzes von Werkzeugwerten des werkzeugumschlossenen Distanzfeldes; Spezifizieren, für jede Werkzeugzelle, eines Verfahrens zum Rekonstruieren des von der Werkzeugzelle umschlossenen Werkzeug-Distanzfeldes; und Speichern, für jede Werkzeugzelle, der Größe, des Ortes, des Satzes von Werkzeugwerten und des Verfahrens zum Rekonstruieren in einem Speicher, um die Rekonstruktion des Werkzeug-Distanzfeldes durch Anwenden der Rekonstruktionsverfahren der Werkzeugzellen auf die Werkzeugwerte zu ermöglichen.
  87. Verfahren nach Anspruch 1, bei dem ein individueller Wert ein mit Vorzeichen versehener Abstand zu einer Oberfläche einer Farbskala ist.
  88. Verfahren nach Anspruch 1, bei dem die Werte mit Vorzeichen versehene Abstände zu einer Oberfläche eines Objekts enthalten, und das weiterhin die Schritte aufweist: Auswählen eines willkürlichen Punktes in dem umschlossenen Distanzfeld; Identifizieren einer individuellen Zelle, die den ausgewählten Punkt umschließt; Auswerten des Rekonstruktionsverfahrens der identifizierten Zelle unter Verwendung der Werte der identifizierten Zelle, um einen kleinsten Abstand von dem willkürlichen Punkt zu der Oberfläche zu bestimmen.
  89. Verfahren nach Anspruch 88, bei dem der willkürliche Punkt außerhalb der Oberfläche ist, wenn der kleinste Abstand negativ ist, innerhalb der Oberfläche, wenn der Abstand positiv ist, und auf der Oberfläche, wenn der Abstand null ist.
  90. Verfahren nach Anspruch 1, weiterhin aufweisend die Schritte: Auswählen eines willkürlichen Punktes in dem umschlossen Distanzfeld; und Anordnen eines dem willkürlichen Punkt nahesten Punktes auf der Oberfläche des Objekts.
  91. Verfahren nach den Ansprüchen 88, 89 oder 90, bei dem das Distanzfeld eine Farbskala darstellt.
  92. Verfahren nach Anspruch 1, bei dem das Detail des Distanzfeldes durch eine Frequenzinhaltsbeschreibung des Distanzfeldes bestimmt ist.
  93. Speicher zum Speichern von Daten, zu denen durch ein in einem Prozessor ausgeführtes Programm zugegriffen wird, aufweisend; eine in dem Speicher gespeicherte Datenstruktur, wobei die Datenstruktur Informationen enthält, die durch das Programm verwendet werden, und die Datenstruktur enthält: eine erste Zelle, die einen Begrenzungskasten eines Distanzfeldes bildet; mehrere Zellen, wobei jede Zelle eine Teilung der ersten Zelle ist, die erste Zelle und jede der mehreren Zellen eine assoziierte Größe entsprechend einem Detail des Distanzfeldes und einen assoziierten Ort mit Bezug auf den Begrenzungskasten haben; Distanzfeldabtastungen, die mit der ersten Zelle und jeder der mehreren Zellen assoziiert sind; und ein Verfahren zum Rekonstruieren eines Teils des Distanzfeldes, das von der ersten Zelle und jeder der mehreren Zellen umschlossen ist, wobei die Datenstruktur die Rekonstruktion des Distanzfeldes ermöglicht durch Anwenden der Verfahren zum Rekonstruieren der Zellen auf die Werte.
DE60026197T 1999-08-06 2000-05-09 Detailgerichtete hierarchische Distanzfelder in der Objektmodellierung Expired - Lifetime DE60026197T2 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US370091 1999-08-06
US09/370,091 US6396492B1 (en) 1999-08-06 1999-08-06 Detail-directed hierarchical distance fields

Publications (2)

Publication Number Publication Date
DE60026197D1 DE60026197D1 (de) 2006-04-27
DE60026197T2 true DE60026197T2 (de) 2006-11-23

Family

ID=23458181

Family Applications (1)

Application Number Title Priority Date Filing Date
DE60026197T Expired - Lifetime DE60026197T2 (de) 1999-08-06 2000-05-09 Detailgerichtete hierarchische Distanzfelder in der Objektmodellierung

Country Status (5)

Country Link
US (1) US6396492B1 (de)
EP (1) EP1074946B1 (de)
JP (1) JP2001052196A (de)
AT (1) ATE319145T1 (de)
DE (1) DE60026197T2 (de)

Families Citing this family (69)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6771263B1 (en) * 1998-10-13 2004-08-03 Gmd-Forschungszentrum Informationstechnik Gmbh Processing volumetric image data with shadows
US6985898B1 (en) * 1999-10-01 2006-01-10 Infoglide Corporation System and method for visually representing a hierarchical database objects and their similarity relationships to other objects in the database
US6621492B2 (en) * 2000-12-18 2003-09-16 International Business Machines Corporation Method and apparatus using primitive bounding volumes to improve the accuracy of BSP-trees
US6624810B2 (en) * 2000-12-18 2003-09-23 International Business Machines Corporation Tightened bounding volumes for BSP-trees
US6724393B2 (en) * 2001-03-16 2004-04-20 Mitsubishi Electric Research Labs, Inc. System and method for sculpting digital models
US6608629B2 (en) * 2001-03-16 2003-08-19 Mitsubishi Electric Research Laboratories, Inc. Distance based constraints for adaptively sampled distance fields
US6741246B2 (en) * 2001-03-16 2004-05-25 Mitsubishi Electric Research Laboratories, Inc. Hierarchical control point editing of adaptively sampled distance fields
US6628280B2 (en) * 2001-03-16 2003-09-30 Mitsubishi Electric Research Laboratories, Inc. Method for selectively regenerating an adaptively sampled distance field
US6670962B2 (en) * 2001-03-16 2003-12-30 Mitsubishi Electric Research Laboratories, Inc. Surface following interaction method for adaptively sampled distance fields
US6836562B2 (en) * 2001-04-09 2004-12-28 Mitsubishi Electric Research Laboratories, Inc. Method for determining the shape of objects directly from range images
US7053908B2 (en) * 2001-04-12 2006-05-30 Polaroid Corporation Method and apparatus for sensing and interpolating color image data
US6639599B2 (en) * 2001-04-12 2003-10-28 Mitsubishi Electric Research Laboratories, Inc. Method and system for dynamically generating view dependent rendering elements from a static adaptively sampled distance field
US6873342B2 (en) * 2001-04-12 2005-03-29 Mitsubishi Electric Research Laboratories, Inc. Method for generating detail directed visibility elements for a graphics model
US20030117397A1 (en) * 2001-12-21 2003-06-26 Hubrecht Alain Yves Nestor Systems and methods for generating virtual reality (VR) file(s) for complex virtual environments
US6791549B2 (en) 2001-12-21 2004-09-14 Vrcontext S.A. Systems and methods for simulating frames of complex virtual environments
US6859202B2 (en) * 2002-04-23 2005-02-22 Alias Systems Corp. Conversion of a hierarchical subdivision surface to nurbs
US7421122B2 (en) * 2002-07-19 2008-09-02 Koninklijke Philips Electronics N.V. Simultaneous segmentation of multiple or composed objects by mesh adaptation
US8050469B2 (en) * 2002-07-19 2011-11-01 Koninklijke Philips Electronics Automated measurement of objects using deformable models
US6728608B2 (en) 2002-08-23 2004-04-27 Applied Perception, Inc. System and method for the creation of a terrain density model
KR100513732B1 (ko) * 2002-12-05 2005-09-08 삼성전자주식회사 3차원 객체 데이터 부호화 및 복호화 방법 및 장치
US7034830B2 (en) * 2003-03-25 2006-04-25 Mitsubishi Electric Research Laboratories, Inc. Method for generating a two-dimensional distance field within a cell associated with a corner of a two-dimensional object
US6982724B2 (en) * 2003-03-25 2006-01-03 Mitsubishi Electric Research Labs, Inc. Method for antialiasing an object represented as a two-dimensional distance field in object-order
US7006108B2 (en) 2003-03-25 2006-02-28 Mitsubishi Electric Research Laboratories, Inc. Method for generating a composite glyph and rendering a region of the composite glyph in image-order
US7042458B2 (en) * 2003-03-25 2006-05-09 Mitsubishi Electric Research Laboratories, Inc. Methods for generating an adaptively sampled distance field of an object with specialized cells
US7190367B2 (en) * 2003-03-25 2007-03-13 Mitsubishi Electric Research Laboratories, Inc. Method, apparatus, and system for rendering using a progressive cache
US7006095B2 (en) * 2003-03-25 2006-02-28 Mitsubishi Electric Research Laboratories, Inc. Method for typesetting a set glyphs represented as a set of two dimensional distance fields
US7002598B2 (en) * 2003-03-25 2006-02-21 Mitsubishi Electric Research Labs., Inc. Method for generating a composite glyph and rendering a region of the composite glyph in object-order
US7123271B2 (en) * 2003-03-25 2006-10-17 Mitsubishi Electric Research Labs, Inc. Method and apparatus for antialiasing a set of objects represented as a set of two-dimensional distance fields in image-order
US6917369B2 (en) * 2003-03-25 2005-07-12 Mitsubishi Electric Research Labs, Inc. Method and apparatus for rendering cell-based distance fields using texture mapping
US7034845B2 (en) * 2003-03-25 2006-04-25 Mitsubishi Electric Research Laboratories, Inc. Method for antialiasing an object represented as a two-dimensional distance field in image-order
US7030881B2 (en) 2003-03-25 2006-04-18 Mitsubishi Electric Research Laboratories, Inc. Method for converting two-dimensional objects to distance fields
US6933952B2 (en) * 2003-03-25 2005-08-23 Mitsubishi Electric Research Labs, Inc. Method for antialiasing a set of objects represented as a set of two-dimensional distance fields in object-order
CA2452736C (en) * 2003-12-31 2005-09-06 Yaron Nahum Mandel Ergonomic keyboard tilted forward and to the sides
US9024949B2 (en) * 2004-10-13 2015-05-05 Sony Corporation Object representation using distance functions
WO2007021135A1 (en) * 2005-08-17 2007-02-22 Pixoneer Geomatics, Inc. Processing method of data structure for real-time image processing
KR100738107B1 (ko) * 2006-02-15 2007-07-12 삼성전자주식회사 3차원 포인트 기반 모델링 장치 및 방법
US7928993B2 (en) * 2006-07-28 2011-04-19 Intel Corporation Real-time multi-resolution 3D collision detection using cube-maps
US9147288B1 (en) 2006-11-08 2015-09-29 Lucasfilm Entertainment Company Ltd. Subdivision of surfaces approximation
US7852336B2 (en) * 2006-11-28 2010-12-14 International Business Machines Corporation Dynamic determination of optimal spatial index mapping to processor thread resources
TWI442947B (zh) * 2006-12-07 2014-07-01 Daiichi Sankyo Co Ltd 安定性經改善之薄膜塗覆製劑
US20090027398A1 (en) * 2007-07-26 2009-01-29 Tufts University Method for recognizing a shape from a path of a digitizing device
US20090027397A1 (en) * 2007-07-26 2009-01-29 Tufts University Method for fitting a parametric representation to a set of objects generated by a digital sketching device
US20090027396A1 (en) * 2007-07-26 2009-01-29 Tufts University Method for fitting a parametric representation to a set of objects
US8174528B1 (en) * 2007-10-01 2012-05-08 Lucasfilm Entertainment Company Ltd. Retaining a surface detail
JP5183286B2 (ja) 2008-04-15 2013-04-17 三菱電機株式会社 文字表示装置
EP2282245B9 (de) * 2008-05-29 2019-12-11 Mitsubishi Electric Corporation Anzeigevorrichtung zur simulation eines schneidverfahrens, verfahren zur anzeige der simulation eines schneidverfahrens und programm zur anzeige der simulation eines schneidverfahrens
US9336624B2 (en) * 2008-10-07 2016-05-10 Mitsubishi Electric Research Laboratories, Inc. Method and system for rendering 3D distance fields
DE112009004371T5 (de) 2009-01-15 2012-08-02 Mitsubishi Electric Corporation Kollisionsbestimmungsvorrichtung und Kollisionsbestimmungsprogramm
US8269776B2 (en) 2009-03-31 2012-09-18 Mitsubishi Electric Research Laboratories, Inc. Method for generating a distance field of an object represented by stylized strokes
US7813555B1 (en) 2009-03-31 2010-10-12 Mitsubishi Electric Research Laboratories, Inc. Method for generating a distance field of an object represented by outlines
US8265909B2 (en) * 2009-05-19 2012-09-11 Mitsubishi Electric Research Laboratories, Inc. Method for reconstructing a distance field of a swept volume at a sample point
US8010328B2 (en) 2009-05-19 2011-08-30 Mitsubishi Electric Research Laboratories, Inc. Method for simulating numerically controlled milling using adaptively sampled distance fields
US8483858B2 (en) 2010-03-31 2013-07-09 Mitsubishi Electric Research Laboratories, Inc. System and method for optimizing machining simulation
US9122270B2 (en) 2012-01-13 2015-09-01 Mitsubishi Electric Research Laboratories, Inc. Hybrid adaptively sampled distance fields
US8935138B2 (en) 2012-03-28 2015-01-13 Mitsubishi Electric Research Laboratories, Inc. Analyzing volume removed during machining simulation
EP2685395A1 (de) * 2012-07-13 2014-01-15 Imec Verfahren für systemszenariobasierte Konstruktion von dynamischen eingebetteten Systemen
US10534805B2 (en) * 2013-02-28 2020-01-14 Netapp, Inc. Workload identification
JP6169876B2 (ja) * 2013-04-11 2017-07-26 日本コントロールシステム株式会社 電子ビーム描画装置、描画用図形データ作成装置、電子ビーム描画方法、描画用図形データ作成方法、およびプログラム
US9892215B2 (en) 2013-09-23 2018-02-13 Mitsubishi Electric Research Laboratories, Inc. System and method for determining feedrates of machining tools
US20150113372A1 (en) * 2013-10-18 2015-04-23 Apple Inc. Text and shape morphing in a presentation application
US9575486B2 (en) 2014-03-26 2017-02-21 Mitsubishi Electric Research Laboratories, Inc. Oscillator-based path planning for machining of a pocket shape in workpiece
CN105631936A (zh) * 2014-10-31 2016-06-01 富泰华工业(深圳)有限公司 点云修补方法及系统
US20170078593A1 (en) * 2015-09-16 2017-03-16 Indoor Reality 3d spherical image system
US10839598B2 (en) * 2016-07-26 2020-11-17 Hewlett-Packard Development Company, L.P. Indexing voxels for 3D printing
KR20180042733A (ko) 2016-10-18 2018-04-26 삼성전자주식회사 영상 처리 장치 및 방법
US11204896B2 (en) 2017-08-18 2021-12-21 International Business Machines Corporation Scalable space-time density data fusion
GB2571382B (en) * 2018-07-27 2020-02-19 Sony Interactive Entertainment Inc A parallel method of flood filing, and apparatus
US11360970B2 (en) * 2018-11-13 2022-06-14 International Business Machines Corporation Efficient querying using overview layers of geospatial-temporal data in a data analytics platform
DE102021124013B4 (de) * 2021-09-16 2023-08-17 Hyperganic Group GmbH Computer-implementiertes Verfahren zum Erstellen eines zweiten Voxel-Modells aus einem ersten Voxel-Modell

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4694404A (en) * 1984-01-12 1987-09-15 Key Bank N.A. High-speed image generation of complex solid objects using octree encoding
JPH0640871B2 (ja) * 1985-09-26 1994-06-01 株式会社東芝 画像表示装置
US4791583A (en) 1987-05-04 1988-12-13 Caterpillar Inc. Method for global blending of computer modeled solid objects using a convolution integral
FR2625345A1 (fr) * 1987-12-24 1989-06-30 Thomson Cgr Procede de visualisation en trois dimensions d'objets codes numeriquement sous forme arborescente et dispositif de mise en oeuvre
JP2734649B2 (ja) * 1989-06-27 1998-04-02 日本電気株式会社 曲面と直線の間の交点算出方式
JP3270514B2 (ja) * 1992-04-14 2002-04-02 三菱プレシジョン株式会社 模擬視界発生における地形モデルの作成方法、及び模擬視界発生における地形モデルの表示方法。
JP2651787B2 (ja) * 1993-09-03 1997-09-10 日本アイ・ビー・エム株式会社 対話的ボリューム・レンダリング方法及び装置
JPH07271999A (ja) * 1994-03-31 1995-10-20 Oki Electric Ind Co Ltd 3次元地形出力方法
US5542036A (en) 1994-07-05 1996-07-30 General Electric Company Implicit modeling of swept volumes and swept surfaces
JP3445010B2 (ja) * 1995-02-23 2003-09-08 キヤノン株式会社 ベジェ曲線と2次元図形との交点算出方法及びこれを実現する図形処理装置
US5740076A (en) 1995-11-30 1998-04-14 Candela, Ltd. System for describing a color gamut in a graphical data processing system
JPH09166421A (ja) * 1995-12-15 1997-06-24 Asahi Glass Co Ltd 表面三次元形状の測定方法
JPH10105684A (ja) * 1996-09-27 1998-04-24 Ando Electric Co Ltd 分割領域表示装置

Also Published As

Publication number Publication date
DE60026197D1 (de) 2006-04-27
ATE319145T1 (de) 2006-03-15
EP1074946B1 (de) 2006-03-01
EP1074946A2 (de) 2001-02-07
EP1074946A3 (de) 2004-08-11
US6396492B1 (en) 2002-05-28
JP2001052196A (ja) 2001-02-23

Similar Documents

Publication Publication Date Title
DE60026197T2 (de) Detailgerichtete hierarchische Distanzfelder in der Objektmodellierung
DE69924700T2 (de) Verfahren zur Darstellung von durch Oberflächenelemente repräsentierten grafischen Objekten
US6483518B1 (en) Representing a color gamut with a hierarchical distance field
EP1074947B1 (de) Modellierung von Objekten unter Verwendung von detailgerichteten hierarchischen Distanzfeldern
DE69924699T2 (de) Verfahren zur Schaffung von als Oberflächenelemente dargestellten grafischen Objekten
DE60107130T2 (de) Sichtbarkeitsprojektion und Bildrekonstruktion für Oberflächenelemente
DE60032832T2 (de) Darstellung einer gekrümmten Oberfläche in mehreren Auflösungen
DE69907415T2 (de) Bestimmung sichtbarer objekte für interaktive visualisation
DE112007002991B4 (de) Computergraphikschattenvolumen unter Verwendung von hierarchischem Okklusions-Culling
DE69830767T2 (de) Verfahren und Vorrichtung zum Zusammensetzen geschichteter synthetischer graphischer Filter
DE102019101873A1 (de) Abfragespezifische Verhaltensmodifizierung von Baumtraversierung
DE102017009910A1 (de) Bearbeiten von Digitalbildern unter Nutzung eines neuronalen Netzwerkes mit einer netzwerkinternen Erstellungsschicht
DE112012005657T5 (de) Computerprogrammprodukt und Verfahren zum Erzeugen und Simulieren eines Modells eines Objekts
DE69924230T2 (de) Verfahren zur Modellierung von durch Oberflächenelemente dargestellten grafischen Objekten
Chopra et al. Tetfusion: an algorithm for rapid tetrahedral mesh simplification
DE102005023964A1 (de) Volumenvisualisierung mittels Texturverschiebung
DE112005002076T5 (de) Unterteilung von Geometriebildern in Grafikhardware
DE602004003111T2 (de) Tiefen-basiertes Antialiasing
DE60024514T2 (de) Aufzeichnungsmedium, Verfahren und Einrichtung zur Bildverarbeitung mit integrierten Daten zur Formmodellierung
Garcia-Cantero et al. NeurotessMesh: a tool for the generation and visualization of neuron meshes and adaptive on-the-fly refinement
DE60026785T2 (de) Bildverarbeitungsgerät
EP2528042A1 (de) Verfahren und Vorrichtung zum Re-Meshing von 3D-Polygonmodellen
DE69830766T2 (de) Verfahren und Vorrichtung zum Bestimmen des Anwendungsumfangs geschichteter synthetischer graphischer Filter
Narayanaswami et al. Multiresolution modeling techniques in CAD
DE60305027T2 (de) Verfahren zur Bereitstellung eines Vektorbildes mit entfernten versteckten Linien

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8320 Willingness to grant licences declared (paragraph 23)