DE69226617T2 - Reihung und Planung von Bewegungen für das Umwandeln von konkaven Polyedern in ihre konvexen Hüllen - Google Patents

Reihung und Planung von Bewegungen für das Umwandeln von konkaven Polyedern in ihre konvexen Hüllen

Info

Publication number
DE69226617T2
DE69226617T2 DE69226617T DE69226617T DE69226617T2 DE 69226617 T2 DE69226617 T2 DE 69226617T2 DE 69226617 T DE69226617 T DE 69226617T DE 69226617 T DE69226617 T DE 69226617T DE 69226617 T2 DE69226617 T2 DE 69226617T2
Authority
DE
Germany
Prior art keywords
concave
shape
exclusion
edge
vertex
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
DE69226617T
Other languages
English (en)
Other versions
DE69226617D1 (de
Inventor
Andrew S. San Francisco California 94107 Glassner
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.)
Xerox Corp
Original Assignee
Xerox 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 Xerox Corp filed Critical Xerox Corp
Publication of DE69226617D1 publication Critical patent/DE69226617D1/de
Application granted granted Critical
Publication of DE69226617T2 publication Critical patent/DE69226617T2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects

Landscapes

  • Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Computer Graphics (AREA)
  • Geometry (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Processing Or Creating Images (AREA)

Description

  • Die vorliegenden Erfindung betrifft Computeränderungen von Formen und insbesondere Techniken, die bei der Erzeugung einer galten und ästhetisch gefälligen Metamorphose zwischen zwei Gegenständen zweckmäßig sind.
  • Mit dem Auftreten dreidimensionaler Computergraphiken ist es für viele Trickfilmhersteller und Wissenschaftler attraktiv geworden, computererzeugte Animationen zu erzeugen. Solche Animationen werden in der Unterhaltungs- und Werbeindustrie, für Kunst und zunehmend für wissenschaftliche Darstellungen verwendet. Die Transformation einer Form in eine andere ist allgemein als Metamorphose bekannt. Traditionelle, zweidimensionale und dreidimensionale Animationen haben seit langem die Metamorphose für Möglichkeiten bei der Erzählung von Geschichten ausgenutzt. Die Technik der Metamorphose ist leistungsstark, eine symbolische oder tatsächliche Entsprechung zwischen offensichtlich unterschiedlichen Gegenständen zu befördern. Die Metamorphose kann auch bei computergestützter Konstruktion verwendet werden, um z. B. eine Kraftfahrzeugkarosserie mit einem Fließheck zu bilden, um eine aerodynamische Autokarosserie zu bilden.
  • Ein Problem bei bestehenden Metamorphosetechniken ist, daß sie unzufriedenstellende Zwischenformen erzeugen können, es sei denn, eine Benutzerführung wird bereitgestellt. Jedoch kann, sobald die Formen kompliziert werden, das Maß an Benutzerführung äußerst arbeitsintensiv werden.
  • Somit ist es wünschenswert, ein automatisches Verfahren zu schaffen, das eine Form in eine andere transformiert, während Zwischenformen geliefert werden, die gewisse Wünsche erfüllen. Zum Zweck der Beschreibung wird der Anfangsgegenstand als "Startform" und der Endgegenstand als "Zielform" bezeichnet. Die Start- und Zielform werden zusammen Begrenzungsformen (oder Begrenzungen) genannt, und irgendeine Form die auf dem Weg erzeugt wird, wird ein Metamorph in bezug auf seine Begrenzungen genannt. Jeder bestimmte Metamorph kann durch einen Parameter u gekennzeichnet werden: wenn u = 0 und u = 1 ist der Metamorph geometrisch identisch mit der Start- bzw. Zielform; Zwischenwerte von u erzeugen dazwischenliegende (oder richtige) Metamorph.
  • Es ist erwünscht, daß die Änderungen zwischen Formen geometrisch, visuell und zeitlich stetig sind. Ohne diese Beschränkungen könnte man einfach die Startform während eines Augenblicks zeigen und dann scharf zu der Zielform schneiden. Weitere Kriterien können dadurch erwachsen, daß die möglichen verfahren betrachtet werden und entschieden wird, welche Merkmals bewahrt oder vermieden werden sollten. Um zu beginnen betrachte man ein verfahren, das die Startform anzeigt, sie durch gleichförmiges Skalieren zu einem Punkt schrumpft und dann das Verfahren umgekehrt ablaufen läßt, wobei die Zielform aus diesem Punkt zu ihrer endgültigen Form wächst. Das Verfahren ist glatt aber entartet. Die Art der Entartung kann verallgemeinert werden, indem ein komplementäres Verfahren betrachtet wird, das die Startform in allen Richtungen ins Unendliche vergrößert und dann die unendliche Form auf die Zielform zusammenschrumpft. Die unendliche Form kann in dem gleichen Sinn wie die Punktform als entartet betrachtet werden: alle geometrischen Informationen über die Form sind verloren worden.
  • Diese zwei Verfahren zeigen, daß man eine Entartung vermeiden sollte. Es ist möglich, daß eine engere Größenbedingung erwünscht ist: Metamorphe sollten nicht größer oder kleiner als die Größe der Begrenzungsformen wachsen. Ein Beispiel einer Regel, die durch diese Bedingung veranlaßt wurde, ist, daß der Radius der Begrenzungskugel eines jeden Metamorphs stets in dem Bereich liegen sollte, der durch die Radien der Begrenzungskugeln der Begrenzungsformen definiert ist.
  • Ein anderes Kriterium wird durch das folgende, glatte, entartungsfreie Verfahren dargestellt. Man nehme für den Moment an, daß jede Begrenzungsform aus einer Ansammlung von Polygonen oder Flecken hergestellt ist. Man lasse zuerst jeden einzelnen Flecken nach innen zu seiner Mitte schrumpfen, während er gleichzeitig ungleichförmig zu einer Kugel verdickt wird. Sobald die Form einer Ansammlung von Kugeln geworden ist, werden einige getrennt oder miteinander verbunden, bis die Anzahl der Kugeln der Anzahl Flecken in der Zielform äquivalent ist. Das Verfahren wird dann umgekehrt wiederholt, indem jede Kugel an ihrer Stelle abgeflacht wird, bis sie einen Flecken bildet, die gegebenenfalls alle miteinander verbunden sind, um die Zielform zu bilden. Wie das vorhergehende Verfahren wird diese Technik zu Transformation von Formen nicht bevorzugt. Das Problem ist hier die Trennung. Die Start- und Zielform sind verbundene Oberflächen, und es wird bevorzugt, daß die Metamorphe der gleichen Weise verbunden sind. Eine engere Bedingung dieses Prinzips ist, daß, wenn die Begrenzungsformen dasselbe topologische Geschlecht teilen, dann alle Metamorphe auch von diesem Gechlecht sein sollten.
  • Ein anderes Problem kann gezeigt werden, indem die Transformation in Fig. 1 betrachtet wird. Sie zeigt zwei Kegel CS und CG als die Start- bzw. Zielform und einige Metamorphe CM1, CM2, CM3, CM4, die durch ein mögliches Verfahren erzeugt worden sind. Bei diesem Beispiel wird die Spitze des Startkegels zu der Spitze des Zielkegels bewegt, wobei sich aber nicht alle Teile des Kegels mit derselben Geschwindigkeit bewegen. Die Metamorphe sehen seltsam aus, weil sie sich selbst schneiden, obgleich dies sogar keine der Begrenzungsformen (CS, CG) macht. Dies schlägt ein andere Prinzip vor. Wenn sich die Start- und Zielform nicht selbst schneiden, dann sollte keine von ihnen der Metamorph sein.
  • Somit sollte eine Metamorphose eine zeitlich und geometrisch fortlaufende Folge von Metamorphen erzeugen, die nicht entartet sind, sich nicht selbst schneiden und eine konstantes Gechlecht aufweisen, wenn die Begrenzungsformen dasselbe Gechlecht haben.
  • Wenn bestehende Formtransformationsverfahren betrachtet werden, lohnt es sich, das dreidimensionale Problem von dem viel einfacheren zweidimensionalen Interpolationsproblem einer Form zu unterscheiden.
  • Das zweidimensionale Interpolationsproblem einer Form kann zusammengefaßt werden, als daß die Transformation einer Kurve in eine andere gefunden wird. Solche Kurven können analytisch oder von Hand gezeichnet sein. Das einfachste zweidimensionale Verfahren nimmt stückweise geradlinige, geschlossene Kurven (Polygone) als Eingangsgröße. Jeder Scheitel bei der Startform wird an einem Scheitel bei der Zielform angepaßt. Metamorphe werden erzeugt, indem jeder Startscheitel in Richtung zu seinem entsprechenden Zielscheitel bewegt wird. Diese Methode weist viele Probleme auf.
  • Wie es in Fig. 2 gezeigt ist, erzeugt die Interpolation eines gleichseitigen Fünfecks in ein gleichseitiges Dreieck Polygone mit unregelmäßigen Formen. Zusätzlich muß die Bestimmung gemacht werden, welche Scheitel der Startform auf einen gemeinsamen Scheitel in der Zielform abgebildet werden sollen. In Fig. 2 ist der Fünfeckscheitel B mit C kombiniert und der Fünfeckscheitel D ist mit E kombiniert, um das Dreieck zu bilden. Die Abbildung in Fig. 2 ist nicht die einzig mögliche Abbildung aber jede Wahl wird viele- zu-einer sein, und somit eine gewisse Entartung erzeugen. Die Metamorphen können an vielen Problemen, einschließlich Eigenschnitte, leiden.
  • Betrachtet man eine Verallgemeinerung dieser Technik, die die gleiche Anzahl Scheitel an beiden Kurven konstruiert, so ist die Abbildung eins-zu-eins. Dieses zweidimensionale Verfahren beginnt damit, Parameterisierungen der Bogenlängen der zwei Kurven entweder analytisch oder numerisch zu finden. Die Startkurve wird dann in irgendeine Anzahl gleich großer Segmente unterteilt, und die Zielkurve wird ähnlich unterteilt. Dann werden die Knoten zwischen Segmenten von der Quelle zu dem Ziel interpoliert und die Kurve wird bei jedem Schritt rekonstruiert. Die Rekonstruktion kann stückweise geradlinig oder glatt sein. Fig. 3 zeigt ein Dreieck T, das in ein Fünfeck P durch dieses Verfahren umgewandelt worden ist. Jede Seite des Dreiecks ist in fünf Segmente unterteilt, deren Endpunkte bewegt werden, um Fünfeckseiten zu bilden, die drei Segmente aufweisen.
  • Diese einfache Technik verlangt üblicherweise eine Unterstützung von Hand, um gefällige Ergebnisse zu erzeugen. Fig. 4A zeigt die automatische Interpolation zweier Formen, wobei eine handelsübliche Ausführung dieser Technik verwendet wird, die Adobe Illustrator 88, Version 1.9.3., Adobe Systems, Inc., Mountain View, Ca., 1988 verwendet. Diese Transformation ist bei den meisten Gegebenheiten wahrscheinlich unannehmbar. Die Startform kollabiert in sich selbst schneidenden Metamorphen, obgleich weder die Startform noch die Zielform Eigenschnitte aufweisen. Um die Probleme in Fig. 4A zu steuern, ist dem Benutzer gestattet, ausdrücklich Knoten an gewissen Stellen auf den zwei Konturen anzuordnen und irgendeine Gruppe von Quellen- und Zielknoten zu verbinden. Dies liefert einen leichten und intuitiven Mechanismus für den Benutzer, eine Entsprechung zwischen bestimmten Merkmalen bei den zwei Konturen zu erzwingen und Eigenschnitte auszuschließen. Fig. 4B zeigt die gleichen Konturen, nachdem ein Künstler die Entsprechung von Hand hergestellt hat.
  • Wie bei vielen geometrischen Problemen lassen sich die oben beschriebenen, zweidimensionalen Lösungen nicht gut auf drei Dimensionen übertragen. Eine Scheitelinterpolation in drei Dimensionen ist noch komplizierter als in zwei Dimensionen. Schlimmer noch, es gibt keine offensichtliche Bereichsparameterisierung, die die gleiche Monotonität und ein einfaches Sortierkriterium wie die skalare Bodenlänge zeigt.
  • Eine dreidimensionale Scheitelinterpolation ist ein Abbildungsverfahren, das anwendbar ist, wenn Quellen- und Zielform beide Polyeder oder andere Formen sind, die durch Kontrollpunkte oder Scheitel beschrieben sind. Durch irgendein Mittel ist jeder Scheitel bei der Quelle mit einem Scheitel bei dem Ziel identifiziert. Um Metamorphe zu erzeugen, wird jeder Quellenscheitel, üblicherweise entlang einem geraden Weg, zu der Position seines entsprechenden Ziels bewegt. Das schwierige Problem bei der Scheitelinterpolation ist die Auswahl der Scheitelentsprechung. Die zwei extremen Lösungen sind eine rein automatische oder eine Methode von Hand. Die erstere hat einige Aufmerksamkeit durch Wissenschaftler erhalten, die letztere wird verbreitet als eine Minimalforminterpolationstechnik von vielen professionellen Verkäufen von Animationssoftware ausgeführt.
  • Eine Scheitelanpassung, ob automatisch oder benutzerunterstützt, sieht sich einer Mehrzahl von Problemen gegenüber. Eine automatische Scheitelinterpolation in drei Dimensionen leidet an den gleichen Problemen wie das oben beschriebene zweidimensionale Verfahren, einschließlich Eigenschnitte und Entartung. Man betrachte eine Transformation von einem Würfel in einem fünfseitigen Kegel - beide Gegenstände haben sechs Seiten. Es muß bestimmt werden, auf welche Weise die acht Scheitel des Würfels auf die sechs Scheitel des Kegels abzubilden sind. Schlimmer noch, es muß die Art bestimmt werden, in der die vierseitigen Polygone des Würfels in die fünfeckige Grundfläche des Kegels transformiert werden soll. Einfach gesagt kann keine Form von Scheitelabbildung - automatisch oder von Hand - diese Transformation ausführen. Ein Benutzer mag einschreiten und einen der Gegenstände abändern, wobei dies aber teuer ist und schwierig sein kann, wenn große Modelle betroffen sind.
  • Zu ihren Gunsten erlaubt die Scheitelinterpolation dem Benutzer, ausdrücklich die Merkmalsanpassung wie im zweidimensionalen Fall zu steuern. Bei der Transformation eines Bärenkopfes in einen Mäusekopf kann die Nase auf die Nase, die Ohren auf die Ohren usw. abgebildet werden. Diese Leistung ist nicht ohne ihren Preis: Um Metamorphe zu erzeugen, die wie dazwischen vorhandene Gesichter aussehen, müssen die Begrenzungsmodelle grob äquivalente Verbindungskurven haben, damit die Scheitel angepaßt werden. Um gute Ergebnisse bei den Scheitelanpassungstechniken zu erhalten, muß der Benutzer eine Interpolation planen, wenn die Modelle (Formen) erzeugt werden, Modelle bauen, die topologisch in den Hauptmerkmalen ähnlich sind, und dann mühsam zueinandergehörende Merkmale bei den zwei Modellen erkennen. Wenn man zwischen zwei beliebigen, bereits bestehenden Modellen transformieren möchte, muß die Anpassung auf einer ad hoc Grundlage gemacht werden, was manchmal die Konstruktion neuer Scheitel von Hand verlangt, um Entartungen während der Transformation zu verhindern. Selbst nach all dieser Mühe können Selbstschnitte und örtliche Entartungen ohne weiteres auftreten. Obgleich eine Scheitelinterpolation hübsche Transformationen erzeugen kann, wenn sie sorgfältig und mit Geschick verwendet wird, so sind das Maß an manueller Planung und Aufwand, die verlangt werden, gute Ergebnisse zu erzielen, in den meisten Situationen verhindernd teuer.
  • Eine automatische Scheitelanpassung ist eine interessante Entwicklungslinie, erscheint aber sehr schwierig. Eine einfache automatische Methode für die Scheitelanpassung ist, die Netze zu finden, die zwei Polyeder beschreiben und dann die Erzeugniskurve dieser Netze zu bauen. Konzeptionell beschreibt dieses Netz eine Oberfläche mit einem "kleinsten gemeinsamen Nenner". Die Größe dieser kombinierten Kurven und somit der kombinierten Form ist dem Produkt der Größen der Kurven der Begrenzungsformen proportional, wo die Größe die Summe der Scheitel, Seiten und Flächen ist. Diese Datenexplosion verbietet sich schnell in einem Produktionsumfeld, wo die Quellen- und Zielform jeweils aus 10.000 oder mehr Polygonen aufgebaut ist.
  • Es gibt viele Abänderungen dieser Methode, aber sie kommen alle zu zugehörigen Scheiteln (möglicherweise ausgedehnt) bei der Start- und Zielform, die Eigenschnitte und Entartungen erzeugen können.
  • Eine komplizierteres, automatisches System könnte eine breite Vielfalt Merkmale trennen und klassifizieren und dann Entsprechungen zwischen den Merkmalen in den zwei Formen finden. Techniken zur Gewinnung und Identifizierung von Merkmalen sind in dem weit beschränkteren zweidimensionalen Bereich der Bildanalyse schwierig. Gegenwärtig stehen keine dreidimensionalen Werkzeuge zur Verfügung, ein solches Verfahren zu lenken. Ohne eine stabile, gleichförmige Beschreibung der lokalen Formen und ihrer Klassifizierung sind automatische Merkmalsanpassungstechniken ad hoc Sammlungen heuristischer Größen, die nicht voraussagbare Ergebnisse erzeugen, wenn sie auf einen großen Formenbereich angewendet werden.
  • Aus diesen Gründen kann die Scheitelanpassung angesehen werden, daß sie eine gewalttätige Methode darstellt. Eine Scheitelinterpolation verlangt ein sich sich verbietendes Maß an Zeit und Aufwand des Benutzers, wenn von Hand ausgeführt, und erzeugt unvoraussagbare und unerwünschte Geisterbilder, wenn sie automatisch ausgeführt wird.
  • Das andere populäre Verfahren zur dreidimensionalen Forminterpolation schließt das Vermischen impliziter Funktionen ein. Die Grundidee ist, die Oberfläche der Start- und Zielformen jeweils als die Isofläche irgendeiner dreidimensionalen, skalaren Funktion zu definieren. Es sei angenommen, daß die Startform durch f(x, y, z) = 0 und die Endform als g(x, y, z) = 0 festgelegt ist. Dann kann eine leicht erzeugte Familie von Metamorphen m(u) als Isoflächen von m(u) = (1-u)f + ug beschrieben werden. Diese Technik besitzt viel, was sie empfiehlt. Es stehen viele Techniken zur Verfügung, um implizite Flächen, direkt und indirekt, zu erzeugen. Nimmt man an, daß man eine Ausführung einer dieser Verfahren hat, dann ist die Erzeugung von Metamorphen trivial. Die Technik verlangt keine Merkmalsanpassung und verarbeitet jegliche Art Geometrie oder Topologie. Tatsächlich zeigt die Methode die außerordentliche Fähigkeit, eine Gechlechtsänderung zwischen zwei Begrenzungsformen sanft zu modulieren. Fig. 5 zeigt Metamorphe, die durch dieses Verfahren erzeugt worden sind, wobei eine Kugel zu einem Torus interpoliert wurde.
  • Unglücklicherweise erzeugt diese Technik nicht immer solche gefälligen Sequenzen von Metamorphen. Fig. 6 zeigt die zweidimensionale Interpolation einer Hantel aus einer geraden Position in eine gebogene U Form. Man beachte, daß sich die Kugeln an den Enden der ursprünglichen Hantel von dem Hauptschaft trennen und in sich selbst verschwinden, wahrend die neuen Enden in dem Mittelraum erscheinen und wachsen, um sich später mit dem Rohr zu verbinden. Dies geschieht, weil die Metamorphen einfache Isoflächen der interpolierten, skalaren Felder sind - es gibt kein Konzept der Form oder Verbundenheit, die in diese Darstellung eingebaut ist. Die in Fig. 6 dargestellte Trennung kann zu unannehmbaren Proportionen sogar bei moderat komplexen Szenen wachsen. Die Richtung der Metamorphose kann bei einem solchen Übergang verloren gehen, wenn sich ein Gegenstand in viele kleine Wolken auflöst und sich ein anderer Gegenstand in das Aussehen gestreuten Staubs zerstäubt.
  • Das Problem kann etwas gezähmt werden, indem die impliziten Funktionen als eine Sammlung von Schlüsseln dargestellt werden: Σ(wi, ki ), wo jedes ki eine (typischerweise nichtlineare) Vektorfunktion mit verschiedenem Skalarwert darstellt. Wenn die Begrenzungsformen als eine Sammlung dieser Bausteinfunktionen aufgebaut sind, dann können Schlüssel bei der Start- und Zielform zu einander passen und man kann diese Schlüssel einzeln interpolieren. Obgleich diese Verfeinerung zu einer besserten Steuerung führt, gibt es keine Garantie, daß die interpolierten Formen weiterhin nicht getrennt sind. Ernsthafter gesehen, sind zueinandergehörende Schlüssel wie zueinandergehörende Scheitel. Deshalb ist die Schlüsselanpassung aus den gleichen Gründen unerwünscht, die zum Ausschluß der Scheitelinterpolation führten. Wie bei der Scheitelinterpolation können verschiedene heuristische Mittel versucht werden, um die Abbildung zwischen Schlüsseln zu finden, wobei aber diese Techniken die gleiche ad hoc Natur und unvoraussagbare Ergebnisse wie jene der Scheitelinterpolation aufweisen.
  • In "Establishing Correspondences by Topological Merging: A New Approach to 3-D Shape Transformation", von James R. Kent u. a. Proceedings of Graphics Interface 91 S. 271-278 werden topologische und geometrische Daten von zwei Originalmodellen bei der Herstellung von Scheitel-, Rand- und Seitenentsprechungen zwischen den Gegenständen verwendet. Dies ergibt Transformationen, die ihre Verknüpfbarkeit bei Zwischenschritten der Transformation beibehalten und die weniger Verzerrung anzeigen, als jene, die bei Verwendung anderer Verfahren erhalten werden. Dieses Verfahren verwendet eine Form einer Merkmalzugehörigkeit, die aus den oben erörterten Grünen unerwünscht ist. Dieses Verfahren ist auch auf sternförmige Polyeder ohne Löcher beschränkt und transformiert konkave Formen nicht in ihre konvexen Hüllen.
  • In "Solid-Interpolating Deformations: Construction and Animation of PIPs", von Anil Kaul u. a. EUROGRAPHICS 91, September 1991, werden Operationen auf der Grundlage einer Minkowski-Summe zur Bestimmung parameterisierter Interpolationspolyeder (PIPs) verwendet. Das Verfahren ist darauf beschränkt, ein konvexes Polyeder in ein anderes konvexes Polyeder umzuwandeln und ist nicht auf konkave Formen erweitert.
  • US Patent Nr. 4,901,251 von Sfarti beschreibt eine Vorrichtung und ein Verfahren zum eindeutigen verfahrensmäßigen Füllen komplexer Polygone in einem Graphikanzeigespeicher, wie es durch eine Aufzählung von P Schaltern definiert ist. Ein Koprozessor enthält Mittel, um einen ersten Scheitel aus der Aufzählung seiner P Scheitel auszuwählen und das komplexe Polygon in eine Gruppe von P-2 Dreiecke zu zerlegen. Dieses Verfahren überwindet mehrere Mehrdeutigkeiten, die mit Polygonen verbunden sind, die konkave Begrenzungen aufweisen, selbstschneidende Begrenzungen besitzen, überlappende Abschnitte aufweisen oder ein vollständig umschlossenes Loch enthalten. Diese Druckschrift ist auf die zweidimensionale Bildverarbeitung gerichtet und führt keine Metamorphose durch oder wandelt konkave Formen in ihre konvexen Hüllen um.
  • US Patent Nr. 4,962,468 von Beauregard u. a. beschreibt zwei Verfahren, die verwendet werden, wenn Polygone auf einer Graphikanzeige gefüllt werden. Das erste Verfahren prüft das Polygon auf Konvexität, indem eine konsistente Drehrichtung und einmal herum in der y Richtung geprüft wird. Das zweite Verfahren füllt Polygone, die in der x Richtung konkav sind und/oder sich schneidende Linien haben. Diese Druckschrift ist auf eine zweidimensionale Bildverarbeitung gerichtet und führt keine Metamorphosen aus oder wandelt keine konkaven Formen in ihre konvexen Hüllen um.
  • US Patent Nr. 4,974,177 von Nishiguchi beschreibt eine Abbildungsschaltung zur Texturabbildung. Eine Arbeitsendstation bestimmt entsprechende Beziehungen zwischen den Scheiteln eines Polygons einer dreidimensionalen Graphik und den Scheiteln eines zweidimensionalen Polygons, und es bestimmt auch die Neigungen der Liniensegmente, die die entsprechenden Scheitel des Polygons der dreidimensionalen Graphik verbinden, und die Neigungen der Liniensegmente, die die entsprechenden Scheitel des zweidimensionalen Polygons verbinden. Interpolationen werden angewendet und die erhaltenen Punkte werden als Startpunkte oder Endpunkte betrachtet, wodurch ein Bildmuster bei den Koordinaten der entsprechenden Punkte des zweidimensionalen Polygons auf einer Kathodenstrahlröhre angezeigt wird. Metamorphose und Formationstechniken für konvexe Hüllen sind nicht geoffenbart.
  • Zusammenzufassend ist die Scheitelinterpolation eine gewalttätige Technik, die häufig an Eigenschnitten und an Entartung leidet. Modelle müssen mit der besonderen Interpolationsfolge im Kopf konstruiert werden, so daß gleiche Merkmale zueinander gehörend gemacht werden können. Viele Methoden verlangen von einem Benutzer, daß er ausdrücklich Quellen- und Zielscheitel zueinander gehörend macht. Die automatische Scheitelanpassung scheint schwierige Mustergewinnungs- und Klassifizierungstechniken zu verlangen, die noch nicht zur Verfügung stehen. Die implizite Oberflächeninterpolation ist eine einfache Methode, die unter den richtigen Umständen sehr attraktive Metamorphe ohne Beschränkungen der Geometrie oder Topologie der betreffenden Formen erzeugen kann. Unglücklicherweise leidet sie gewöhnlich an Trennungen, und die einzigen vorgeschlagenen Lösungen sind Analogien zu der Scheitelanpassung mit den gleichen Problemen.
  • Es ist eine Zielsetzung der vorliegenden Erfindung, ein Verfahren zu schaffen, das verwendet werden kann, konkave Formen in ihre konvexen Hüllen in einer Weise umzuwandeln, die visuell stetig ist. Dieses Verfahren kann als Teil eines größeren Verfahrens zur Interpolation zwischen zwei Formen verwendet werden. Die zwei Formen werden in ihre entsprechenden konvexen Hüllen umgewandelt, wobei das Umwandlungsverfahren für konkav-zu-konvex der vorliegenden Erfindung verwendet wird. Dann wird ein anderes Verfahren zur Interpolation zwischen zwei konvexen Hüllen verwendet. Um die Interpolation von einer Form in die andere anzuzeigen, wird zuerst die Startform in ihre konvexe Hülle umgewandelt; dann wird die konvexe Hülle der Startform in die konvexe Hülle der Zielform umgewandelt; nachfolgend wird die konvexe Hülle der Zielform in die Zielform umgewandelt, indem man das Verfahren für konkav-zu-konvex für die Zielform umgekehrt ablaufen läßt.
  • Die vorliegende Erfindung schafft ein Verfahren gemäß Anspruch 1 der beigefügten Anspräche.
  • Die vorliegende Erfindung schafft des weiteren ein Verfahren gemäß Anspruch 2 der beigefügten Ansprüche.
  • Die neue Technik, die hier beschrieben ist, ist ausgelegt, zwei Polyedern ohne Benutzerführung zu interpolieren. Die Technik ist auf sich nicht selbst schneidende, in Dreiecke zerlegte Polyeder vom Geschlecht 0 beschränkt (d. h., eine einfach geschlossene Oberfläche, topologisch eine Kugel). Die erste Bedingung kann durch herkömmliche "Schrumpfverpackung" jeder verbundenen Form mit einer verformbaren, anpassungsmäßig abgetasteter Kugel erreicht werden. Die zweite Bedingung kann durch Anwenden eines üblichen Triangolierungsverfahrens erreicht werden.
  • Das Verfahren für konkav-zu-konvex erzeugt eine Familie von Polyedern, die einen stetigen Weg von dem Eingangspolyeder zu seiner konvexen Hülle bilden. Die Polyederfamilie wird bei den folgenden Randbedingungen gebildet: alle Polyeder in der Familie müssen trianguliert, vom Geschlecht 0, frei von Selbstschnitten und in dem Sinn nicht entartet sein, daß kein Element der Familie ein einzelner Punkt oder ein unendlicher Gegenstand ist. Von dem Eingangspolyeder wird angenommen, daß es gut geformt ist, d. h., daß jede Kante genau zwei Flächen aufweist und zwei Flächen genau eine Kante gemeinsam nutzen. Des weiteren wird von dem Eingangspolyeder angenommen, daß es bei seinen Flächen eine konsistente Scheitelanordnung hat, (die meisten Graphikpakete verlangen diese Information für andere Zwecke), so daß die Oberflächennormalen, die durch ein Vektorprodukt zweier aufeinanderfolgender Paare Scheitel bestimmt sind, stets örtlich nach außen zeigen.
  • Ein Schlüsselvorgang zur Umwandlung einer konkaven Form in ihre konvexe Hülle wird als eine Umstülpung bezeichnet. Der Umstülpungsvorgang (oder Bewegung) wandelt eine konkave Kante in eine konvexe Kante um, indem die zwei benachbarten Dreiecksflächen (oder Dreiecke), die die konkave Kante gemeinsam haben, durch zwei neue Dreiecksflächen ersetzt werden, die die konvexe Kante gemeinsam haben. Die konkave Kante ist zwischen zwei Scheiteln definiert, die den zwei benachbarten Dreiecksflächen gemeinsam sind, die sich die konkave Kante teilen. Diese zwei Scheitel werden als die gemeinsam genutzten Scheitel bezeichnet. Jede Dreiecksfläche weist auch einen einzelnen Scheitel auf, der den benachbarten Dreiecksflächen nicht gemeinsam ist. Somit werden für jedes Auftreten einer konkaven Kante zwei benachbarten Dreiecksflächen identifiziert, die wiederum durch zwei miteinander geteilte Scheitel und zwei nichtgemeinsamen Scheitel (einer für jede Dreiecksfläche) definiert sind. Der Umstülpungsvor gang erzeugt zwei neue Dreiecksseiten von den gleichen vier Scheiteln, die die ursprünglichen zwei benachbarten Dreiecksflächen definierten, die mit Ausnahme der ursprünglich nicht gemeinsamen Scheitel die gemeinsam genutzten Scheitel der neuen Dreiecksseiten sind, und die ursprünglichen gemeinsamen Scheitel sind die nichtgemeinsamen Scheitel der neuen Dreiecksseiten. Die miteinander geteilten Scheitel der zwei neuen Dreiecksseiten definieren die neue konvexe Kante.
  • Der Umstülpungsvorgang kann in einer visuell stetigen Weise ausgeführt werden, durch: a) Identifizierung des Mittelpunktes der konkaven Kante; b) Definieren von vier vorübergehenden Dreiecken, indem jedes der ursprünglichen zwei Dreiecke unter Verwendung des Mittelpunkts der konkaven Kante unterteilt wird; c) stetiges Bewegen der vier vorübergehenden Dreiecke, indem der Mittelpunkt der konkaven Kante zu dem Mittelpunkt der konvexen Kante bewegt wird (d. h., der Mittelpunkt des Liniensegments, das zwischen den nichtgemeinsamen Scheiteln der zwei ursprünglichen Dreiecke definiert ist); und d) Ersetzen der vier vorübergehenden Dreiecke durch die zwei neuen Dreiecke.
  • Die zwei neuen Dreiecke und die zwei ursprünglichen Dreiecke definieren zusammen ein Tetraeder. Der Umstülpungsvorgang ersetzt im wesentlichen zwei ursprüngliche Dreiecke (die die Hälfte der ebenen Oberflächen eines Tetraeders definieren) durch zwei neue Dreiecke (die die andere Hälfte der ebenen Oberflächen des Tetraeders definieren), wenn die zwei ursprünglichen Dreiecke eine konkave Kante miteinander teilen.
  • Ein anderer Vorgang, der verwendet wird, eine konkave Form in ihre konvexe Hülle umzuwandeln, wird als ein Bewegungsvorgang bezeichnet. Wenn zwei Dreiecke, die eine konkave Kante definieren, auch miteinander ein gemeinsames benachbartes Dreieck (wobei ein Reflexionsprisma gebildet ist) miteinander teilen, entspricht eines der zwei neuen Dreiecke, die durch Umstülpen der zwei Dreiecke gebildet worden sind, dem gemeinsamen benachbarten Dreieck. Dies ergibt die Bildung eines Nullvolumens oder einer herabhängenden Seite, die visuell nicht annehmbar ist. Demgemäß wird ein Bewegungsvorgang verwendet, die herabhängende Seite zu verhindern oder auszuschließen.
  • Nach dem Umstülpen zweier der Dreiecke eines Reflexionsprismas kann ein Bewegungsvorgang ausgeführt werden, damit die herabhängende Seite glatt ausgeschlossen wird. Eine alternative Art des Bewegungsvorgangs kann verwendet werden, die drei Dreiecke, die ein Reflexionsprisma bilden, in ein einzelnes Dreieck umzuwandeln, so daß die herabhängende Seite niemals gebildet wird.
  • Eine Sequenzialisierungstechnik wird verwendet, die Reihenfolge zu bestimmen, in der Umstülpungen und Bewegungen ausgeführt werden sollten, um eine konkave Form in ihre konvexe Hülle mit einem minimalen Auftreten von Eigenschnitten und topologischen Änderungen umzuwandeln.
  • Die Sequenzialisierungsphase erstellt eine Liste von Vorgängen (die AUSFÜHRUNGSLISTE genannt), die Umstülpungen und Bewegungen enthält, die die Transformation von der konkaven Form in die konvexe Hülle beschreiben. Das Sequenzialisierungsverfahren für jeden Scheitel: a) identifiziert konkave Kanten, die diesen Scheitel einschließen; b) bestimmt, ob der Umstülpungsvorgang oder der Bewegungsvorgang auf diese Kante angewendet werden soll; c) bestimmt, ob es geometrisch sicher ist, die Kante umzustülpen oder zu bewegen; und d) ordnet den geeigneten Vorgang auf der AUSFÜHRUNGSLISTE an, wenn er geometrisch sicher ist. Jedesmal, wenn ein Vorgang auf der AUSFÜHRUNGSLISTE für einen Scheitel angeordnet wird, werden die mit diesem Scheitel verbundenen Kanten erneut analysiert, um zu bestimmen, ob irgendwelche neuen konkaven Kanten erzeugt werden oder vorhergehend konkave Kanten ausgeschlossen sind. Dieses Verfahren wird für jeden Scheitel iteriert, bis keine konkaven Kanten übrigbleiben.
  • Die geometrischen Sicherheitsprüfungen gewährleisten, daß so viele Vorgänge wie möglich der AUSFÜHRUNGSLISTE hinzugefügt werden, die keine Eigenschnitte oder Entartungen bei den Metamorphen bewirken. Sobald nur unsichere Vorgänge verbleiben, werden die geometrischen Sicherheitsprüfungen weniger eng gemacht, so daß Vorgänge, die Entartungen, Selbstschnitte oder andere wenige erwünschte, visuelle Merkmale hervorrufen, in der AUSFÜHRUNGSLISTE angeordnet werden. Indem unsichere Vorgänge solange wie möglich aufgeschoben werden, hat es sich herausgestellt, daß die konkaven Kanten, die mit jenen unsicheren Bewegungen verbunden sind, häu fig ausgeschlossen werden, oder daß Bereiche des Gegenstands, die bei einer vorhergehend unsicheren Bewegung stören, so bewegt werden, daß sie nicht länger stören.
  • Es wird eine Ablauftechnik geoffenbart, die für jeden Vorgang eine Startzeit festlegt, während die Parallelität hervorgehoben wird. Das Ablaufverfahren läuft durch die AUSFÜHRUNGSLISTE in der Reihenfolge hindurch, wobei so früh wie möglich eine Startzeit jedem Vorgang zugeordnet wird. Die Dauer jedes Vorgangs wird auch bestimmt, so daß die Start- und Endzeit für jeden Vorgang bekannt sind. Wenn die konkave Kante, die durch einen Vorgang ausgeschlossen worden ist, zu der Zeit t = 0 nicht vorhanden war, ist die Startzeit für diesen Vorgang die Endzeit des Vorgangs, der die konkave Kante erzeugte.
  • Die vorliegende Erfindung schafft des weiteren eine Vorrichtung gemäß Anspruch 12 der beigefügten Ansprüche.
  • Die Erfindung wird ausführlich unter Bezugnahme auf die folgenden Zeichnungen beschrieben, in denen:
  • Fig. 1 die Metamorphose eines Kegels in einen anderen darstellt, wo die dazwischenliegenden Metamorphen sich selbst schneiden;
  • Fig. 2 die zweidimensionale Metamorphose eines Fünfeckes in ein Dreieck darstellt, wobei eine Scheitelzugehörigkeit verwendet wird;
  • Fig. 3 die zweidimensionale Metamorphose eines Dreiecks in ein Fünfeck darstellt, wobei eine Parameterisierung mit der Bogenlänge verwendet wird;
  • Fig. 4A eine zweidimensionale Metamorphose zwischen zwei komplexen Formen darstellt, wobei ein handelsübliches System verwendet wird, das sich auf die Parameterisierung mit der Bogenlänge verläßt;
  • Fig. 4B eine zweidimensionale Metamorphose der Formen der Fig. 4A darstellt, wobei das System der Fig. 4A und eine benutzergesteuerte Merkmalsanpassung verwendet wird;
  • Fig. 5 eine dreidimensionale Metamorphose einer Kugel in einen Torus darstellt, indem implizite Funktionen vermischt werden;
  • Fig. 6 eine zweidimensionale Metamorphose einer geraden Hantel in eine gebogene Hantel darstellt, wobei implizite Funktionen verwendet werden, und Entartungen darstellt, die bei den Metamorphen auf treten;
  • Fig. 7 eine dreidimensionale Metamorphose eines Würfels in einen Oktaeder darstellt, wobei das geoffenbarte konvex-zu-konvex Verfahren verwendet wird;
  • Fig. 8 ein Ablaufdiagramm ist, das ein Verfahren zur Interpolation zwischen zwei konvexen Formen gemäß der vorliegenden Erfindung darstellt;
  • Fig. 9A-9H eine Anwendung des konvex-zu-konvex Verfahrens der Fig. 8 auf eine zweidimensionale Metamorphose eines Quadrats in ein Dreieck darstellt;
  • Fig. 10A-10E Metamorphen zu den Zeiten 0,0, 0,25, 0,50, 0,75 und 1,00 und die sich schneidenden Halbebenen darstellen, die diese Formen für die zweidimensionalen Formen der Fig. 9A-9H bilden;
  • Fig. 11A-11C ein einfaches Polyeder, eine Scheitelliste für dieses Polyeder bzw. eine Flächenliste für dieses Polyeder darstellen;
  • Fig. 12A zwei Dreiecksseiten darstellt, die eine konkave Kanten bilden;
  • Fig. 12B zwei Dreiecksseiten und eine konvexe Kante darstellt, die erzeugt werden, nachdem die konkave Kante der Fig. 12A umgestülpt worden ist;
  • Fig. 13 zwei Polygone, die eine konkave Kante bilden, und einen bei den Polygonen nicht gemeinsame genutzte Scheitel darstellt, der verwendet wird, zu bestimmen, ob die zwei Polygone eine konkave Kante bilden;
  • Fig. 14 ein Ablaufdiagramm eines Verfahrens zur Bestimmung darstellt, ob eine zwischen zwei Polygonen geteilte Kante konkav ist;
  • Fig. 15 zwei Polygone darstellt, die eine konkave Kante bilden, wobei der Mittelpunkt zwischen ihren gemeinsamen Scheiteln und der Mittelpunkt zwischen ihren nicht gemeinsamen Scheiteln bezeichnet ist;
  • Fig. 16 ein Ablaufdiagramm ist, das ein Verfahren zum Umstülpen einer konkaven Kante darstellt;
  • Fig. 17A-17F die Polygone und die konkave Kante der Fig. 15 darstellen, die gemäß dem Verfahren der Fig. 16 umgestülpt sind;
  • Fig. 18A und 18B eine perspektivische Ansicht bzw. eine Draufsicht auf ein Reflexionsprisma sind;
  • Fig. 18C zwei Polygone und eine konkave Kante eines Reflexionsprismas vor der Umstülpung darstellt;
  • Fig. 18D das Reflexionsprisma der Fig. 18C nach dem Umstülpen darstellt;
  • Fig. 18E eine herabhängende Seite zeigt, die durch Umstülpen einer konkaven Kante eines Reflexionsprismas gebildet ist;
  • Fig. 18F das Polygon zeigt, das übrig bleibt, nachdem ein Reflexionsprisma umgestülpt worden ist, und die herabhängende Seite entfernt worden ist, wobei eine erste Art Bewegungsvorgang verwendet wird;
  • Fig. 19A-19D eine zweite Art Bewegungsvorgang darstellen, der unmittelbar bei einem Reflexionsprisma ausgeführt wird, ohne zuerst irgendwelche konkave Kanten des Reflexionsprismas umzustülpen;
  • Fig. 20 ein Ablaufdiagramm ist, das ein Verfahren zur Bestimmung darstellt, ob eine konkave Kante Teil eines Reflexionsprismas ist;
  • Fig. 21 ein Ablaufdiagramm ist, das ein Verfahren zur Ausführung einer dritten Art Bewegungsvorgang bei einem Reflexionsprisma darstellt, wobei diese dritte Art Bewegungsvorgang auch ohne Umstülpen irgendwelcher konkaver Kanten des Reflexionsprismas ausgeführt wird;
  • Fig. 22A-22D ein Reflexionsprisma darstellen, das in ein einzelnes Polygon durch das Verfahren der Fig. 21 umgewandelt worden ist;
  • Fig. 23A-23C ein Ablaufdiagramm sind, das ein Sequenzialisierungsverfahren zur Erzeugung einer AUSFÜHRUNGSLISTE zur Umwandlung einer konkaven Form in ihre konvexe Hülle darstellt, wobei Umstülpungs- und Bewegungsvorgänge verwendet werden;
  • Fig. 24 ein Ablaufdiagramm ist, das ein Verfahren zur Bestimmung zur Verwendung bei dem Verfahren der Fig. 23A-23C darstellt, ob eine Kante konkav ist;
  • Fig. 25 ein Ablaufdiagramm ist, das ein Verfahren zur Bestimmung zur Verwendung bei dem Verfahren der Fig. 23A-23C darstellt, ob ein Reflexionsprisma sicher ist, damit an ihm ein Bewegungsvorgang angewendet werden kann;
  • Fig. 26 ein Ablaufdiagramm ist, das ein Verfahren zur Bestimmung zur Verwendung bei dem Verfahren der Fig. 23A-23C darstellt, ob eine konkave Kante sicher ist, daß sie umgestülpt werden kann.
  • Fig. 27 ein Ablaufdiagramm ist, das ein Ablaufverfahren zur Bestimmung der Start- und Endzeit für jeden Vorgang darstellt, der in einer AUSFÜHRUNGSLISTE enthalten ist;
  • Fig. 28 ein Blockdiagramm der Hardware ist, die für die vorliegende Erfindung zweckmäßig ist,
  • Fig. 29A-29D eine zweidimensionale Metamorphose einer Form in einer andere gemäß der vorliegenden Erfindung darstellen;
  • Fig. 30 ein Ablaufdiagramm auf hoher Ebene ist, das eine Metamorphose zwischen Polyedern darstellt; und
  • Fig. 31A-31C Zeitabläufe dieser drei Schritte darstellen, die bei der Umwandlung einer konkaven Form in eine andere konkave Form eingeschlossen sind.
  • I. Interpolation von konvex-zu-konvex: asynchrones Abbrechen
  • Dieser Abschnitt beschreibt ein automatisches Verfahren zur Interpolation irgendwelcher zweier konvexer Polyeder, die aus konvexen Facetten aufgebaut sind. Jedoch versteht es sich, daß die Technik zur Umwandlung konkaver Formen in ihre konkaven Hüllen (in späteren Abschnitten beschrieben) mit anderen Verfahren für konvex-zu-konvex verwendet werden kann. Eine Anzahl Metamorphose-Verfahren verlangt konvexe Formen als ihre Eingabe, und somit könnte das später beschriebene Verfahren von konkav-zu- konvex mit diesen anderen Verfahren verwendet werden. Beispielsweise könnte das gegenwärtige offenbarte Verfahren von konkav-zu-konvex verwendet werden, konkave Formen in ihre konvexen Hüllen umzuwandeln, die dann dem Verfahren eingegeben werden, das in der obengenannten Veröffentlichung von Anil Kaul u. a. geoffenbart ist, und den konvexen Ausgang dieses Verfahrens in seine konkave Form umzuwandeln.
  • Das geoffenbarte Verfahren von konvex-zu-konvex ist einfach auszuführen und linear in Zeit und Raum in bezug auf die Anzahl der Polygone in den zwei Begrenzungsformen. Die Anzahl der Scheitel und Flächen in den Metamorphoren ist durch die Summen der entsprechenden Maße bei den Begrenzungsformen begrenzt. Das Verfahren erzeugt Metamorphe, die zeitlich fortlaufend, verbunden und nicht entartet sind. Das Verfahren, asynchrones Beenden genannt, ist durch die klassische Konstruktion eines Doppelpolyeders angeregt (vergl. J. Kappraff, "Connections", McGraw-Hill, Inc., New York 1991, A. Pugh, "Polyeder A Visual Approach", University of Califomia Press, Berkeley, 1976, und R. Williams, "The Geometrical Foundation of Natural Structure", Dover Publications, New York, 1979). Beispielsweise kann ein Würfel in sein Doppeltes, das Oktaeder umgewandelt werden, indem jede Ecke abgeschnitten wird, wie es in Fig. 7 gezeigt ist. In den letzten, am weitesten rechts liegenden Bildern ist die Umgrenzung des ursprünglichen Würfels nur für Darstellungszwecke gezeigt, wobei es sich versteht, daß der Würfel in das Oktaeder umgewandelt worden ist.
  • Das vorliegende Verfahren verallgemeinert diese übliche Technik, indem das Abschneiden, das ausgeführt werden soll, durch eine Gruppe sich bewegende Ebenen bildhaft gemacht wird und dann die Bewegung dieser Ebenen entsynchronisiert wird. Das Verfahren wird zuerst der Einfachheit halber in zwei Dimensionen beschrieben: die Verallgemeinerung in drei Dimensionen ist trivial.
  • Wie es in Fig. 8 dargestellt ist, kann das Verfahren in drei Schritten beschrieben werden: einen Konstruktionsschritt S10 (nachfolgend werden alle Schritte mit dem Anfangsbuchstaben S bezeichnet), einem Anpassungsschritt S20 und einem Interpolationsschritt 530. Die Schritte, wie sie auf zwei Begrenzungsformen angewendet werden, sind in den Fig. 9A-H dargestellt, die ein Quadrat SQ (Fig. 9A) zeigen, das in ein Dreieck TR (Fig. 9E) umgewandelt wird. Zur Klarheit sind in den Fig. 9A-H die Begrenzungsformen nicht überlappend gezeigt, obgleich sie es im allgemeinen sein mögen.
  • Der Konstruktionsschritt S10 ist in Fig. 9B und 9F gezeigt. Jede Begrenzungsform ist als der Schnitt einer Gruppe von Halbebenen (SQ1-SQ4 für das Quadrat SQ und TR1-TR3 für das Dreieck TR) dargestellt. Jede Halbebene ist durch eine ausgerichtete Linie gekennzeichnet. Diese Linien fallen mit den Kanten des Gegenstands zusammen und sind ausgerichtet, so daß ihre Normale nach innen zeigt (die graue Zone bei jeder Linie in den Figuren gibt die positive Seite an).
  • Der Anpassungsschritt S20 beinhaltet, die Halbebenen einer Begrenzungsform so eng wie möglich um die andere Begrenzungsform herum anzupassen. In Fig. 9 G sind die vier Linien SQ1-SQ4 des Startquadrats gezeigt, wie sie gerade das Zieldreieck TR umfassen. Ähnlich zeigt Fig. 9C die drei Linien TR1-TR3 des Dreiecks, die gerade das Quadrat SQ umfassen. Man beachte, daß keine Form skaliert ist, sondern jede Linie vielmehr einzeln entlang ihrer eigenen Normalen bewegt wird. Somit bildet der Schnitt der vier Halbräume in Fig. 9G ein Rechteck, kein Quadrat. Die Positionen der vier Linien SQ1-SQ4 in Fig. 9B werden ihre ursprünglichen Orte genannt; die Ort derselben vier Linien in Fig. 9G werden ihre bewegten Orte genannt. Ähnlich sind die Linien TR1-TR3 des Dreiecks an ihren ursprünglichen Orten in Fig. 9F, und ihren bewegten Orten in Fig. 9C. Man beachte, daß, um den Ort einer Linie zu beschreiben, nur eine einzige Zahl festgelegt werden muß: Sein Abstand von dem Ursprung entlang einer Linie durch den Ursprung parallel zu der Normalen der Linie gemessen.
  • Fig. 9D zeigt die vier Halbebenen der Fig. 9B und die drei Halbebenen der Fig. 9C einander überlagert. Man beachte, daß ihr Schnitt einfach das ursprüngliche Quadrat SQ in Fig. 9A ist. Ähnlich zeigt Fig. 9H die Ebenen der Fig. 9F und 9G einander überlagert; ihr Schnitt ist das Dreieck TR in Fig. 9E. Man beachte auch, daß es in jeder der Fig. 9D und 9H sieben Ebenen gibt.
  • Um einen Metamorph (Schritt S 30 in Fig. 8) zu erzeugen, sind einfach die sieben Linien aus ihren Positionen aus Fig. 9B in Richtung zu ihren Positionen in Fig. 9H zu bewegen, und der Schnitt der sieben Halbebenen ist herauszufinden.
  • Die Fig. 10A bis 10E zeigen drei Beispiele bei 0,25 (Fig. 10B), 0,3 (Fig. 10C) und 0,75 (Fig. 10D) des Weges. Jede Figur zeigt die Positionierung der Linien SQ1-SQ4 und TR1-TR3 sowie die Form, die sich aus ihrem Schnitt ergibt. Man beachte, daß sie die Formen sanft verformen, sie stets das Geschlecht 0 aufweisen und sie nicht entarten.
  • Man kann die Konstruktion des Metamorph sichtbar machen, indem die Begrenzungsformen in drei Dimensionen auf parallelen Ebenen abgebildet werden. Die Wege, die von den sich bewegenden Linien überstrichen werden, bilden schräge Ebenen in diesem Raum, die zusammen eine dreidimensionale Form bilden. Jeder Metamorph stellt den Schnitt einer Ebene parallel zu den ursprünglichen Ebenen, mit dem einschlossen Körper dar. Dieser Körper ist tatsächlich die konvexe Hülle der zwei Formen in ihren parallelen Ebenen mit Querschnitten, die offensichtlich zusammenhängend, vom Geschlecht 0 und nicht entarteten Formen sind.
  • Das Verfahren läßt sich leicht auf drei Dimensionen erweitern, indem die Linien, die Halbebenen begrenzen, durch Ebenen ersetzt werden, die Halbräume begrenzen. Wiederum kann die Position jeder Ebene durch eine einzelne Zahl dargestellt werden: Eine Ebene wird als Normale N plus einer Bewegung d dargestellt, so daß Punkte P auf der Ebene N · P + d = 0 erfüllen, wobei sich nur d ändert, wenn sich die Ebene entlang ihrer Normalen bewegt. Somit wird jede Ebene als eine Normale N (ein durch drei Zahlen Nx, Ny, Nz definierter Vektor) und einen Abstand (d) von dem Ursprung dargestellt. Um die Ebene sichtbar zu machen, finde man den Punkt, der sich die Strecke d von dem Ursprung entlang einer Normalen N befindet. Die Ebene erstreckt sich senkrecht von der Normalen an diesem Punkt. Somit bewegen sich Ebenen entlang ihrer Normalen, indem der Wert d geändert wird. Obgleich der vierdimensionale Hyperkörper, der von der Ebene überstrichen wird, schwer sichtbar zu machen ist, gewährleistet eine Analogie mit dem zweidimensionalen Fall, daß die von dem Schnitt der bewegten Ebenen erzeugten Körper die gleichen erwünschten Eigenschaften wie die zweidimensionalen Formen auf zeigen.
  • Die Interpolationstechnik kann ohne weiteres durch ein einzelnes Verfahren ausgeführt werden, das eine Eingangsform und eine Ebene akzeptiert und einen Sutherland- Hodgman zurückkehrenden Polygonabschnitt auf dieser Ebene durchführt. See I.E. Sutherland und G. W. Hodgmann, "Reentrant Polygon Clipping", CACM, 17(1), Januar 1974, wobei diese Offenbarung hier durch Bezugnahme auf sie eingegliedert wird. Alle in der Ebene erzeugten neuen Scheitel können dann eindeutig zu einer einzelnen konvexen Kappe zusammengeheftet werden. Man kann mit einer einfachen Form (wie einem Würfel) beginnen, die sicherstellt, daß sie beide Begrenzungsformen einschließt, und dann aufeinanderfolgend mit jeder sich bewegenden Ebene abschneiden. Natürlich arbeitet eine solche Abschneideroutine nur bei konvexen Polyedern, die aus konvexen Polygonen gebildet sind, wobei aber dies genau die Art Form ist, die durch den Schnitt der Halbräume erzeugt wird. Das Ergebnis ist eine Reihe Metamorphe mit einer sich ändernden Anzahl Scheitel, Kanten und Seitenflächen, stellt jedoch einen glatten Übergang von einer Form zu der anderen dar.
  • Im wesentlichen kann jede Ebene für jede Form eine Startposition und eine Endposition (jede Position ist als ein unterschiedlicher Wert von d definiert) haben. Die Bewegung jeder Ebene zwischen seinen zwei Endpositionen kann so skaliert werden, so daß bei t = 0 ihre Startposition ist und bei t = 1 ihre Endposition ist. Nimmt man an, daß ein Polyeder A(PA) in ein Polyeder B(PB) umgewandelt werden soll, befinden sich zur Zeit t = 0 die Ebenen eines jeden Polyeders an einer Position, wo ihr Schnitt PA definiert, und zur Zeit t = 1 befinden sich die Ebenen so, daß ihr Schnitt PB definiert. Somit entspricht bei t = 0 der Wert von d einer jeden Normalen N in PA dem Ursprungsort jeder Ebene, und der Wert von d einer jeden Normalen N in Pg entspricht dem verschobenen Ort jeder Ebene (siehe die Beschreibung der Fig. 9A-9H). Da sich der Wert von t von 0 bis 1 ändert, bewegt sich jede Ebene von PA in Richtung ihrer verschobenen Position, und jede Ebene von PB bewegt sich in Richtung zu ihrer Ursprungsposition. Der Schnitt aller Ebenen wird fortlaufend bestimmt und ausgegeben (z. B. an einen Bildschirm), wenn es erwünscht ist. Die Bestimmung und die Ausgabe der Schnitte der Ebenen können in einer herkömmlichen Weise ausgeführt werden.
  • Wenn die Form mit einer festen Textur gemustert ist, dann wird die Textur auf den sich bewegenden Flächen ohne weiteres bestimmt. Abgebildete, ebene Texturen werden auch ohne weiteres berücksichtigt. Für jede gemusterte Ebene erzeuge man eine Texturbezugsebene parallel zu der ursprünglichen Ebene, die aber durch den Ursprung hindurchgeht. Das Koordinatensystem der Texturebene wird so errichtet, daß eine Achse senkrecht zu der Ebene ist und die zwei anderen der U und der V Richtung des Musters in der Ebene entsprechen; diese können aus den Bildern von irgendwelchen drei nicht kollinearen Punkten in der ursprünglichen Ebene gefunden werden. Die Texturkoordinaten an irgendeinem Punkt in der sich bewegenden Ebene können dann durch die Koordinaten der parallelen Projektion des Punktes auf die Texturbezugsebene gefunden werden. Mehrere Texturen werden durch mehrere Ebenen dargestellt. Wenn sich die Ebenen bewegen, bewegen sich die Texturen mit ihnen, obgleich natürlich die abgebildeten Texturen nicht glatt über die Polygongrenzen fließen. Somit können Metamorphe beständig von Bild zu Bild trotz der sich ändernden Anzahl von Seiten und Scheitel mit Textur versehen werden.
  • II. Konkav-zu-konvex Interpolation
  • Das in dem vorhergehenden Abschnitt dargestellte Verfahren interpoliert nur konvexe Polyeder des Geschlechts 0, die aus konvexen Facetten aufgebaut sind. Dieses Verfahren kann als der zentrale Schritt verwendet werden, um konkave Polyeder zu interpolieren, wenn sie zuerst in ihre konvexen Hüllen transformiert werden. Eine solche konkav- zu-konvex Transformation ist in diesem Abschnitt dargestellt.
  • Es gibt nichts neues darin, die konvexe Hülle eines Polyeders zu finden. Mehrere gute Techniken sind in "Computational Geometry: An Introduction" by F. P. Preparata und M. I. Shamos, Springer-Verlag Heidelberg, 185 dargestellt, deren Offenbarung hier durch Bezugnahme eingegliedert ist. Jedoch erzeugt keine dieser Techniken visuell sinnvolle Zwischenergebnisse in dem Sinn, daß die Zwischenformen die gleichen Kriterien erfüllen, die oben für Metamorphe erörtert worden sind. Tatsächlich ist die konkav-zu-konvex Transformation selbst eine Metamorphose.
  • Wie es oben erörtert worden ist, nimmt die unten beschriebene Technik an, daß die Form eine dreieckiges Gitter vom Geschlecht 0 ist. Eine Form kann durch ein in Dreiecke zerlegtes Polyeder des Geschlechts 0 durch Standardtechniken zur Schrumpfumhüllung irgendeiner verbundenen Form mit einer verformbaren, anpaßbar abgetasteten Kugel und durch die Anwendung einer üblichen Triangulisierungstechnik dargestellt werden (vgl. das oben eingegliederte Buch von F. P. Preparata u. a.). Die in Dreiecke zerlegte Form muß auch einfach verbunden sein, d. h., jede Kante hat zwei Flächen, und alle Flächen um einen Scheitel herum, sind durch Kanten verbunden. Demgemäß kann das in dieses Verfahren eingebrachte Polyeder keine Löcher haben.
  • Es wird auch angenommen, daß alle Oberflächennormalen ursprünglich von dem örtlichen Inneren des Körpers nach außen zeigen. Eine durchgehende Scheitelbezeich nungskonvention im Uhrzeiger- oder Gegenuhrzeigersinn erlaubt, daß die Normalen eindeutig beim Durchgang bestimmt werden. Beispielsweise kann eine Regel der rechten Hand angewendet werden, wenn die Scheitel einer Dreiecksseite so benannt werden, daß die Normalen durchgehend örtlich nach außen zeigen.
  • Ein Polyeder, das die obigen Bedingungen erfüllt, wird in das konkav-zu-konvex Verfahren als eine Liste von Scheiteln Pi(x, y, z) und als eine Liste von Flächen Fi eingegeben, wobei jede Fläche durch drei Scheitel definiert ist. Wie es oben angegeben worden ist, wird eine durchgehende Scheitelbenennungskonvention verwendet, so daß die Flächennormalen stets von der Innenseite des Polyeders fortweisen. Die Fig. 11A-C stellen ein Polyeder mit drei Flächen F&sub0;, F&sub1;, F&sub2; dar, die durch vier Scheitel P&sub0;, P&sub1;, P&sub2;, P&sub3; definiert sind und die Scheitel- und Flächenliste für das Polyeder. Die schraffierte Seite F&sub1; ist gegenüber der Betrachtung der Fig. 11A verborgen. Das untere Dreieck (durch die Scheitel P&sub1;, P&sub2; und P&sub3; definiert) ist offen und definiert somit keine Fläche.
  • Das neue Verfahren erzeugt nicht entartete Metamorphen vom Geschlecht 0. Es versucht, sich selbstschneidende Formen zu verwenden und ist normalerweise erfolgreich, obgleich sie weiterhin erscheinen können. Das Verfahren erzeugt eine Datenstruktur, die verwendet wird, eine Form irgendwo zwischen der ursprünglichen, konkaven Form und ihrer konvexen Hülle zu erzeugen. Diese Datenstruktur wird in zwei Phasen aufgebaut: eine Sequenzialisierungsphase und eine Ablaufphase. Das Ziel des Verfahrens ist, eine zeitliche Reihe von Vorgängen zu konstruieren, die die Konstruktion der interpolierten Formen leitet. Die Sequenzialisierungsphase besteht darin, den nächsten Vorgang, der ausgeführt werden soll, und die Ausführung des Vorgangs zu bestimmen und dann den nächsten Vorgang zu bestimmen. Die Ablaufphase nimmt diese Liste der Vorgänge und heftet an jede eine Zeitinformation, wobei die Vorgänge parallel gemacht werden, wenn es möglich ist.
  • Zwei Arten Vorgänge, die durch das Verfahren verwendet werden, werden unten beschrieben. Die Sequenzialisierung und der Ablauf dieser Vorgänge wird dann beschrieben.
  • IIA. Vorgänge: Umstülpungen und Bewegungen
  • Der Grundvorgang bei dem Interpolationsverfahren von konkav-zu-konvex ist die Umstülpung. Eine Umstülpung umfaßt, ein Paar Dreiecke, das eine konkave Kante (auch als eine Reflexionskante bezeichnet) gemeinsam benutzt, durch das komplementäre Paar zu ersetzen, wobei die konkave Kante entfernt und eine neue konvexe Kante eingeführt wird. Die Fig. 12A und 12B stellen ein Paar Dreiecke vor bzw. nach der Umstülpung dar. Man beachte, daß die gleichen vier Scheitel V&sub1;, V&sub2;, V&sub3; und V&sub4; sowohl vorher als auch danach verwendet werden. Da der Zweck der Umstülpung ist, eine Reflexionskante (eine konkave Kante) von dem Modell zu entfernen, wird üblicherweise auf die Umstülpung einer Kante Bezug genommen, obgleich es manchmal zweckmäßig ist, von der Umstülpung eines Paares von Polygonen zu sprechen.
  • In Fig. 12A und 12B wird angenommen, daß der Hauptkörper des Gegenstands unterhalb dieser Figuren liegt. Somit teilen sich unter Bezugnahme auf Fig. 12A die von den Dreiecken T&sub1;(V&sub1;, V&sub3;, V&sub2;) und T&sub2;(V&sub4;, V&sub2;, V&sub3;) gebildeten Dreiecke eine gemeinsame konkave Kante CCE, die durch die scheitel V&sub2; und V&sub3; definiert ist. Wie es früher angegeben worden ist, sind die Normalen N&sub1; und N&sub2; der Dreiecke T&sub1; bzw. T&sub2; so definiert, daß sie von dem Inneren des Gegenstands fortweisen. Wie es in Fig. 12B dargestellt ist, wer den, nachdem die Dreiecke T&sub1; und T&sub2; umgestülpt worden sind, zwei neue Dreiecke T&sub3;(V&sub1;, V&sub4;, V&sub2;) und T&sub4;(V&sub4;, V&sub1;, V&sub3;) gebildet. Die Dreiecke T&sub3; und T&sub4; teilen sich eine gemeinsame konvexe Kante CVE, die durch die Scheitel V&sub1; und V&sub4; definiert ist. Man beachte, daß die Normalen N&sub3; und N&sub4; des Dreiecks T&sub3; bzw. T&sub4; auch von dem Inneren des Gegenstands fortweisen.
  • Ein Verfahren zur Bestimmung, ob eine Kante konkav ist, wird unter Bezugnahme auf die Fig. 13 und 14 beschrieben. Man nehme an, daß eine gemeinsame Kante CE durch Polygone A und B begrenzt ist. Man finde einen Scheitel a bei A, der von B (S61) nicht mitbenutzt wird. Dann bestimme man diesen Scheitel in der Ebenengleichung für B (S63) und untersuche das Vorzeichen des Ergebnisses (S65). Wenn der Scheitel in dem positiven Halbraum von B ist, ist die gemeinsam genutzte Kante konkav (S67) und ist ein Kandidat zur Umstülpung. Sonst ist die Kante nicht konkav (S69).
  • Wenn eine Kante konkav ist, sollte sie umgestülpt werden. Das Umstülpungsverfahren wird nun unter Bezugnahme auf die Fig. 15, 16 und 17A-F beschrieben.
  • Um eine Kante umzustülpen, identifiziere man zwei gemeinsam genutzte Scheitel S&sub1; und S&sub2; und die nicht gemeinsam genutzten Scheitel U&sub1; und U&sub2; für zwei benachbarte Dreiecke T&sub3;(U&sub1;, S&sub1; S&sub2;) und T&sub2;(U&sub2;, S&sub2; S&sub1;), wie es in Fig. 15 gezeigt ist. Man beachte, daß eine linkshändige Regel verwendet wird, um die Normalen bei diesem Beispiel zu bestimmen. Man bezeichne den Mittelpunkt von S&sub1; und S&sub2; als A (S621) und den Mittelpunkt von U&sub1; und U&sub2; als B. Man erzeuge einen vorübergehenden neuen Scheitel V ursprünglich bei A. Man entferne nun die ursprünglichen zwei Dreiecke T&sub1; und T&sub2; und ersetzte sie durch vier vorübergehende neue Dreiecke (S623): 1(U&sub1; S&sub1; V), 2(S&sub1; U&sub2; V), 3(U&sub2; S&sub2; V), 4(S&sub2; U&sub1; V) wie in Fig. 17B (man muß mit der Numerierung aufpassen, um sicherzustellen, daß die neuen Polygone so aufgebaut sind, daß die Normalen örtlich nach außen weisen). Als nächstes bewegt man bei S625 V von dem Ort des Mittelpunkts A in Richtung zu dem Mittelpunkt B. Wenn die Position von V von A nach B gebracht wird (wie in den Fig. 17B-17F und S627), wird das ursprüngliche Paar Polygone in das neue Paar umgestülpt. Wenn B von V erreicht wird, entferne man die vier vorübergehenden Dreiecke und den vorübergehenden Scheitel V und konstruiere neue Dreiecke T&sub3;(U&sub1; S&sub1; U&sub2;) und T&sub4;(U&sub2; S&sub2; U&sub1;), wie es bei S629 dargestellt ist. Dies schließt den Umstülpungsschritt ab. In den späteren Abschnitten beziehen sich Bezugnahmen auf den "sich bewegenden Scheitel" der Umstülpungsvorgänge auf V.
  • Es lohnt sich, einige wenige Eigenschaften der Umstülpung anzugeben. Zunächst ist die Anzahl der Scheitel, der Kanten und der Flächen die gleiche vor einer und nach einer Umstülpung - somit bleibt das Geschlecht unverändert. Zweitens füllen die neuen Dreiecke genau das Loch, das von den alten gelassen worden ist, so daß die Oberfläche verbunden und nicht entartet bleibt. Drittens wird eine konkave Kante (S&sub1; S&sub2;) durch eine konvexe Kante (U&sub1; U&sub2;) ersetzt. Man beachte, daß jede Umstülpung wirksam ein konkaves Loch mit einem Tetraeder füllt, das vollständig konvex ist. Da die neuen Flächen zwei Flächen des Tetraeders sind, wird von dem Ergebnis auch sichergestellt, daß es konvex ist. Viertens kann die Umstülpung glatt von ihrem Ausgangspaar von Dreiecken zu ihrem Austauschpaar (Fig. 17B-17F) bewegt werden. Das Original und der letzte Austausch bleiben unbemerkt, da jedes Paar vorübergehender Dreiecke koplanar mit dem einzelnen Dreieck ist, das es ersetzt.
  • Nachdem eine Kante umgestülpt worden ist, kann der Ausschluß der ursprünglichen zwei Dreiecke und die Erzeugung zweier neuer Dreiecke neu konkave Kanten bei dem gesamten Gegenstand erzeugen. Diese neuen konkaven Kanten werden nur identifiziert und zur rechten Zeit umgestülpt. Jede umgestülpte Kante bewegt sich monoton näher zu der konvexen Hülle. Somit wird, indem wiederholt konkave Kanten umgestülpt werden, die neuen konkaven Kanten geprüft werden und die neuen konkaven Kanten umgestülpt werden, gegebenenfalls die konvexe Hülle erhalten. Das Verfahren fällt niemals in einem Kreislauf oder in einen Zustand, der sich von der konvexen Hülle fortbewegt. Das Sequenzialisierungsverfahren zur Umwandlung eines gesamten Gegenstands in seine konvexe Hülle ist unten beschrieben.
  • Die Beendigung des Verfahrens mit der konvexen Hülle kann gezeigt werden, indem darauf hingewiesen wird, daß keine neuen Kanten eingeführt werden und bei jedem Schritt eine konkave Kante näher zu der konvexen Hülle bewegt wird. Da beim Erreichen der Hülle eine Kante anhält, sich zu bewegen, sind nach genug Umstülpungen alle Kanten sowohl bei der Hülle als auch konvex und das Verfahren endet.
  • Ein Nebeneffekt einer Umstülpung ist, daß sie bei Abschluß manchmal ein Polygon (Dreieck) erzeugt, das mit einem bestehenden Polygon (Dreieck) zusammenfällt. Die Fig. 18A-F zeigen ein Beispiel, wo eine Umstülpung bewirkt, daß ein neues Polygon erzeugt wird, das mit Ausnahme der Richtung seiner Normalen mit einem bestehenden Polygon identisch ist.
  • Insbesondere sind die Fig. 18A und 18B eine perspektivische bzw. Draufsicht auf drei Dreiecke A, B und C, die konkave Kanten bilden (wie bei den früheren Beispielen wird von dem Rest der Form angenommen, daß sie sich unterhalb der Figur befindet). Unter Verwendung einer rechtshändigen Regel, um die Normalen zu definieren, ist das Dreieck A die Fläche, die durch (V&sub1;, V&sub3;, V&sub4;) definiert ist, ist das Dreieck B die Fläche, die durch (V&sub2;, V&sub1;, V&sub4;) definiert ist, und ist das Dreieck C die Fläche, die durch (V&sub3;, V&sub2;, V&sub4;) definiert ist. Man nehme an, daß die konkave Kante CCE, die durch die Scheitel V&sub1; und V&sub4; definiert ist, ausgewählt wurde, umgestülpt zu werden, wie es durch die Fig. 18C-18d dargestellt ist. Die sich ergebenden Dreiecke C' und D (siehe Fig. 18D), die durch die Scheitel (V&sub3;, V&sub4;, V&sub2;) bzw. (V&sub2;, V&sub1;, V&sub3;) definiert sind, würden durch das Umstülpungsver fahren erzeugt, wobei die Kante CVE (V&sub2;, V&sub3;) konvex ist. Jedoch entspricht das neue Dreieck C' dem ursprünglichen Dreieck C mit Ausnahme der Richtung seiner Normalen.
  • Es gibt genau eine Situation, bei der dieses Verdoppelungsereignis des Dreiecks auftreten kann: wenn zwei Dreiecke, die umgestülpt werden sollen, sich in einem gemeinsamen Nachbar (der ein Reflexionsprisma bildet) teilen. Das heißt unter Bezugnahme auf die Fig. 18A-F, daß sich die Dreiecke A und B (die umzustülpenden Dreiecke) ein gemeinsames Nachbardreieck teilen, das Dreieck C. Das Ergebnis der Umstülpung zweier Dreiecke eines Reflexionsprismas ist tatsächlich ein Nullvolumen: während der Umstülpung ist eine dreiseitige Pyramide in eine zweiseitige Pyramide zusammengefallen. Es gibt an diesem Punkt keine plötzlich sichtbare Änderung, da die Transformation glatt ist, wobei aber das Nullvolumen als eine herabhängende Seite sichtbar auftritt. Das heißt, behält man die Anforderungen an das gesamte Polyeder (Geschlecht 0, einfach ver bunden usw.) im Gedächtnis, von dem das Reflexionsprisma nur ein kleiner Teil ist, gehen zusätzliche Dreiecksflächen von den Kanten (V&sub1;, V&sub2;), (V&sub2;, V&sub3;) und (V&sub3;, V&sub1;) aus. Somit schließt nach der Umstülpung das neue Dreieck D die Öffnung, die vorhergehend zwischen diesen Scheiteln vorhanden war. Jedoch erstreckt sich das neue Dreieck C' (und das ursprüngliche Dreieck C) innerhalb des Gegenstands (so daß der Ausdruck "herabhängende Seite" verwendet wird, diese Dreiecke zu beschreiben).
  • Die Dreiecke, die die herabhängende Seite bilden, müssen entfernt werden (oder am Auftreten verhindert werden), da sie sichtbar sind, wenn der Gegenstand durchsichtig ist, und weil sie weitere Bewegungen für umgebende Dreiecke behindern. Eine erneute Umstülpung der zwei neuen Dreiecke (C' und D) gelingt nicht, da dies nur die ursprünglichen zwei Dreiecke (A und B) wieder erzeugt. Während die neu erzeugte Seite (Dreieck D) erwünscht ist, sollte das andere neue Dreieck C' sowie das Dreieck C entfernt werden. (Die Dreiecke C und C' definieren die gleiche Fläche, ihre Normalen zeigen nur in entgegengesetzte Richtungen.) Die herabhängende Seite wird mit einem besonderen Vorgang, der allgemein Bewegungsvorgang genannt wird, entfernt (oder am Auftreten verhindert).
  • Nullvolumina können erfaßt werden, indem die Nachbarschaft eine Umstülpung, bevor sie ausgeführt wird (d. h., Reflexionsprismen erfassen) oder danach analysiert werden, indem die Scheitelliste vor bestehender Polygone (die das Dreieck C einschließen wür den) nach Übereinstimmungen mit der Scheitelliste eines neuen Polygons (das das Dreieck C') einschließt, durchsucht wird. Wie auch immer, wenn ein Nullvolumen erfaßt wird, werden die zwei teilnehmenden Polygone (Dreieck A und B), ihre drei Kanten (V&sub1;, V&sub4;), (V&sub2;, V&sub4;), (V&sub3;, V&sub4;) und der herabhängende Scheitel (V&sub4;) alle von der Modell-(Form)- Beschreibung entfernt. Wiederum wird das Geschlecht bewahrt, da die Euler-Charakteristik unverändert ist: V - E + F = (V - 1) - (E - 3) + (F - 2). Die Polygone und der Scheitel, die das Nullvolumen bilden, werden in einer Spezialliste bewahrt, wobei sie auf einen Bewegungsvorgang warten, der einen glatten sichtbaren Effekt liefert, der zu der Entfernung der Nullpolygone paßt.
  • Es gibt drei Arten des Bewegungsvorgangs. Bei der ersten wird die Umstülpung ausgeführt, um die herabhängende Seite zu erzeugen (einschließlich eines herabhängenden Scheitels V&sub4;; siehe Fig. 18E). Der herabhängende Scheitel wird dann glatt zu der Mitte M der Kante bewegt, die von den anderen zwei Scheiteln (V&sub2;, V&sub3;) gebildet ist, so daß das Dreieck zu einer Linie entartet und verschwindet.
  • Die zweite und dritte Art des Bewegungsvorgangs verlangen nicht, daß der Umstülpungsvorgang ausgeführt wird, und werden deshalb gegenüber der ersten Art des Bewegungsvorgangs bevorzugt und sind schneller. Jeder dieser Vorgänge erfaßt die Bedingung, die verlangt wird, ein Nullvolumen zu erzeugen (d. h., das Vorhandensein eines Reflexionsprismas) und ersetzt einen unterschiedlichen Vorgang für den Umstülpungsvorgang.
  • Die Fig. 19A-D stellen die zweite Art Bewegungsvorgang dar. Bei der zweiten Art Bewegungsvorgang wird ein Reflexionsprisma ausgeschlossen, indem ein einzelnes Polygon (Dreieck E) an dem herabhängenden Scheitel (V&sub4;) erzeugt wird, das parallel zu dem endgültigen Polygon (Dreieck D) ist, und dann wird dieses Polygon an den drei Kanten des Reflexionsprismas glatt nach oben geschoben, die entfernt werden sollen (V&sub4;, V&sub1;), (V&sub4;, V&sub2;), (V&sub4;, V&sub3;), bis dieses Dreieck (E) den Ort des neuen Dreiecks D erreicht.
  • Die dritte Art Bewegungsvorgang ist die am meisten bevorzugte, da sie die rechenmäßig einfachste und visuell gefälligste ist. Das Verfahren zur Ausführung der dritten Art Bewegungsvorgang ist in Fig. 21 dargestellt. Das Aussehen der Dreiecke während der dritten Art Bewegungsvorgang ist in den Fig. 22A-D dargestellt.
  • Zuerst wird eine Bestimmung gemacht, ob zwei Dreiecke Teil eines Reflexionsprismas sind, wie es in dem Ablaufdiagramm der Fig. 20 gezeigt ist. Zwei Polygone (z. B. die Dreiecke A und B), die sich eine konkave Kante teilen, werden identifiziert. Dies kann mit dem Verfahren gemacht werden, das in dem Ablaufdiagramm der Fig. 14 gezeigt ist. Als nächstes wird bei S224 eine Bestimmung gemacht, ob sich diese zwei Polygone einen Nachbarn teilen. Dies kann gemacht werden, indem bestimmt wird, ob zwischen den nichtgemeinsamen Scheiteln (V&sub2;, V&sub3;) der Polygone A und B eine Kante vorhanden ist. Wenn sich die Polygone A und B ein gemeinsames benachbartes Polygon teilen, wird von der konkaven Kante zwischen den Polygonen A und B (V&sub1;, V&sub4;) bei S226 bestimmt, daß sie Teil eines Reflexionsprismas ist. Sonst wird beim Schritt S228 bestimmt, daß die konkave Kante kein Teil eines Reflexionsprismas ist.
  • Wenn ein Reflexionsprisma gefunden wird, dann ist auch bekannt, daß der gemeinsame Nachbar (Polygon C) Teil des Reflexionsprismas zusammen mit dem Polygon A und B ist.
  • Um die dritte Art Bewegungsvorgang auszuführen, wählt man den gemeinsam Scheitel (V&sub4;) der drei Polygone, die das Reflexionsprisma bilden (S410). Als nächstes bewegt man den gemeinsamen Scheitel (V&sub4;) in Richtung zu der geometrischen Mitte (GC) des Dreiecks, das von den drei freien Kanten (V&sub1;, V&sub2;), (V&sub2;, V&sub3;), (V&sub3;, V&sub1;) des Reflexionsprismas gebildet wird (S420). In dem bestimmt wird, ob der gemeinsame Scheitel V&sub4; die geometrische Mitte GC erreicht hat (S430), wird S420 wiederholt, bis GC erreicht ist. Das Ergebnis dieses Verfahrens ist der Ersatz der Dreiecksflächen A, B, C durch drei vorübergehende Flächen A', B', C', die sich in Richtung zu der konvexen Hülle bewegen (siehe Fig. 22B-C). Sobald der Scheitel V&sub4; GC erreicht, werden diese drei vorübergehende Polygone A', B', C' durch eine einzige Dreiecksfläche D ersetzt (S440: Fig. 22D).
  • II.B Sequenzialisierung
  • Die Sequenzialisierungsphase ist verantwortlich, die Liste der Vorgänge (Umstülpungen und Bewegungen) aufzubauen, die die Transformation von der konkaven Form in die konvexe Hülle beschreiben. Es gibt viele mögliche Vorgangssequenzen, die dieses Ziel erreichen. Unterschiedliche Sequenzialisierungsverfahren erzeugen Transformationen mit unterschiedlichem Aussehen. Die Gesamttechnik der Sequenzialisierungsvorgänge ist wirklich sehr einfach, obgleich die Ausführung Aufmerksamkeit im einzelnen verlangt. Es ist wichtig, daß die Ganzheit der Verknüpftheit des Gegenstands während des ganzen Verfahrens beibehalten wird, so daß konkave Kanten genau erfaßt werden können. Man beachte, daß, da das vollständige Verfahren nur die Bestimmung und Ausführung einer Sequenz von Umstülpungen und Bewegungen beinhaltet, die gesamte Transformation von der konkaven zu der konvexen Hülle alle Eigenschaften aufzeigt, die oben für visuell ansprechende, interpolierte Form erörtert worden sind.
  • Mit dieser Übersicht vor Augen kann nun die gesamte Sequenzialisierungsphase unter Bezugnahme auf die Fig. 22A-C beschrieben werden. Die folgende Beschreibung bezieht sich auf eine Anzahl von Sequenzialisierungsverfahren, die durch Ablaufdiagramme dargestellt sind. Diese Verfahren können ausgeführt werden, indem ein geeigneter Quellencode auf einem Computersystem läuft (ein Hardware-Blockdiagramm von ihm ist in Fig. 28 dargestellt). Wenn dieser Quellencode ausgeführt wird, arbeitet diese Hardware als eine Ablaufsteuerung oder als ein Abwickler in Abhängigkeit davon, ob sie Sequenzialisierungsverfahren der Fig. 23A-C ausgeführt werden oder die Abwicklungsverfahren der Fig. 27 ausgeführt werden. Somit bezieht sich die Terminologie Ablaufsteuerung oder Abwickler auf ein Computersystem, das jeweils das beschriebene Sequenzialisierungs- oder Ablaufsteuerungsverfahren ausführt.
  • Das in den Fig. 23A-23C dargestellte Verfahren verwendet das Umstülpungsverfahren und die dritte Art Bewegungsverfahren, die oben beschrieben worden sind. Das Sequenzialisierungsverfahren sieht nach den Scheiteln des Gegenstands in zufälliger Weise und bestimmt für jeden Scheitel, ob irgendein Umstülpungs- oder Bewegungsvorgang ausgeführt werden sollte. Grundsätzlich identifiziert das Verfahren für jeden Scheitel konkave Kanten, die diesen Scheitel enthalten, und ordnet dann den geeigneten Vorgang (Umstülpung oder Bewegung) in einer AUSFÜHRUNGSLISTE an, wenn dieser Vorgang als geometrisch sicher bestimmt wird (Prüfung auf geometrische Sicherheit ist unten beschrieben). Wenn die AUSFÜHRUNGSLISTE abgeschlossen ist, enthält sie alle Umstülpungen und Bewegungen, die notwendig sind, den konkaven Gegenstand in seine konvexe Hülle umzuwandeln. Ein Ablaufsteuerungsverfahren (im nächsten Abschnitt beschrieben) wird dann verwendet, um zu bestimmen, wann jeder Vorgang aus geführt werden soll. Dieses Ablaufsteuerungsverfahren erlaubt, daß Vorgänge parallel (wenn möglich) ausgeführt werden, so daß die Gesamtzeit verringert wird, die benötigt wird, den konkaven Gegenstand in seine konvexe Hülle umzuwandeln.
  • Das Verfahren der Fig. 23A-C enthält auch eine Anzahl geometrischer Sicherheitsprüfungen (werden unten beschrieben), die verwendet werden können, zu bestimmen, ob ein Umstülpungs- oder Bewegungsvorgang unerwünschte Wirkungen erzeugt, wie z. B., Selbstschnitte oder Entartungen bei dem Gegenstand hervorzurufen. Wenn eine dieser nachteiligen Wirkungen durch eine Bewegung erzeugt würde, wird sie nicht (zumindest anfangs) der AUSFÜHRUNGSLISTE hinzugefügt.
  • Bezugnehmend auf Fig. 23A wird zuerst ein Sichterheitsmerker (SF) auf null initialisiert. Dann wird bei S100 jeder Scheitel in dem Polyeder (die gesamte Form oder der gesamte Gegenstand) durchmustert. Während dieser Durchmusterung werden für alle konkaven Kanten Merker gesetzt. Als nächstes wird bei S110 eine Liste aller Scheitel aufgestellt, die bei einer oder mehreren mit einem Merker versehenen Reflexionskanten enthalten sind.
  • Bei S200 wird ein Scheitel aus der bei S110 errichteten Liste ausgewählt. Die Auswahl eines Scheitels aus dieser Liste ist zufällig. Bei S210 wird dann eine zweite Liste aufgestellt, die alle konkaven Kanten enthält, die den bei S200 ausgewählten Scheitel enthalten. Das Verfahren zum Aufbau der Liste konkaver Kanten für einen Scheitel ist in Fig. 24 dargestellt. Zuerst werden bei S211 zwei Polygone (A und B) identifiziert, die sich eine Kante teilen, die diesen Scheitel als einen ihrer Endpunkte aufweist. Dann wird bei S212 ein Scheitel α bei A gesucht, der mit B nicht gemeinsam ist. Bei S213 und S214 wird ein Scheitel α in der Ebenengleichung von B berechnet, um zu bestimmen, ob α in dem positiven Halbraum von B ist. Wenn das Ergebnis von S214 positiv ist, wird die gemeinsame Kante als konkav markiert (S215), wird diese konkave Kante der Liste für konkave Kanten für diesen Scheitel (S216) hinzugefügt und es wird zu S217 weitergegangen. Wenn das Ergebnis von S214 negativ ist, wird zu S217 weitergegangen und bestimmt, ob irgendwelche Kanten übrigbleiben, die auf diesen Scheitel überprüft werden sollen. Dies kann ausgeführt werden, indem bestimmt wird, ob irgendwelche Kanten, die diesen Scheitel enthalten, in einer Liste von Kanten für die Form bleiben. Vor zugsweise werden allen Kanten, die einen Scheitel enthalten, der Reihenfolge nach durchmustert, bis keine Kanten übrigbleiben. Wenn ungeprüfte Kanten übrigbleiben, werden S211-S217 für die nächste Kante wiederholt. Wenn keine Kanten übrigbleiben, wird die Liste konkaver Kanten für diesen Scheitel bei S218 zurückgegeben.
  • Als nächstes wird bei S220 eine Bestimmung durchgeführt, ob irgendwelche der konkaven Kanten in der bei S210 aufgestellten Liste Teil eines Reflexionsprismas sind. Das in Fig. 20 dargestellte Verfahren wird bei S220 verwendet. Wenn keine der Reflexionskanten für einen Winkel in einem Reflexionsprisma sind, geht der Ablauf zu S600 weiter. Wenn es irgendwelche Reflexionsprismen gibt, wird eine Bestimmung bei S300 gemacht, ob irgendwelche der Reflexionsprismen geometrisch sicher sind.
  • Die geometrische Sicherheitsprüfung für Reflexionsprismen ist in Fig. 25 dargestellt. Zuerst wird bei S310 eine Bestimmung gemacht, ob es irgendwelche Scheitel, Kanten oder Flächen innerhalb des Volumens des Reflexionsprismas gibt. Dies kann ausgeführt wer den, indem herkömmliche Schnittprüfungen verwendet werden, die bestimmen, ob ein bestimmter Vorgang zu irgendeiner Zeit die gegenwärtige Form schneidet oder stört. Diese Prüfung kann wirksam mit einem dreidimensionalen Gitter und einem Cache- Schema ausgeführt werden. Man vergleiche das oben eingegliederte Buch von Preparata u. a.. Wenn es einen Schnitt gibt, wird das Reflexionsprisma als NICHT SICHER bei S312 etikettiert, und dieses Ergebnis wird zu S300 zurückgegeben. Wenn es keine Schnitte gibt, geht der AblauF zu S314 weiter, wo eine Bestimmung ausgeführt wird, ob eine Bewegung dieses Reflexionsprismas die Topologie der Form durch Abschneiden eines Stücks des Polyeders ändert. Dieser Schritt verhindert, daß Entartungen auftreten. Diese Bestimmung kann gemacht werden, indem die neue Kante mit allen Kanten in dem Polyeder verglichen wird, wie es bis zu diesem Zeitpunkt abgeändert worden ist. Die Geradengleichung, die diese Kante enthält, kann mit den Geraden verglichen werden, die alle anderen Kanten enthalten. Wenn zwei Kanten kollinear sind, kann eine Überlappungsprüfung ausgeführt werden. Wenn einer der beiden Endpunkte von einer Kante in der anderen Kante enthalten ist, überlappen sich die Kanten, sonst tun sie es nicht. Wenn die Topologie geändert wird, wird das Reflexionsprisma als NICHT SICHER bei S212 etikettiert, wie es oben beschrieben worden ist. Wenn sich die Topologie nicht ändert, wird das Reflexionsprisma als SICHER bei S316 etikettiert, und dieses Ergebnis wird zu S300 zurückgegeben.
  • S300 wird für alle Reflexionsprismen ausgeführt, die mit dem bezeichneten Winkel verbunden sind, so daß alle Bewegungsvorgänge, die ausgeführt werden können, zu der AUSFÜHRUNGSLISTE hinzugefügt werden. Wenn es irgendwelche geometrisch sicheren Prismen gibt, geht der Ablauf zu S400 weiter, wo ein Bewegungsvorgang ausgeführt wird. Das Verfahren zur Ausführung des Bewegungsvorgangs ist in Fig. 21 dargestellt. Wenn immer ein Bewegungsvorgang ausgeführt wird, geht der Ablauf zu S210 und die Liste der konkaven Kanten für diesen Scheitel wird aktualisiert. Wenn irgendwelche Reflexionsprismen übrigbleiben, an denen nicht gewirkt werden konnte, ohne die geometrische Sicherheitsprüfung zu verletzen, die in Fig. 25 dargestellt ist, geht der Ablauf zu S305, wo dieser Bewegungsvorgang übersprungen wird. Der Ablauf geht dann zu S600. Somit bleiben, um S600 zu erreichen, keine sicheren Bewegungsvorgänge übrig (d. h., keine Reflexionsprismen verbleiben oder keine SICHEREN Reflexionsprismen verbleiben). Dies führt automatisch irgendwelche sicheren Bewegungsvorgänge in die AUSFÜHRUNGSLISTE so früh wie möglich ein.
  • Bezugnehmend auf Fig. 23B wird, wenn keine sicheren Bewegungsvorgänge verbleiben, eine Bestimmung gemacht, ob es irgendwelche ungeprüften Reflexionskanten für diesen Scheitel gibt (S600). Wenn es keine übrigbleibenden ungeprüften Reflexionskanten für diesen Scheitel gibt, geht der Ablauf zu S630 weiter, wo eine Bestimmung gemacht wird, ob alle Scheitel in der Scheitelliste (bei S110 erzeugt) geprüft worden sind. Wenn irgendwelche Scheitel in dieser Liste übrigbleiben, geht der Ablauf zu S200. Wenn alle Scheitel geprüft worden sind, geht der Ablauf zu S700 weiter. Wenn es irgendwelche Reflexionskanten gibt, die für den laufenden Scheitel übrigbleiben, geht der Ablauf zu S610 weiter. Bei S610 wird eine Bestimmung gemacht, ob eine Reflexionskante sicher ist, die umgestülpt werden soll.
  • Fig. 26 stellt ein Verfahren dar, um zu bestimmen, ob eine Reflexionskante sicher ist, die umgestülpt werden soll. Bei S611 wird eine Bestimmung gemacht, ob es irgendwelche Scheitel, Kanten oder Flächen innerhalb des Volumens des Tetraeders gibt, die durch die zwei neuen und zwei alten Dreiecke definiert sind, die bei dem Umstülpungsvorgang eingeschlossen sind. Diese Bestimmung kann in einer Weise gemacht werden, die der ähnlich ist, die für S310 in Fig. 25 beschrieben worden ist. Wenn die bei S611 gemachte Bestimmung positiv ist, wird die Reflexionskante als NICHT SICHER bei S613 etikettiert.
  • Sonst geht der Ablauf zu S615 weiter, wo eine Bestimmung gemacht wird, ob eine Umstülpung dieser konkaven Kante die Topologie der Form ändert, indem ein Stück des Polyeders abgeschnitten wird. Die bei S615 gemachte Bestimmung kann in einer Weise ausgeführt werden, die ähnlich der in bezug auf S314 in Fig. 25 beschriebenen ist. Wenn das Ergebnis von S615 positiv ist, wird die konkave Kante als NICHT SICHER bei S613 etikettiert, sonst geht der Ablauf zu S617 weiter, wo eine Bestimmung gemacht wird, ob die neue Kante ein Doppel oder ein Teil einer bestehenden Kante ist. Dieser Schritt verhindert, daß bei dem Gegenstand Selbstschnitte auftreten. Wenn die Bestimmung bei S617 positiv ist, wird die Reflexionskante als NICHT SICHER etikettiert, sonst wird die Reflexionskante als SICHER bei S619 etikettiert, und dieses Ergebnis wird zu S610 in Fig. 23B zurückgegeben.
  • Wenn eine Kante SICHER ist, umgestülpt zu werden, wird die Kante unter Verwendung des in Fig. 16 dargestellten Verfahrens umgestülpt. Nachdem eine Kante umgestülpt worden ist, geht der Ablauf zu S210, wo die Liste der konkaven Kanten für diesen Scheitel aktualisiert wird.
  • Bezugnehmend auf Fig. 23C beginnt der Ablauf bei S700. Es wird daran erinnert, daß S700 erreicht wird, wenn es keine sicheren Umstülpungen oder Bewegungen gibt, die bei dem Gegenstand zurückbleiben. Dies bedeutet nicht notwendigerweise, daß der Gegenstand seine konvexe Hülle erreicht hat. Somit wird bei S700 eine Bestimmung gemacht, ob es irgendwelche Bewegungen (Umstülpungen oder Bewegungen) während der letzten Durchmusterung des Polyeders (des gesamten Gegenstands) gegeben hat. Wenn es irgendwelche Bewegungen gegeben hat, kehrt der Ablauf zu S100 zurück, wo der gesamte Gegenstand auf Reflexionskanten abgesucht wird. Wenn es keine Bewegungen seit der letzten Abtastung des Polyeders gegeben hat, geht der Ablauf zu S710 weiter. Bei S710 wird eine Bestimmung gemacht, ob es irgendwelche Reflexionskanten gibt, die bei dem Polyeder zurückbleiben. Wenn es keine zurückbleibenden Reflexionskanten gibt, hat das Polyeder seine konvexe Hülle erreicht, und bei S720 wird ihre Ablaufsteuerungsroutine ausgeführt, die unter Bezugnahme auf Fig. 27 beschrieben wird. Wenn irgendwelche Reflexionskanten bei dem Polyeder zurückbleiben, geht der Ablauf zu S800 weiter. Wenn der Ablauf S800 erreicht, gibt es keine sicheren Bewegungen (Umstülpungen oder Bewegungen), die bei dem Polyeder zurückbleiben. Der Wert des Sicherheitsmerkers SF wird um eins bei S800 erhöht. Bei S810 wird eine Bestimmung gemacht, ob Sf = 1 ist. Wenn die Bestimmung bei S810 positiv ist, geht der Ablauf zu S820 weiter. Bei S820 werden die Geometriesicherheitsprüfungen gelockert, damit eingeschlossene Teile der Geometrie zugelassen werden. Dies ergibt, daß S310 in Fig. 25 und S611 in Fig. 26 übersprungen werden, wenn immer ein Reflexionsprisma oder eine Reflexionskante auf Sicherheit geprüft wird. Nach der Lockerung dieser ersten Sicherheitsprüfung geht der Ablauf zu S100 weiter, wo sich das gesamte Verfahren selbst wiederholt. Wenn der Ablauf S830 erreicht, gibt es keine sicheren Umstülpungen oder Bewegungen bei der konkaven Form selbst nach der Lockerung der ersten Geometriesicherheitsprüfung. Demgemäß geht bei S830, wenn SF = 2 ist, der Ablauf zu S850 weiter, wo die geometrische Sicherheitsprüfung entfernt wird. S850 ergibt, daß S314 und S615 in Fig. 25 und 26 übersprungen werden. Wenn das Ergebnis von S830 negativ ist, geht der Ablauf zu S840 weiter, wo eine Mitteilung an den Benutzer geliefert wird, die angibt, daß das anfängliche Polyeder schlecht gebildet wurde. Diese Mitteilung kann z. B. durch einen Bildschirm oder einen Drucker geliefert werden. Dies bedeutet, daß das anfängliche Polyeder die früher angegebenen Anforderungen (Geschlecht 0, einfach verbunden, usw.) nicht erfüllt.
  • Somit sieht man, wie die liste der konkaven Kanten für einen Scheitel jedesmal aktualisiert wird, wenn ein Bewegungsvorgang oder ein Umstülpungsvorgang ausgeführt wird. Es versteht sich, daß das Ablaufdiagramm der Fig. 23A-C den Umstülpungs- oder Bewegungsvorgang der AUSFÜHRUNGSLISTE hinzufügt.
  • Wenn das konkave Polyeder, das dem Verfahren für konkav-zu-konvex eingegeben worden ist, das oben beschrieben wurde, die oben beschriebenen Anforderungen erfüllt, wird eine als AUSFÜHRUNGSLISTE, die eine Reihe Umstülpungen und Bewegungen umgibt, ausgegeben, die, wenn sie ausgeführt wird, die Umwandlung der konkaven Form in ihre konvexe Hülle ergibt.
  • Das oben beschriebene Sequenzialisierungsverfahren ist ein bevorzugtes Verfahren zum Aufbau der AUSFÜHRUNGSLISTE. Indem die geoffenbarten geometrischen Sicherheitsprüfungen (Fig. 25 und 26) verwendet werden, werden Vorgänge, die Selbstschnitte, Entartungen, Änderungen der Topologie oder andere unerwünschte Wirkungen hervorrufen, solange wie möglich verzögert. Häufige Bewegungen, die anfangs als UNSICHER angesehen worden sind, werden SICHER aufgrund von Änderungen der Bereiche des Gegenstands, die die mit dieser Bewegung verbundene Kante umgeben. Manchmal werden UNSICHERE konkave Kanten aufgrund von Vorgängen an den Kanten konvex, die sie umgeben.
  • Als eine Alternative zu dem oben beschriebenen Sequenzialisierungsverfahren kann ein Treffertechnik verwendet werden, um Bewegungen gemäß einem Trefferschema zu klassifizieren, das von dem Benutzer aufgestellt wird. Ein Benutzer könnte somit das Gesamtaussehen der Metamorphose durch ein benutzerangepaßtes Trefferschema steuern. Ein Beispiel einer Treffertechnik wird nun kurz beschrieben.
  • Dieses Treffer-Sequenzialisierungsverfahren gibt eine AUSFÜHRUNGSLISTE wie oben aus, obgleich die Liste durch ein unterschiedliches Verfahren bestimmt ist, und kann somit eine Metamorphose ergeben, die unterschiedlich aussieht (obgleich die endgültige, konvexe Hülle die gleiche ist). Dieses Sequenzialisierungsverfahren: a) baut zuerst eine ANHÄNGIGKEITSLISTE der möglichen Vorgänge (Umstülpungen und Bewegungen) auf; b) zählt jeden Vorgang auf der ANHÄNGIGKEITSLISTE auf der Grundlage eines benutzerbestimmten Trefferschemas; c) wählt den höchstbewerteten Vorgang aus der ANHÄNGIGKEITSLISTE, ordnet ihn auf der AUSFÜHRUNGSLISTE an und führt diesen Vorgang durch; d) wenn irgendwelche neue konkaven Kanten durch den Vorgang gebildet werden, werden sie der ANHÄNGIGKEITSLISTE hinzugefügt; e) alle Vorgänge auf der ANHÄNGIGKEITSLISTE werden erneut durchgezählt, um Vorgänge nahe dem gerade ausgeführten hervorzuheben; und dann werden die Schritte (a)-(e) wiederholt, bis keine Vorgänge auf der ANHÄNGIGKEITSLISTE zurückbleiben. Den Vorgängen auf der AUSFÜHRUNGSLISTE werden dann Start- und Endzeit gemäß den unten in dem Ablaufsteuerungsabschnitt beschriebenen Verfahren zugeordnet.
  • Diese Trefferzähltechnik ist zweckmäßig, wenn der Benutzer wünscht, mehr Kontrolle über das Aussehen der Metamorphose zu haben. Das Folgende ist ein Beispiel eines Zählschemas, das verwendet werden kann. Diese beispielhafte Zählstrategie beginnt damit, Vorgänge an konkaven Kanten auszuführen, die der Mitte der Form am nahesten sind, und sucht Vorgänge, die sich weit fortbewegen oder ein großes Loch schließen, die beide eine große visuelle Wirkung haben. Diese Strategie versucht auch, Bewegungen so schnell wie möglich auszuführen, und versucht, alle notwendige Arbeit an einer Stelle abzuschließen, bevor sich zu einem anderen Teil der Form bewegt wird.
  • Um die Vorgänge in der ANHÄNGIGKEITSLISTE zum erstenmal zu zählen, wird jede Bewegung mit der folgenden Formel gezählt: Zähler0 = (1*Position) + (2*Bewegung) + (3*Typ) + (2*Winkel) + (-50*Schnitt), wo "Position" durch das Verhältnis des mittleren Abstands zu der Mitte der Form von allen Scheiteln aller Polygone in dem Vorgang dividiert durch den Radius der Umgrenzungskugel der Form gegeben wird, eine "Bewegung" die Strecke ist, die durch den sich bewegenden Scheitel abgedeckt wird, dividiert durch den Durchmesser der Umgrenzungskugel der Form, der "Typ" 1 für eine Umstülpung und 0 für alle anderen Vorgänge ist, der "Winkel" 0 für alle Vorgänge außer einer Umstülpung ist, wo er (1-cosθ)/2 ist, wo cosθ der Kosinus des Winkels ist, der von den zwei ursprünglichen Ebenen gebildet wird, und der "Schnitt" 0 ist, wenn der Vorgang die Form nicht schneidet, und 1 ist, wenn er es macht (d. h., er verfehlt die geometrischen Sicherheitsprüfungen, die früher beschrieben worden sind).
  • Nachdem der erste Vorgang auf der ANHÄNGIGKEITSLISTE ausgeführt worden ist, mag es erwünscht sein, Vorgänge hervorzuheben, die nahe diesem Vorgang auftreten. Dies bewirkt, daß Formen von dem Startvorgang her "ausgewickelt" werden. Dies neigt auch dazu, Situationen zu vermeiden, die Selbstschnitte erzwingen. Diese sind Beispiele einer Wertentscheidung, die in der Ablaufsteuerung über die Konstruktion der Zählfunktion eingeschlossen ist. Um diese Ziele zu verwirklichen, verwendet alles weitere Zählen die Formel. Zähler1 = Zähler0 + Geschichte. Wenn eine Umstülpung neue Polygone konstruiert, werden die Indexe der neuen Polygone auf einen Stapel gegeben. Um eine Bewegung zu zählen, wird der Stapel von unten her nach dem Polygonindex des verschobenen Polygons durchsucht (d. h., des sich bewegenden Polygons oder des Scheitels in Abhängigkeit von der Art des verwendeten Bewegungsvorgangs). Um eine Umstülpung zu zählen, wird der Stapel von unten her nach der ersten Erwähnung irgendeines der bei der Umstülpung enthaltenen Polygone durchsucht. Dieser Mechanismus ermöglicht der Ablaufsteuerung, bei jedem Schritt Bewegungen zu erfassen, die auf den durchgeführten Vorgängen aufbauen. Man nehme bspw. an, daß b ein Element am weitesten unten in dem Stapel ist, das bei irgendeinem Vorgang gefunden wurde, und w die Stapelposition für irgendeinen Vorgang ist (w ist die Höhe des Stapels, wenn kein Vorgang gefunden wird); für irgendeinen Vorgang ist Geschichte = MAX[0,30-(5*(b- w))]. Dieses beispielhafte Verfahren bevorzugt Bewegungen, wo die Polygone während einer langen Zeit vorhanden gewesen sind; je länger eine Bewegung gewartet hat, um so höher ist der Zählwert der Bewegung.
  • IIC. Ablaufsteuerung
  • Sobald die AUSFÜHRUNGSLISTE aufgestellt worden ist, sind die Form und die Reihenfolge der Vorgänge, die eine konkave Form glatt in ihre konvexe Hülle umwandeln, bekannt. Der einzige verbleibende Punkt ist der Zeitpunkt dieser Vorgänge: wann jeder Vorgang beginnt und endet. Wie bei der Sequenzialisierungsstrategie hat jedes Ablaufsteuerungsverfahren sein eigenes "Aussehen", obgleich die Wirkung üblicherweise weniger als die Wahl der Ablaufsteuerung ausgedrückt ist.
  • Es sei angenommen, daß die Transformation von einer konkaven Form zu einer konvexen Hülle durch einen skalaren Parameter c beschrieben wird, der von 0 bis zu irgendeinem maximalen Wert läuft. Jeder Vorgang a' besitzt zwei Zeitwerte: a¹Start und a¹Ende. Der erste Vorgang auf der AUSFÜHRUNGSLISTE beginnt zur Zeit 0. Um die Dauer einer Bewegung zu finden, wird auf die Gesamtstrecke gesehen, die durch den sich bewegenden Scheitel überdeckt wird. Zum Zweck der Ablaufsteuerung kann eine einfache Regel verwendet werden: alle sich bewegenden Scheitel bewegen sich mit einer konstanten Einheitsgeschwindigkeit. Somit ist die Zeit, die ein Vorgang benötigt, einfach die von dem sich bewegenden Scheitel überdeckte Strecke. Alternativen sind auch visuell bedeutsam: bspw. könnte sich ein Scheitel mit einer Geschwindigkeit bewegen, die der Strecke proportional ist, die überdeckt werden soll. Wiederum geben hier unterschiedliche Kriterien der endgültigen Transformation unterschiedliches Aussehen.
  • Die einfachste Ablaufsteuerungstechnik läuft einfach durch die AUSFÜHRUNGSLISTE, wobei aiStart ← ai-1Ende und aiEnde ← aiStart + aiDauer zugeordnet werden. Dieser Abwicklungsplan stellt sicher, daß es keine neuen Konflikte oder Selbstschnitte geben wird, die nicht ursprünglich von der Ablaufsteuerung akzeptiert worden sind.
  • Fig. 27 stellt ein Verfahren zur Ablaufsteuerung der Startzeit einer jeden Bewegung dar. Dieses Ablaufsteuerungsverfahren hebt die Parallelität hervor, indem versucht wird, jedem Vorgang eine frühestmögliche Startzeit zuzuordnen.
  • Die Liste der Bewegungen, die durch die Ablaufsteuerung (die AUSFÜHRUNGSLISTE) bestimmt ist, wird dem Abwickler eingegeben. Dann wird bei S900 eine Startzeit von 0 der ersten Bewegung in der AUSFÜHRUNGSLISTE zugeordnet. Somit a¹Start = 0. Bei S910 wird die Dauer der ersten Bewegung d¹ bestimmt, wie es oben beschrieben worden ist. Bei S920 wird die Endzeit für die erste Bewegung a¹Ende zu a¹Start + d¹ bestimmt. Als nächstes wird bei S1000 die nächste zeitfreie Bewegung (i) auf der AUSFÜHRUNGSLISTE ausgewählt. Bei S1010 wird eine Bestimmung gemacht, ob diese Bewegung zur Zeit t = 0 bestand. Wenn das Ergebnis von S1010 positiv ist, wird eine Startzeit a¹Start = 0 der Bewegung i zugeordnet. Dann werden bei S1050 und S1060 die Dauer di und die Endzeit aiEnde bestimmt, wie es oben erörtert worden ist. Der Ablauf geht dann S1070 weiter, wo eine Bestimmung gemacht wird, ob alle Bewegungen in der AUSFÜHRUNGSLISTE zeitlich festgelegt worden sind. Wenn das Ergebnis von S1070 NEIN ist, wird zu S1000 zurückgekehrt und die nächste Bewegung ausgewählt. Wenn das Ergebnis von S1070 positiv ist, wird zu S1080 weitergegangen, wo der Zeitablauf abgeschlossen wird. Bei S1080 können die Startzeit und die Endzeit so skaliert werden, daß die Startzeit der ersten Bewegung a1Start = 0 und die Endzeit der letzten Bewegung aletzte Ende = 1 sind.
  • Wenn das Ergebnis von S1010 negativ ist, geht der Ablauf zu S1030 weiter. Bei S1030 wird die Bewegung X gefunden, die die Polygone erzeugte, die in der Bewegung i eingeschlossen sind, die zeitlich festgelegt wurde. Da das Sequenzialisierungsverfahren die AUSFÜHRUNGSLISTE erzeugt, wird gewährleistet, daß die Bewegung X bereits zeitlich festgelegt worden ist. Dann wird bei S1040 die Endzeit der Bewegung X (axEnde) als die Startzeit der Bewegung i (aiStart) zugeordnet. Der Ablauf geht dann zu S1050 weiter.
  • III. Arrangement
  • Die Verfahren für konvex-zu-konvex und konkav-zu-konkav, die oben erörtert worden sind, können ausgeführt werden, indem man den Quellencode, der als Anhang A beigefügt ist, auf einem Hardwaresystem laufen läßt, wie dem System, das durch das Blockdiagramm in Fig. 28A dargestellt ist. Das System enthält einen Speicher 60 einschließ lich eines ROM (Festwertspeicher) und eines RAM (Speicher mit wahlfreiem Zugriff), worin ein Programm, das in den Fig. 8, 14, 16, 20, 21, 23A-27 dargestellt und in dem Anhang A vorgesehen ist, gespeichert und laufen gelassen wird. Die Daten, die die dreidimensionalen Formen beschreiben, werden mit der Eingabeeinrichtung 70 eingegeben und auch in einem Speicher 70 gespeichert. Die Ausgabeeinrichtung 80 kann z. B. einen Fernsehbildschirm und/oder einen Drucker zur Ausgabe von Aufforderungen an einen Benutzer oder zum Anzeigen von Schnappschüssen oder Fernsehsequenzen einer Metamorphose (wenn die Ausgabeeinrichtung 80 ein Fersehbildschirm ist) einschließen. Das gesamte System wird durch eine zentrale Verarbeitungseinheit (CPU) 50 gesteuert, indem man das Programm laufen läßt, das in dem Speicher 60 gespeichert ist. Das Programm im Anhang A ist in der Programmiersprache Cedar geschrieben.
  • Um von einer konkaven Form zu einer anderen konkaven Form zu interpolieren sind die Techniken der Abschnitte I und II zu einem einzigen Verfahren arrangiert. Es gibt drei Grundschritte, deren Sichtausgaben schematisch in den Fig. 29A-D gezeigt sind: Erstens, für die Startform Metamorphe von konkav-zu-konvex zu erzeugen (Fig. 29A- 29B); zweitens, die konvexe Hülle der Startform in die konvexe Hülle der Zielform zu transformieren (Fig. 29B-29C); drittens, Metamorphe für konvex-zu-konkave für die Zielform zu erzeugen (Fig. 29C-29D). Die Metamorphen in den Schritten 1 und 3 werden durch das gleiche Verfahren erzeugt (in Abschnitt II beschrieben). Um eine Form an irgendeinem Punkt längs ihres konkaven-konvexen Kontinuums zu erzeugen, muß man nur eine reelle Zahl zwischen 0 und 1 angeben. Das Verfahren startet mit der konkaven Form und wendet alle Bewegungen an, die vor dieser Zeit enden. Alle Vorgänge, die zu dieser Zeit noch aktiv sind, werden bei der richtigen, interpolierten Position ausgeführt. Um von konvex nach konkav zu gehen, wird einfach der Parameter von 1 bis 0 durchlaufen.
  • Wie es früher erwähnt worden ist, kann, obgleich der Zeitpunkt bestimmt wird, als wenn sich alle Scheitel mit der gleichen konstanten Geschwindigkeit bewegten, kann ein Glättungskurve verwendet werden, um plötzliche, ruckartige Starts und Stops auszuschließen, die sonst erzeugt würden. Beispielsweise würde man eine Form der Sigmoid- Funktion F(t, a) = 1/(1 + (exp(-(2t - 1)a)))(gültig für a > 0) verwenden, die einen größeren Kontrollbereich als eine kubische Funktion gibt. Diese Funktion kann auf einen Einheitsbereich skaliert werden, was g(t, a) = (f(t, a) - f(0, a))/(f(1, a) - f(0, a)) ergibt.
  • Fig. 30 ist ein Ablaufdiagramm auf einem hohen Niveau des Gesamtverfahrens, eine konkave Form P(A) in eine andere konkave Form P(B) umzuwandeln. Die konkaven Polyeder P(A) und P(B) werden getrennt bei S2000 und S2000' eingegeben. Bei S2100 und s2100' werden zeitlich bestimmte Listen von Vorgängen (Umstülpungen und Bewegungen) zur Umwandlung jeder Form in ihre konvexe Hülle CHP(A) und CHP(B) bestimmt. Die Ergebnisse der Umwandlungen von konkav-zu-konvex sind in S2200 bzw. S2200' als zwei Listen zeitlich bestimmter Vorgänge und zwei konvexe Hüllen CHP(A) und CHP(B) dargestellt. Bei S2300 wird das Umwandlungsverfahren von konvex-zu- konvex an den zwei eingegebenen konvexen Hüllen ausgeführt, um eine Liste von Normalen und Bewegungen (zwei Bewegungen für jede Normale) zu erzeugen, wie es in S2400 dargestellt ist. Somit werden drei Listen erzeugt (S2200, S2200' und S2400), die durch herkömmliche Animationsprogramme verarbeitet werden können, um dreidimensionale Formen zu erzeugen. Diese dreidimensionalen Formen können dann als Bilder auf z. B. einem Fernsehbildschirm angezeigt werden, wobei übliche Bilderzeugungsprogramme verwendet werden. Die drei Listen können aufeinanderfolgend oder gleichzeitig ausgeführt werden, wie es unten beschrieben ist.
  • Das einfachste Arrangement gilt für die drei Komponentenschritte (P(A) → CHP(A); CHP(A) → CHP(B) und CHP(B) → P(B) der Reihe nach, wie es in Fig. 31A gezeigt ist. Der erste Schritt beginnt bei 0 und der dritte endet zur Zeit 1. Der Benutzer legt den Start und das Ende des zweiten Schritts fest, die ebenfalls das Ende des ersten bzw. der Start des dritten sind. Wenn eine der beiden Formen bereits konvex ist, dann kann seine konkav/konvex Schrittdauer auf 0 gesetzt werden.
  • Ein glatterer Übergang kann durch Überlappung der Schritte hergestellt werden. Die allgemeinste Überlappungsform gibt dem Benutzer Kontrolle über vier Zeiten, wie es in Fig. 31B gezeigt ist: das Ende des ersten und des zweiten Schritts und der Start des zweiten und des dritten Schritts. Wenn zwei oder mehr Schritte zu einer bestimmten Zeit überlappen, dann ist das Ergebnis zu dieser Zeit der Schnitt der betreffenden Polyeder. Man beachte, daß dies verlangen mag, den Schnitt mehrerer, nichtkonvexer Polyeder zu finden. Das extremste Beispiel dieser Zeitlage ist in Fig. 31C gezeigt, wo jeder Schritt das gesamte Zeitintervall einnimmt.
  • Das Hauptziel der vorliegenden Erfindung ist, eine visuell ansprechende, automatische Metamorphosetechnik zu erzeugen. Eine nützliche Klasse Eigenschaften ist unterschieden worden, und die geoffenbarten Verfahren erzeugen interessante Metamophre dreidimensionaler Formen. Das hier dargestellte Verfahren ist nicht universell: es ist auf einfach verbundene Dreiecksgitter-Polyeder des Geschlechts 0 begrenzt.
  • Der oben angegebene Abwickler ist nicht ideal, da er Selbstschnitte in den Metamorphen erzeugen kann, selbst wenn jede Begrenzungsform frei von ihnen ist. Die beschriebene Geschichtstechnik versucht, Vorgänge, die die Form schneiden, zu verarbeiten, indem sie verzögert werden.
  • Ein Benutzer kann ein implizites Merkmal verstärken, das zu einer etwas erweiterten Version des Verfahrens paßt. Man betrachte die Transformation eines Pferdes in einen Hund: beide haben vier unabhängige Füße. Das Grundverfahren, das oben dargestellt worden ist, würde zuerst das Pferd zu seiner Hülle wachsen lassen, wobei die Definition der Füße verlorengeht, würde die Hülle des Hundes transformieren und dann die Füße wiedergewinnen, wenn zu der konkaven Zielform zurückgekehrt wird. Um vier unabhängige Füße durchgehend beizubehalten, könnte man die Start- und die Zielform zum Zweck der Metamorphose überlagern. Jeder konstruierte Metamorph kann dann an seinen Platz durch eine zunehmend gewichtete Umkehrtransformation verschoben und zurückskaliert werden. Das Verfahren beginnt, indem die gemeinsame Form gefunden wird: die CSG Vereinigung der überlagerten Start- und Zielform. Dann wird jeder Metamorph mit seiner Vereinigungsform geschnitten. Wenn der Benutzer einen vollen Bereich linearer Transformatioen zur Verfügung hat, die Anfangsüberlagerung der Begrenzungsformen zu erzeugen, dann können gleiche Merkmale einander überlagert werden und sie werden ihre individuelle Identität während der Transformation beibehalten. Bei dem obigen Beispiel würde sich der Körper ändern, während sich die vier Beine plötzlich von einem Tier zu dem anderen ändern, statt von der Hülle verschluckt zu werden und dann wiederzuerscheinen. Die Metamorphen würden von Pferd- auf Hundegröße schrumpfen, wenn die Interpolation fortschreitet.

Claims (12)

1. Ein Computerverfahren zur Umwandlung einer konkaven Form in ihre konvexe Hülle, wobei die genannte Form als elektronische Signale gespeichert ist, die die genannte Form als ein sich nichtselbstschneidendes, einfach zusammenhängendes, in Dreiecke unterteiltes Polyeder des Geschlechts 0 darstellen, das als eine Mehrzahl Dreiecksflächen definiert ist, wobei jede Dreiecksfläche als eine Gruppe von drei Koordinatenpunkten definiert ist, wobei das genannte Verfahren umfaßt:
a) feststellen aller konkaver Kanten in der genannten konkaven wobei sich jede der genannten konkaven Kanten zwischen zwei benachbarten Dreiecksflächen befindet und eine gemeinsame Kante und zwei gemeinsame Scheitel der genannten zwei benachbarten Dreiecksflächen definiert;
b) Auswählen einer der genannten festgestellten konkaven Kanten;
c) Ausführen eines Ausschließungsverfahrens für eine konkave Kante an der genannten konkaven Kante, indem die Gruppe von drei Koordinatenpunkten, die jedes der genannten zwei benachbarten Dreiecksflächen definiert, die mit der genannten ausgewählten konkaven Kante verbunden sind, abgeändert wird, so daß die genannte ausgewählte konkave Kante ausgeschlossen wird, wobei das genannte Ausschließungsverfahren die genannte konkave Form ändert, so daß sie näher an der genannten konvexen Hülle ist; und
d) Wiederholen der Schritte (a)-(c), so daß irgendwelche neuen konkaven Kanten, die durch das Ausschließungsverfahren erzeugt werden, festgestellt werden und gegebenenfalls ausgeschlossen werden, wobei die Schritte (a)-(c) wiederholt werden, bis keine konkaven Kanten zurückbleiben.
2. Ein Computerverfahren zur Umwandlung einer konkaven Form in ihre konvexe Hülle, wobei die genannte Form als elektronische Signale gespeichert ist, die die genannte Form als ein sich nichtselbstschneidendes, einfach zusammenhängendes, in Dreiecke unterteiltes Polyeder des Geschlechts 0 darstellen, das als eine Mehrzahl Dreiecksflächen definiert ist, wobei jede Dreiecksfläche als eine Gruppe von drei Koordinatenpunkten definiert ist, wobei das genannte Verfahren umfaßt:
a) Feststellen aller konkaver Kanten in der genannten konkaven Form;
b) Aufbauen einer Scheitelliste, die alle Scheitel enthält, die sich an einer oder mehreren der genannten festgestellten konkaven Kanten befinden;
c) Auswählen eines Scheitels aus der genannten Scheitelliste;
d) Aufbauen einer Liste der konkaven Kanten, die alle konkaven Kanten enthält, die den genannten ausgewählten Scheitel enthalten;
e) Auswählen einer konkaven Kante aus der genannten Liste der konkaven Kanten;
f) Ausführen eines Sicherheitsverfahrens an der genannten ausgewählten, konkaven Kante, um zu bestimmen, ob ein Ausschließungsverfahren für eine konkave Kante sicher bei der genannten ausgewählten, konkaven Kante ausgeführt werden kann, ohne visuell unerwünschte Nebenwirkungen zu bewirken, die an der genannten konkaven Form auftreten;
g) Ausführen des genannte Ausschließungsverfahrens für konkave Kanten bei der genannten ausgewählten konkaven Kante, wenn die genannte konkave Kante als sicher bestimmt wird, sonst Zurückkehren zu dem Schritt (e) und Auswählen einer unterschiedlichen konkaven Kante aus der genannten Liste der konkaven Kanten, wobei das genannte Ausschließungsverfahren die genannte konkave Form ändert, so daß sich die genannte konkave Form näher zu der genannten konvexen Hülle bewegt;
h) Wiederholen der Schritte (d)-(g) für den ausgewählten Scheitel, so daß die genannte Liste der konkaven Kanten für den ausgewählten Scheitel aktualisiert wird, nachdem ein Ausschließungsverfahren ausgeführt worden ist, wobei die Schritte (d)-(g) wiederholt werden, bis keine sicheren konkaven Kanten für den ausgewählten Scheitel zurückbleiben;
i) Zurückkehren zu dem Schritt (c) und Auswählen eines vorhergehend nichtausgewählten Scheitels;
j) Wiederholen der Schritte (c)-(i) bis alle Scheitel in der konkaven Form ausgewählt sind; und
k) Wiederholen der Schritte (a)-(j) bis keine konkaven Kanten zurückbleiben, wobei das genannte Sicherheitsverfahren beim Schritt (f) abgeändert wird, um als sicher visuell stärker unannehmbare Ausschließungen konkaver Kanten zu akzeptieren, wobei jedesmal die Schritte (a)-(j) wiederholt werden, ohne irgendwelche Ausschließungsvorgänge auszuführen.
3. Das Verfahren des Anspruchs 2, wobei der Schritt (a) für jedes Paar einer ersten und zweiten benachbarten Dreiecksfläche in der genannten konkaven Form enthält:
i) Feststellen eines Scheitels in der genannten ersten Fläche, der nicht in der genannten zweiten Fläche ist;
ii) Auswerten des genannten festgestellten Scheitels in einer Ebenengleichung der genannten zweiten Fläche; und
iii) Bestimmen, daß eine zwischen dem genannten Paar einer erste und zweiten benachbarten Dreiecksfläche definierte Kante konkav ist, wenn das Ergebnis von (ii) positiv ist.
4. Das Verfahren des Anspruchs 2 oder 3, wobei das genannte Sicherheitsverfahren wenigstens enthält eines von:
i) Bestimmen, ob Schnitte in der konkaven Form auftreten, wenn das Ausschließungsverfahren für konkave Kanten ausgeführt wird; und
ii) Bestimmen, ob die Ausführung des Ausschließungsverfahrens für konkave Kanten die Topologie der konkaven Form ändert.
5. Das Verfahren des Anspruchs 4, wobei die beiden Bestimmungen (i) und (ii) gemacht werden, um zu bestimmen, ob ein Ausschließungsverfahren sicher ist.
6. Das Verfahren des Anspruchs 2, das des weiteren zwischen den Schritten (e) und (f) umfaßt:
i) Bestimmen, ob die genannte ausgewählte konkave Kante Teil eines Reflexionsprismas ist, indem bestimmt wird, ob zwei benachbarte Dreiecksflächen, die die genannte konkave Kante gemeinsam haben, auch eine dritte benachbarte Dreiecksfläche gemeinsam haben;
ii) Auswählen eines Umstülpungsvorgangs als das genannte Ausschließungsverfahren für konkave Kanten, wenn die genannte konkave Kante nicht als Teil eines Reflexionsprismas bestimmt wird, wobei der genannte Umstülpungsvorgang den Ausschluß der genannten zwei benachbarten Dreiecksflächen und die Erzeugung zweier neuer Dreiecksflächen ergibt, die genannten zwei neuen Dreiecksflächen eine gemeinsam benutzte Kante haben, die konvex ist und durch zwei neue gemeinsame Scheitel definiert ist, wobei die genannten zwei neuen gemeinsamen Scheitel den zwei gemeinsam nicht benutzten Scheiteln der genannten zwei benachbarten Dreiecksflächen vor dem Umstülpen entsprechen, die genannten zwei neuen Dreiecksflächen zwei nicht gemeinsame Scheitel ha ben, die den zwei gemeinsam benutzten Scheiteln der genannten zwei benachbarten Dreiecksflächen vor dem Umstülpen entsprechen; sonst
iii) Auswählen eines Verschiebungsvorgangs als das genannte Ausschließungsverfahren für konkave Kanten, wobei der genannte Verschiebungsvorgang den Ausschluß der genannten zwei benachbarten Dreiecksflächen, der genannten gemeinsamen dritten benachbarten Dreiecksfläche, des gemeinsamen Scheitels, der allen drei genannten Dreieckecksflächen gemeinsam ist und die Erzeugung einer neuen vierten Dreiecksfläche ergibt, die durch die drei Scheitel der genannten drei ausgeschlossenen Flächen definiert ist, die von allen drei genannten ausgeschlossenen Flächen nicht gemeinsam benutzt wurden.
7. Das Verfahren nach irgendeinem der vorhergehenden Ansprüche, wobei die genannte Umwandlung der genannten konkaven Form in die genannte konvexe Hülle in einer Zeitdauer T auftritt, wobei alle Ausschließungsverfahren für konkave Kanten geplant sind, zu einer bestimmten Zeit t, wobei 0 &le; t < T zu beginnen, wodurch eine Umwandlungsform durch irgendeinen Wert von t definiert ist, wenn 0 < t < T.
8. Das Verfahren nach irgendeinem der vorhergehenden Ansprüche, das des weiteren umfaßt:
Anzeigen der Umwandlung der genannten konkaven Form in die genannte konvexe Hülle bei irgendeinem Wert von t, wenn 0 &le; t &le;, auf einem Videobildschirm.
9. Das Verfahren des Anspruchs 8, das des weiteren umfaßt:
Definieren einer Maskenform, die gleich der Vereinigung der genannten konkaven Form und einer anderen Form ist; und
Anzeigen des Schnitts der genannten Maskenform und der genannten Umwandlung der genannten konkaven Form auf dem genannten Videobildschirm, wenn 0 < t < T.
10. Das Verfahren nach irgendeinem der vorhergehenden Ansprüche, wobei eine Gesamtzahl X von Ausschließungsverfahren für konkave Kanten verlangt wird, um die genannte konkave Form in die genannte konvexe Hülle umzuwandeln, und wobei es ferner umfaßt:
Bestimmen einer Startzeit aiStart für jedes Ausschließungsverfahren für konkave Kanten, wobei 1 &le; i &le; X, so daß alle Ausschließungsverfahren zur Zeit T abgeschlossen sind.
11. Das Verfahren des Anspruchs 10, wobei die genannte Startzeit aiStart für jedes Ausschließungsverfahren bestimmt wird, damit es so früh wie möglich innerhalb der Zeitdauer T ist, wobei unterschiedliche Ausschließungsverfahren erlaubt sind, parallel aufzutreten, und die genannten Startzeiten bestimmt sind durch:
i) Erzeugen einer Liste aller Ausschließungsverfahren, die verlangt werden, die genannte konkave Form in die genannte konvexe Hülle umzuwandeln;
ii) Auswählen eines ersten Ausschließungsverfahens aus der Liste und Zuordnen einer Startzeit a¹Start = t = 0 für das genannte erste Ausschließungsverfahren;
iii) Bestimmen einer Dauer di des genannten ausgewählten Ausschließungsverfahrens, wobei die genannte Dauer gleiche einer Zeitdauer ist, die verlangt wird, die genannten Gruppen von drei Koordinatenpunkten abzuändern, die die zwei benachbarten Dreiecksflächen definieren, die mit der genannten konkaven Kante verbunden sind, so daß die genannte konkave Kante ausgeschlossen wird;
iv) Zuordnen einer Endzeit aiEnde &larr; aiStart + di für das genannte ausgewählte Ausschließungsverfahren;
v) Auswählen eines nächsten Ausschließungsverfahrens aus der genannten Liste;
vi) Bestimmen der Startzeit aiStart für das genannte ausgewählte Ausschließverfahren, indem das genannte ausgewählte Ausschließungsverfahren geplant wird, zu einer ausgewählten Zeit so früh wie möglich, nicht früher als t = 0, zu beginnen, indem bestimmt wird, ob die konkave Kante, die mit dem ausgewählten Ausschließungsverfahren verbunden ist, zu der genannten ausgewählten Zeit vorhanden ist; und
vii) Wiederholen der Schritte (iii)-(vi) bis kein Ausschließungsverfahren verbleibt.
12. Eine Computervorrichtung zur Ausführung des Verfahrens nach irgendeinem der vorhergehenden Ansprüche, wenn geeignet programmiert,
wobei die Vorrichtung einen Prozessor und mit diesem verbunden einen Speicher und wenigstens eine Eingangs/Ausgangseinrichtung umfaßt,
wobei der Prozessor in Verbindung mit dem Speicher und der oder jeder Eingangs/Ausgangseinrichtung betreibbar ist, und wodurch er fähig ist, bei der Verwendung Befehle entsprechend dem genannten Verfahren auszuführen.
DE69226617T 1991-12-30 1992-12-21 Reihung und Planung von Bewegungen für das Umwandeln von konkaven Polyedern in ihre konvexen Hüllen Expired - Fee Related DE69226617T2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US07/814,783 US5317681A (en) 1991-12-30 1991-12-30 Sequencing and scheduling moves for converting concave polyhedra to their convex hulls

Publications (2)

Publication Number Publication Date
DE69226617D1 DE69226617D1 (de) 1998-09-17
DE69226617T2 true DE69226617T2 (de) 1999-02-04

Family

ID=25215995

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69226617T Expired - Fee Related DE69226617T2 (de) 1991-12-30 1992-12-21 Reihung und Planung von Bewegungen für das Umwandeln von konkaven Polyedern in ihre konvexen Hüllen

Country Status (4)

Country Link
US (1) US5317681A (de)
EP (1) EP0550236B1 (de)
JP (1) JP3209599B2 (de)
DE (1) DE69226617T2 (de)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07120434B2 (ja) * 1992-01-29 1995-12-20 インターナショナル・ビジネス・マシーンズ・コーポレイション ボリュームレンダリングを行う方法及び装置
US5588108A (en) * 1994-09-27 1996-12-24 Micrografx, Inc. System and method for generating graphics charts
US5613093A (en) * 1994-10-12 1997-03-18 Kolb; George P. Apparatus and method for drill design
US5704028A (en) * 1994-12-21 1997-12-30 Micrografx, Inc. Graphics systems and method having data fields and shape placement control
US5771045A (en) * 1995-10-23 1998-06-23 Hewlett-Packard Company Method for polygon decomposition
US5742750A (en) * 1996-02-13 1998-04-21 Micrografx, Inc. System and method for automatically inserting and deleting an object in a graphics chart
US6075541A (en) * 1997-11-07 2000-06-13 Trimble Naviagtion Limited Topographic triangulation in reduced time
AU744461B2 (en) * 1998-08-28 2002-02-21 Canon Kabushiki Kaisha Method and apparatus for transforming a set of closed curves
US7650266B2 (en) * 2005-05-09 2010-01-19 Nvidia Corporation Method of simulating deformable object using geometrically motivated model
JP4636146B2 (ja) * 2008-09-05 2011-02-23 ソニー株式会社 画像処理方法、画像処理装置、プログラム及び画像処理システム
CN112270679B (zh) * 2020-11-19 2022-04-22 浙江大学 一种结合凹点与凹边的凸多边形轮廓的图像分割方法

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4974177A (en) * 1985-10-04 1990-11-27 Daikin Industries Ltd. Mapping circuit of a CRT display device
US4901251A (en) * 1986-04-03 1990-02-13 Advanced Micro Devices, Inc. Apparatus and methodology for automated filling of complex polygons
US4962468A (en) * 1987-12-09 1990-10-09 International Business Machines Corporation System and method for utilizing fast polygon fill routines in a graphics display system
JP2790815B2 (ja) * 1988-08-10 1998-08-27 株式会社リコー 画像データ圧縮方法
US5129051A (en) * 1990-03-16 1992-07-07 Hewlett-Packard Company Decomposition of arbitrary polygons into trapezoids

Also Published As

Publication number Publication date
JPH05258019A (ja) 1993-10-08
US5317681A (en) 1994-05-31
JP3209599B2 (ja) 2001-09-17
EP0550236A2 (de) 1993-07-07
DE69226617D1 (de) 1998-09-17
EP0550236A3 (de) 1994-01-12
EP0550236B1 (de) 1998-08-12

Similar Documents

Publication Publication Date Title
DE69227095T2 (de) Bewegungen zur Umwandlung von konkaven Polyedern in ihre konvexen Hüllen
DE69924700T2 (de) Verfahren zur Darstellung von durch Oberflächenelemente repräsentierten grafischen Objekten
DE60026197T2 (de) Detailgerichtete hierarchische Distanzfelder in der Objektmodellierung
DE69812732T2 (de) Verfahren und Gerät zur schnellen Wiedergabe von durch Computer erzeugten Bildern von komplexen Strukturen
DE69907415T2 (de) Bestimmung sichtbarer objekte für interaktive visualisation
DE112007002991B4 (de) Computergraphikschattenvolumen unter Verwendung von hierarchischem Okklusions-Culling
DE60032832T2 (de) Darstellung einer gekrümmten Oberfläche in mehreren Auflösungen
DE102020000810A1 (de) 3D-Objektrekonstruktion unter Nutzung einer fotometrischen Netzdarstellung
DE69020780T2 (de) Vielfache Tiefenpuffer für Graphik und Festkörpermodellierung.
DE69830767T2 (de) Verfahren und Vorrichtung zum Zusammensetzen geschichteter synthetischer graphischer Filter
DE69807479T2 (de) Erzeugung eines Bildes eines dreidimensionalen Objekts
DE69700961T2 (de) Objektorientiertes verfahren und system zum zeichnen von 2d- und 3d-formen auf eine projektionsfläche
DE69713164T2 (de) Rechnersystem und verfahren zum definieren und herstellen von bildern unter benutzung von strukturierten objekten mit veränderlichen kantenkarakteristiken
DE69027402T2 (de) Verfahren und Vorrichtung zur Steuerung von Robotern und ähnlichem zum Gebrauch hierarchisch organisierter &#34;Bubble-Daten&#34;, die entlang einer Mittelachse angeordnet sind
DE69924230T2 (de) Verfahren zur Modellierung von durch Oberflächenelemente dargestellten grafischen Objekten
DE69512262T2 (de) Verfahren zum erzeugen von räumlich ausgewogenen abgrenzvolumenhierarchien zur anwendung in einer computererzeugten darstellung einer komplexen struktur
DE69226617T2 (de) Reihung und Planung von Bewegungen für das Umwandeln von konkaven Polyedern in ihre konvexen Hüllen
DE112022004426T5 (de) Verschobene Mikronetze für Ray- und Pathtracing
Deussen et al. An illustration technique using hardware-based intersections and skeletons
Reddy SCROOGE: Perceptually‐Driven Polygon Reduction
DE60026785T2 (de) Bildverarbeitungsgerät
DE19581872B4 (de) Dreidimensionales Graphikaufbereitungssystem
Sherstyuk Convolution surfaces in computer graphics
GB2540791A (en) Apparatus, methods, computer programs and non-transitory computer-readable storage media for generating a three-dimensional model of an object
DE60215916T2 (de) Volumenausschneidung für 3d rechnergrafik

Legal Events

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