DE69318930T2 - Bilddatenverarbeitung - Google Patents
BilddatenverarbeitungInfo
- Publication number
- DE69318930T2 DE69318930T2 DE69318930T DE69318930T DE69318930T2 DE 69318930 T2 DE69318930 T2 DE 69318930T2 DE 69318930 T DE69318930 T DE 69318930T DE 69318930 T DE69318930 T DE 69318930T DE 69318930 T2 DE69318930 T2 DE 69318930T2
- Authority
- DE
- Germany
- Prior art keywords
- bezier
- curvature
- given
- sub
- determining
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Lifetime
Links
- 238000012545 processing Methods 0.000 title claims description 17
- 238000000034 method Methods 0.000 claims description 44
- 239000013598 vector Substances 0.000 claims description 36
- 230000002452 interceptive effect Effects 0.000 claims description 27
- 238000009877 rendering Methods 0.000 claims description 21
- 230000004044 response Effects 0.000 claims description 11
- 230000009466 transformation Effects 0.000 description 14
- 230000008569 process Effects 0.000 description 13
- 238000012360 testing method Methods 0.000 description 12
- 230000006870 function Effects 0.000 description 7
- 238000013459 approach Methods 0.000 description 5
- 238000002156 mixing Methods 0.000 description 4
- 238000007781 pre-processing Methods 0.000 description 4
- 238000000844 transformation Methods 0.000 description 4
- 230000008901 benefit Effects 0.000 description 3
- 238000006243 chemical reaction Methods 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 239000011159 matrix material Substances 0.000 description 2
- 230000001131 transforming effect Effects 0.000 description 2
- PCTMTFRHKVHKIS-BMFZQQSSSA-N (1s,3r,4e,6e,8e,10e,12e,14e,16e,18s,19r,20r,21s,25r,27r,30r,31r,33s,35r,37s,38r)-3-[(2r,3s,4s,5s,6r)-4-amino-3,5-dihydroxy-6-methyloxan-2-yl]oxy-19,25,27,30,31,33,35,37-octahydroxy-18,20,21-trimethyl-23-oxo-22,39-dioxabicyclo[33.3.1]nonatriaconta-4,6,8,10 Chemical compound C1C=C2C[C@@H](OS(O)(=O)=O)CC[C@]2(C)[C@@H]2[C@@H]1[C@@H]1CC[C@H]([C@H](C)CCCC(C)C)[C@@]1(C)CC2.O[C@H]1[C@@H](N)[C@H](O)[C@@H](C)O[C@H]1O[C@H]1/C=C/C=C/C=C/C=C/C=C/C=C/C=C/[C@H](C)[C@@H](O)[C@@H](C)[C@H](C)OC(=O)C[C@H](O)C[C@H](O)CC[C@@H](O)[C@H](O)C[C@H](O)C[C@](O)(C[C@H](O)[C@H]2C(O)=O)O[C@H]2C1 PCTMTFRHKVHKIS-BMFZQQSSSA-N 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
- 230000014616 translation Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T17/00—Three dimensional [3D] modelling, e.g. data description of 3D objects
- G06T17/20—Finite element generation, e.g. wire-frame surface description, tesselation
Landscapes
- Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Computer Graphics (AREA)
- Geometry (AREA)
- Software Systems (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Image Generation (AREA)
- Processing Or Creating Images (AREA)
Description
- Die Erfindung betrifft eine Vorrichtung und ein Verfahren zum Verarbeiten von dreidimensionalen Objektdaten.
- Insbesondere betrifft sie ein System, wie z. B. ein interaktives System, in welchem Objekte durch Bezier-Teliflächen definiert sind, die in eine Vielzahl von Polygonen zum Rendem der Objekte aufgeteilt werden.
- Es sind Graphiksysteme bekannt, in welchen zweidimensionale Bilder als Reaktion auf datendefinierende Elemente innerhalb eines dreidimensionalen Raums erzeugt werden. Das endgültige zweidimensionale Ergebnis kann eine sehr große Zahl von Farbbildelementen (Pixel) aufweisen, welche auf einem Monitor betrachtet oder auf ein Bildtragmedium gedruckt werden können.
- In interaktiven Systemen, welche vorgesehen sind, um Daten zu erzeugen, die einen dreidimensionalen Raum darstellen, scheinen sich Objekte als Reaktion auf Eingangsbefehle innerhalb des dreidimensionalen Raums zu bewegen. Somit ist in solchen Systemen eine Vorrichtung erforderlich, um ein zweidimensionales Bild aus Daten wiederholt zu rendern, welche einen dreidimensionalen Raum darstellen, da sich die Position und/oder die Orientierung der Objekte, der Lichtquellen und die Betrachtungsposition als Reaktion auf die Eingangs befehle ändern. Typisch ist in einer interaktiven Umgebung eine Vorrichtung erforderlich, um die Ausgangsbilder mit einer Bildfolgefrequenz zwischen fünf bis zwanzig Bilder je Sekunde zu erzeugen.
- Herkömmliche Vorrichtungen dieser Type erfordern einen wesentlichen Anteil von Berechnungsaufwendungen, und in der Vergangenheit hat dieses Erfordernis wesentliche Anstrengungen bei der Systemverfügbarkeit nach sich gezogen. Viele. Verfahren sind im Namen des vorliegenden Anmelders entwikkelt worden, einige von diesen bilden die Grundlage für Patentanmeldungen des Anmelders, welche die Berechnungskosten eines interaktiven dreidimensionalen Graphiksystems vermindem. Diese Verfahren gestatten die Herstellung interaktiver dreidimensionaler Graphiksysteme, ohne daß speziell entwikkelte Hardware erforderlich ist.
- In einem System dieser Type unterliegt die Objektgeometrie Transformationen als Reaktion auf Transformationsmatrizen. Die Geometrie ist durch die Ecken einer Vielzahl von Polygonen definiert, und um eine Transformation des Objekts zu be wirken, ist es notwendig, die Matrixtransformation jeder der Ecken auszuführen. Wenn somit eine große Zahl von Polygonen vorliegt, ist ein wesentlicher Berechnungsaufwand erforderlich, um alle objektausbildenden Ecken zu transformieren.
- Als eine Wahlmöglichkeit zur Transformation der Ecken ist auch bekannt, vollständige Flächen eines Objekts zu transformieren, welche dann in Polygone gerendert werden, nachdem die Transformation erfolgt ist. Bei dieser Herangehensweise ist es nicht erforderlich, eine große Zahl von Ecken zu transformieren, es sei denn, ausreichende Daten können transformiert werden, um das Berechnen des zu rekonstruierenden Objekts zuzulassen, nachdem die Transformation erfolgt ist.
- Eine Fläche, welche durch Bezierkurven definiert ist und als eine Bezier-Teilfläche bezeichnet wird, ist eine geeignete Fläche für diese Transformationstype. Somit kann eine relativ große Teilfläche, welche in der Lage ist, einen großen Bereich von Kurven zu definieren, durch Spezifizieren von sechzehn Kontrollpunkten identifiziert werden, wobei jeder Kontrollpunkt entweder ein Endkontrollpunkt oder ein Zwischenkrümmungskontrollpunkt für zwei der acht Bezierkurven ist, welche die Teilfläche definieren. Eine Bezierkurve weist eine endliche Länge auf und wird an jedem ihrer Enden durch Endkontrollpunkte abgeschlossen. Die Zwischenkrümmungskontrollpunkte definieren die Ausdehnung der Krümmung, welche zwischen den Endpunkten vorliegt, doch die tatsächliche Kurve verläuft nicht durch die Zwischenkrümmungskon trollpunkte. Es ist darauf hinzuweisen, daß eine Bezier- Teilfläche eine dreidimensionale Teilfläche definiert und die Kontrollpunkte der Teilfläche innerhalb des dreidimensionalen Raums beliebig positioniert werden können. Um das Rendern auszuführen, ist es jedoch notwendig, die Ebene in Polygone aufzuteilen, welche im wesentlichen flach oder wenigstens flach genug sind, um ein überzeugendes Rendern auszuführen.
- Um das Rendern auszuführen, ist z. B. aus "Computer Graphics Principles and Practice" von Foley, van Dam, Feiner und Hughes, 2. Ausgabe, Addison-Wesley Publishing Company, bekannt,s rekursiv oder iterativ Bezier-Teilflächen zu unterteilen, wirkungsvoll mehr Punkte zu erzeugen, welche eine größere Annäherung an die tatsächliche Kurve aufweisen. Das Rendern kann dann unter Verwendung dieser Punkte ausgeführt werden, um flache cdgcd-Polygone, gewöhnlich Vierecke oder vorzugsweise Dreiecke, zu definieren, wonach den Bereichen innerhalb der Polygone durch einen als Abtastumwandlung bekannten Prozeß einzelne Pixel zugeordnet werden.
- Das Problem mit bekannten Verfahren zum Ausführen der Unterteilung besteht jedoch darin, daß es nach jeder Iteration notwendig ist, zu bestimmen, ob genügend Teilungen ausgeführt worden sind. Es ist bekannt, daß Flachlagetests ausge führt werden können, nachdem jede Unterteilung ausgeführt worden ist. Es ist jedoch auch bekannt, daß die Berechnungs kosten zum Ausführen eines solchen Flachlagetests relativ hoch sind. Obgleich die erforderlichen Handhabungen zum Ausführen der Unterteilung selbst keine unrealistischen An strengungen bei den verfügbaren Verarbeitungsmöglichkeiten verlangen, macht die Notwendigkeit des Ausführens des Flachlagetests als Teil des Unterteilungsprozesses die Verwendung der Bezier-Teilflächen wenig verlockend. Dies ist der Fall, weil der Nutzen der Berechnung, nicht alle Polygone transformieren zu müssen, im wesentlichen während des Unterteilungsprozesses zum Rekonstruieren der Polygone verlorengeht, nachdem eine Transformation erfolgt ist.
- Das vorstehend genannte Dokument "Computer Graphics Principles and Practice" zeigt auf, daß eine Wahlmöglichkeit zum Ausführen eines Flachlagetests nach jedem Unterteilen rekursiv auszuführen ist, um bis zu einer festgelegten Tiefe zu unterteilen, wobei der Flachlagetest auf Kosten einer zusätzlichen Unterteilung vermieden wird.
- EP-A-0366463 zeigt ein Verfahren der Schattierung eines Graphikbilds auf, in welchem ein dreieckförmiger, facettenerzeugender Teil einer dreidimensional gekrümmten Oberfläche rekursiv in Unterdreiecke geteilt wird, bis die Unterdreiekke für das Gouraud-Schattieren flach genug sind. Die Rekursionstiefe wird durch Ausführen eines Tests auf jedem Rekursionsniveau bestimmt, einschließlich des nullten, durch Berechnen eines Einheitslängen-Oberflächennormalvektors für jede Ecke des Dreiecks oder des Unterdreiecks und deren Vergleich durch Berechnen deren Punktprodukte, um zu bestimmen, wie nahe sie der Einheit kommen. Wenn jedes der drei Punktprodukte einen vorbestimmten Wert übersteigt, wird angenommen, daß die Oberfläche in der Nähe des Dreiecks/Unterdreiecks in einer Ebene liegt. Es wird außerdem gezeigt, daß die Rekursion eine Funktion der Größe des Unterdreiecks sein kann und daß das Festlegen der Rekursionstiefe bei vier Rekursionsaufrufen für jedes Dreieck (dadurch Teilen in 256 Unterdreiecke) erkannt worden ist, zu zufriedenstellenden Ergebnissen zu führen.
- EP-A-0481463 zeigt ein Verfahren zum Näherungsausdruck einer Kurve zum Erzeugen eines Umrißfonts auf, in welchem eine Kurve, die ein Zeichen darstellt, in Segmentkurven geteilt wird, die Segmentkurven in eine Vielzahl von Teilen unterteilt werden und angrenzende Unterteilungspunkte durch eine gerade Linie verbunden werden. Vier Verfahren zur Auswahl der Anzahl der an einer Segmentkurve auszuführenden Unterteilungen werden beschrieben. In dem ersten Verfahren wird die Anzahl der Unterteilungen auf der Grundlage der Summe der Längen der Linien bestimmt, die alle Kontrollpunkte verbinden, welche die Kurve definieren, abzüglich der Länge der Linie, welche die zwei Endkontrollpunkte verbindet. In dem zweiten Verfahren wird die Anzahl der Unterteilungen auf der Grundlage der Fläche des Vierecks bestimmt, das durch das aufeinanderfolgende Verbinden aller Kontrollpunkte, welche die Kurve definieren, erzeugt wird. In dem dritten Verfahren wird die Anzahl der Unterteilungen auf der Grundlage der Summe der Fläche eines ersten Dreiecks bestimmt, welches durch aufeinanderfolgendes Verbinden von drei der Kontrollpunkte, welche die Kurve definieren, erzeugt wird, und der Fläche eines zweiten Dreiecks, welches durch aufeinanderfolgendes Verbinden von drei der Kontrollpunkte erzeugt wird, welche die Kurve definieren. In dem vierten Verfahren wird die Anzahl der Unterteilungen durch rekursives Erzeugen der Unterteilungspunkte für die Segmentkurve und das Testen der Längen der Liniensegmente, welche die sich ergebenden Unterteilungspunkte verbinden, bestimmt.
- Erfindungsgemäß wird ein Verfahren zum Betreiben einer Graphikvorrichtung zum Verarbeiten von Signalen aufgezeigt, welche ein dreidimensionales Objekt definieren, das eine Vielzahl von Bezier-Teilflächen aufweist, um so durch rekur sives Unterteilen eine gegebene eine der Bezier-Teilflächen in eine Vielzahl von Polygonen zur Verwendung beim Rendern eines Bilds des Objekts zu teilen, gekennzeichnet durch:
- - Erzeugen eines Krümmungswerts, welcher die Krümmung der gegebenen Bezier-Teilfläche kennzeichnet, durch Bestimmen der Winkel zwischen fiktiven Linien, die aufeinanderfolgend die Kontrollpunkte verbinden, welche die gegebene Bezier-Teilfläche definieren,
- - Berechnen einer Teilungszahl für die gegebene Bezier- Teilfläche unter Verwendung des Krümmungswerts, und
- - rekursives Unterteilen der gegebenen Bezier- Teilfläche in einer Anzahl entsprechend der Teilungszahl.
- Die Erfindung zeigt auch eine Graphikvorrichtung zum Verarbeiten von Signalen auf, welche ein Objekt definieren, das eine Vielzahl von Bezier-Teilflächen aufweist, um durch rekursives Unterteilen eine gegebene eine der Bezier-Teilflächen in eine Vielzahl von Polygonen zur Verwendung beim Rendem eines Bilds des Objekts zu teilen, gekennzeichnet durch:
- - eine Einrichtung zum Erzeugen eines Krümmungswerts, welcher die Krümmung der gegebenen Bezier-Teilfläche kennzeichnet, durch Bestimmen der Winkel zwischen fiktiven Linien, die nacheinander die Kontrollpunkte verbinden, welche die gegebene Bezier-Teilfläche definieren,
- - eine Einrichtung zum Berechnen einer Teilungszahl für die gegebene Bezier-Teilfläche unter Verwendung des Krümmungswerts und
- - eine Einrichtung zum rekursiven Unterteilen der gege benen Bezier-Teilfläche in einer Anzahl entsprechend der Teilungszahl.
- Somit ist ein Vorteil der Ausführungsformen, daß eine Bestimmung hinsichtlich der Anzahl erforderlichen Unterteilungen erfolgt, bevor die interaktive Steuerung eingeleitet wird, wobei die wirkungsvolle Verwendung der Verarbeitungsleistung kritisch ist.
- In den Ausführungsformen ist es nicht erforderlich, nach jedem Unterteilen den Flachlagetest auszuführen.
- Die Ausführungsformen der Erfindung werden nachstehend unter Bezugnahme auf die beigefügten Zeichnungen beispielhaft beschrieben.
- Fig. 1 zeigt ein interaktives dreidimensionales Graphiksystem mit einer Datenverarbeitungseinrichtung für das Verarbeiten dreidimensionaler Daten und für das Erzeugen zweidimensionaler Daten,
- Fig. 2 zeigt eine Bezierkurve, die Kontrollpunkte zum Definieren der Kurve und die Gleichungen zum Berechnen der Punkte auf der Kurve aus der Position der Kontrollpunkte,
- Fig. 3 zeigt eine Bezier-Teilfläche, welche durch Bezierkurven definiert ist,
- Fig. 4 zeigt die Operation eines interaktiven dreidimensionalen Graphiksystems gemäß der vorliegenden Erfindung,
- Fig. 5 und Fig. 6 zeigen ein bevorzugtes Verfahren zum Berechnen der Krümmung einer Bezier-Teilfläche und zum Bestimmen der Anzahl der zum Teilen der Teilfläche in Polygone erforderlichen Iterationen,
- Fig. 7 zeigt das Verfahren zum Bestimmen der Reihenfolge, in welcher die Teilflächen zu rendern sind,
- Fig. 8A zeigt die herkömmliche Polygonerstellung einer Bezier-Teilfläche, und
- Fig. 8B zeigt eine Bezier-Teilflächen-Polygonerstellung, erzeugt durch eine Ausführungsform der vorliegenden Erfindung.
- Ein System zum Verarbeiten von Bilddaten, welche dreidimensionale Objekte darstellen, ist in Fig. 1 gezeigt. Eine Datenverarbeitungseinrichtung 15 ist angeordnet, um Daten in eine lokale Speichereinrichtung zu schreiben und Daten von einer lokalen Speichereinrichtung zu lesen. Die im Speicher der Datenverarbeitungseinrichtung gespeicherten Daten definieren dreidimensionale Bilddaten, zweidimensionale Bilddaten und Befehle an die Datenverarbeitungseinrichtung 15.
- Die Datenverarbeitungseinrichtung 15 nimmt Eingangsdaten von Eingabeeinrichtungen auf, bestehend aus einer von Hand betätigten Tastatur 17 und einer Positionsaufnahmeeinrichtung, wie z. B. eine Maus, ein Trackball 18 oder ein Digitalisierstift usw.
- Zweidimensionale Bilder werden auf einer Sichtanzeigeeinheit 19 angezeigt, welche die Ausgangsbilddaten bei der Bildfolgefrequenz durch Rasterabtasten eines Rahmenpuffers aufnimmt und oft mit gesetzlich geschützten Anzeigeeinheiten ausgestattet ist. Die Sichtanzeigeeinheit weist eine Auflösung von typisch eintausend Zeilen mit eintausend Pixeln je Zeile auf, was einen Rahmenpuffer mit einer Million Pixeladressen erfordert. Für die Großmengenübertragung von Programmdaten und Bilddaten ist eine Massenspeichereinrichtung 20 angeordnet, wie z. B. ein Magnetplattenspeicher, ein Bildplattenspeicher oder ein Bandspeicher usw.
- In der vorliegenden Ausführungsform wird die die Daten definierende Geometrie in der Form von die Bezier-Teilflächen definierenden Kontrollpunkten gespeichert, welche im dreidimensionalen Raum bearbeitet werden können. Wenn danach einmal eine Betrachtungsposition zum Rendern in zwei Dimensionen ausgewählt worden ist, wird jede Bezier-Teilfläche in eine Vielzahl von Ecken aufgebrochen, welche die Polygone definieren, wonach Pixelwerte durch Abtasten der Fläche jedes Polygons berechnet werden.
- Eine Bezierkurve 25 in Parameterdarstellung ist in Fig. 2 gezeigt, welche ein geometrischer Ort der Punkte ist, die sich als Reaktion auf die Position der Krümmungskontrollpunkte B und C von einem Endkontrollpunkt A zu einem anderen Endkontrollpunkt D bewegen. Der geometrische Ort der Punkte wird über den Parameterraum t=0 bis t=1 berechnet, und für jeden Wert von t kann ein Punkt berechnet werden, welcher die Beiträge von den Positionen der Punkte A, B, C und D aufnimmt. Die Mischbeiträge werden aus einer bikubischen Funktion bestimmt, welche als die Bemsteinsche Mischfunktion bekannt ist und als in Fig. 2 gezeigte Bezierkurve nachstehend ausführlich beschrieben wird. Somit werden die Punkte entlang der Kurve durch Substituieren der x-, y- und z- Koordinatenwerte der Kontrollpunkte A, B, C und D in der Mischfunktion berechnet, um neue Werte für x, y und z zu berechnen, da sich t zwischen Null und 1 ändert.
- Ein attraktives Merkmal der Bezierkurven innerhalb einer interaktiven Graphikumgebung besteht darin, daß die Kurve nach den Eingangsdaten, welche die Koordinaten für die Punkte A, B, C und D aufweisen, mit jeder erforderlichen Auflösung gezeichnet werden kann. Somit ist die gesamte Kurve im dreidimensionalen Raum durch Bearbeiten der Positionen eben der vier Kontrollpunkte, welche diese definieren, manipulierbar. Danach ist das Rendern zum Erstellen eines anzeigbaren Bilds mit jeder gewünschten Auflösung ausführbar, indem die Oberfläche in flache Polygone aufgeteilt und dann jedes Polygon gerendert wird.
- Wenn, wie in Fig. 2 gezeigt, die Punkte A, B, C und D durch Vektoren AB, BC und CD verbunden werden, wird deutlich, daß die tatsächliche Kurve tangential zum Vektor AB im Punkt A und tangential zum Vektor CD im Endkontrollpunkt D ist. Es ist ebenfalls erkennbar, daß die Position der Punkte B und C die Größe der Krümmung steuert, und diese Punkte werden daher an dieser Stelle als Krümmungskontrollpunkte bezeichnet.
- In einem System, wie es in Fig. 1 gezeigt ist, weisen die Daten, welche die Form der Bezierkurve 25 definieren, dreidimensionale Koordinatenadressen für die Kontrollpunkte A, B, C und D auf. Um eine solche Kurve zu rendern, ist es notwendig, deren Form durch gerade Liniensegmente anzunähern, welche die renderbaren Flachpolygone definieren. Wie vorstehend erwähnt, wäre eine Annäherung die Berechnung von Punkten unter Verwendung der Mischfunktion, welche in Fig. 2 ausführlich gezeigt ist, obgleich Probleme mit dieser Annäherung die Entscheidung einschließen, wie viele Punkte berechnet werden müssen und das Ausführen der erforderlichen Berechnungen.
- In der vorliegenden Ausführungsform werden die Flächen durch rekursives oder iteratives Unterteilen in eine Vielzahl von Polygonen geteilt, und dieses Verfahren wird mit Bezug auf die in Fig. 2 gezeigte einzelne Bezierkurve ausführlich beschrieben. Eine erste Annäherung an die tatsächliche Bezierkurve 25 würde die Vektoren AB, BC und CD aufweisen, welche die Kontrollpunkte A, B, C und D verbinden. Wie aus dem in Fig. 2 gezeigten Ausführungsbeispiel deutlich wird, würde eine solche Annäherung kaum zu zufriedenstellenden Ergebnissen führen, unter der Voraussetzung, daß die Krümmungskontrollpunkte einen wesentlichen Abstand vom geometrischen Ort der tatsächlichen Kurve aufweisen können.
- Das Unterteilen wird durch Bestimmen eines Zwischenpunkts E zwischen den Punkten A und B ausgeführt. Dieser Punkt ist leicht berechenbar, da die x-Koordinate von E der Durchschnitt der x-Koordinaten für die Punkte A und B ist, und auf ähnliche Weise gemittelte Werte sind für die y- und die z-Koordinate bestimmbar. Somit wird ein ähnlicher Zwischenpunkt F auf halbem Weg entlang dem Vektor BC angeordnet, und ein dritter Zwischenpunkt G wird auf halbem Weg entlang dem Vektor CD bestimmt. Dieser Prozeß wird durch Bestimmen eines zusätzlichen Punkts H auf halbem Weg entlang dem Vektor EF fortgesetzt, und eines Punkts I auf halbem Weg entlang dem Vektor FG, aus welchem ein neuer Vektor HI definiert wird. Schließlich wird ein Punkt J als ein Punkt auf halbem Weg entlang dem Vektor HI berechnet.
- Die Punkte E, H, I und G liegen nicht auf der Bezierkurve 25, doch Punkt J ist ein Punkt des geometrischen Orts der Bezierkurve. Ferner kann die Bezierkurve 25, welche die Punkte A bis D verbindet, nun als zwei Bezierkurven angesehen werden, eine erste, welche die Punkte A bis J verbindet, und eine zweite, welche die Punkte J bis D verbindet. Somit verläuft die Kurve nicht nur durch den Punkt J, sondern im Punkt J ist sie auch tangential zu dem Vektor HI. Auf diese Weise liefert der Punkt J einen neuen Endkontrollpunkt für zwei Bezierkurven, während die Punkte E und H einen ersten Satz von Krümmungskontrollpunkten darstellen und die Punkte I und G einen zweiten Satz von Krümmungskontrollpunkten darstellen.
- Von einem Rendergesichtspunkt ist eine Anfangsannäherung, welche die drei geraden Linien AB, BC und CD aufweist, durch das Erzeugen von sechs geraden Linien AE, EH, HJ, JI, IG und GD verbessert worden.
- In einigen Fällen ist diese erste Iteration nicht ausreichend. Eine bessere Annäherung an die Kurve 25 ist jedoch unter Berücksichtigung der Kurve erreichbar, welche aus den zwei gesonderten Bezierkurven besteht, eine erste, definiert durch die Kontrollpunkte A, E, H und J, und eine zweite, definiert durch die Kontrollpunkte J, I, G und D. Somit ist das Unterteilungsverfahren, welches in Fig. 2 ausgeführt und gezeigt ist, erstens für die Punkte A, E, H und J und zweitens für die Punkte J, I, G und D wiederholbar. Somit könnte dieses Unterteilen bis zu den Auflösungsgrenzen des Systems wiederholt werden, und das Problem dieses Verfahrens, wie es vorstehend erläutert ist, besteht in der Entscheidung, wie viele Unterteilungen auszuführen sind.
- Nach jedem Teilen ist es möglich, einen Flachlagetest auszuführen, wie in "Computer Graphics Principles and Practice", 2. Ausgabe, S. 513 - 514, von Foley, van Dam, Feiner und Hughes, beschrieben ist. Wenn jedoch Flachlagetests jedesmal ausgeführt werden, steigen die Gesamtberechnungskosten übermäßig, und die durch die Verwendung der Bezierkurven erzielte Verminderung des Berechnungsaufwands geht infolge der wiederholten Flachlagetests im wesentlichen verloren.
- Eine Bezierkurve, welche einen geometrischen Ort der Punkte aufweist, ist in zwei Dimensionen definiert. Eine Gruppe von Bezierkurven, welche kombiniert sind, um eine Ebene zu definieren, die als eine Bezier-Teilfläche bezeichnet wird, weist Kontrollpunkte auf, welche beliebig im dreidimensionalen Raum positioniert werden können. Die Kontrollpunkte für eine Bezier-Teilfläche dieser Type sind in Fig. 3 gezeigt, in welchen die Punkte A1, B1, C1 und D1 eine Bezierkurve de finieren, die Punkte A2, B2, C2 und D2 eine zweite Kurve definieren, die Punkte A3, B3, C3 und D3 eine dritte Kurve definieren und die Punkte A4, B4, C4 und D4 eine vierte Kurve definieren. Außerdem ist ein zweiter Satz von Kurven durch die Punkte A1, A2, A3 und A4, die Punkte B1, B2, B3 und B4, die Punkte C1, C2, C3 und C4 sowie die Punkte D1, D2, D3 und D4 definiert. Somit ist die Teilfläche durch einen Satz von acht Bezierkurven im dreidimensionalen Raum definiert, welche von insgesamt sechzehn Kontrollpunkten konfiguriert wird, wobei jeder der Punkte einen Kontrollpunkt für zwei der Kurven bereitstellt. Einige Kontrollpunkte (A1, D1, A4 und D4) sind Endkontrollpunkte für zwei Kurven, während einige Kontrollpunkte (B2, C2, B3, C4) Krümmungskontrollpunkte für zwei Kurven sind, während die restlichen Endkontrollpunkte für eine Kurve, aber Krümmungskontrollpunkte für die anderen sind.
- Wie aus Fig. 3 deutlich wird, teilen Vektoren, welche die Kontrollpunkte verbinden, die Teilfläche in insgesamt neun Segmente. Es sollte jedoch auch klar sein, daß die gezeigten Linien, welche die Punkte in Fig. 3 verbinden, nicht tatsächlich auf der Kurve selbst liegen, sondern gleichwertig zu den Vektoren AB, BC und CD in Fig. 2 sind.
- Somit können die in Fig. 3 gezeigten neun Polygone, welche durch Verbinden der Kontrollpunkte der Bezier-Teilfläche ausgebildet sind, verwendet werden, um eine erste Annäherung an die tatsächliche Teilfläche für Renderzwecke zu erreichen, auf dieselbe Weise, in welcher die Vektoren AB, BC und CD eine erste Annäherung an die in Fig. 2 gezeigte Bezierkurve 25 erzeugen. Diese Teilung umfaßt das Verbinden aller nahegelegenen Kontrollpunkte und zeigt den angenommenen Weg der Teilung der Teilfläche in renderfähige Polygone. Ferner ist die genauere Polygonerstellung durch Unterteilen jeder Bezierkurve der Fig. 3 ausführbar, wobei jede Kurve in ein Paar von Kurven unterteilt wird, welche einen gemeinsamen Endkontrollpunkt aufweisen, ähnlich dem Punkt J in Fig. 2. Auf diese Weise wird durch Unterteilen jeder Kurve jedes vierseitige Polygon in vier kleinere vierseitige Polygone geteilt, was zu insgesamt 36 Polygonen für die gesamte Teilfläche führt.
- Wie unter Bezugnahme auf Fig. 2 erläutert, ist der neu berechnete Punkt J ein Punkt, welcher tatsächlich auf der Bezierkurve liegt. Wenn auf ähnliche Weise eine Oberfläche betrachtet wird, ist der neu berechnete Punkt K in der Mitte der Oberfläche ein Punkt, welcher tatsächlich auf der Oberfläche liegt. Somit kann die Teilfläche als aus vier kleineren Teilflächen erzeugt betrachtet werden, und der Unterteilungsprozeß ist für jede dieser vier Teilflächen wiederholbar.
- Wie vorstehend beschrieben, besteht ein bekanntes Problem beim Teilen der Teilflächen auf diese Weise im Ausführen der Tests, um nach jedem Teilen zu bestimmen, ob ein weiteres Teilen erforderlich ist. In der vorliegenden Ausführungsform wird die Vorverarbeitung zu jeder Bezier-Teilfläche ausgeführt, um zu bestimmen, wieviel Iterationen für diese Teilfläche erforderlich sind, so daß nach der Transformation in den zweidimensionalen Betrachtungsraum das Unterteilen n-mal für jede Teilfläche ausgeführt wird, wenn der Wert n für diese besondere Teilfläche vorher berechnet wurde.
- Die durch die erfindungsgemäße Vorrichtung in Fig. 1 ausgeführten Operationsstufen sind in Fig. 4 gezeigt.
- Die Geometriedaten, welche die Form der Objekte definieren, sind in der Form von Kontrollpunkten für Bezier-Teilflächen der in Fig. 3 gezeigten Type gespeichert. Jede Teilfläche weist insgesamt sechzehn Ecken A1 bis D4 auf, aus welchen die Gesamtform der Teilfläche für jede Orientierung im dreidimensionalen Raum und aus jeder Betrachtungsposition bestimmbar ist.
- In Fig. 4 sind die Schritte 42 bis 44 Vorprozesse, welche vor dem Einleiten der interaktiven Operation ausgeführt werden. Die Vorprozesse berechnen Daten, welche für die betrachteten Objekte relevant sind, um den Berechnungsbedarf während der interaktiven Operation zu vermindern. Es ist darauf hinzuweisen, daß viele der Verarbeitungsanforderungen, welche einen Teil der interaktiven Schleife bilden, während jeder Iteration auszuführen sind, und daher wesentliche Einsparungen erreicht werden können, wenn der erfor derliche Verarbeitungsanteil innerhalb der interaktiven Schleife vermindert werden kann.
- Im Schritt 42 erfolgt ein Bestimmen hinsichtlich der Anzahl der Iterationen, welche erforderlich sind, um eine ausreichende Anzahl von Polygonen für jede Bezier-Teilfläche zu erzeugen. Obgleich die Polygone unter Verwendung des vorstehend beschriebenen Unterteilungsverfahrens erzeugt werden, ist es während dieses Prozesses nicht notwendig, zu bestimmen, ob ausreichende Teilungen ausgeführt worden sind. Die Anzahl der erforderlichen Teilungen wird vorausberechnet und wenn es erforderlich ist, aus Bezier-Teilflächen Polygone zu erzeugen, werden diese Daten erneut aufgerufen, und das Unterteilen wird n-mal ausgeführt, wenn n während der Vorverarbeitungsperiode erzeugt ist.
- Im Schritt 43 werden die Polygone im Modellierraum erzeugt, welcher auch als ein Objektraum bezeichnet wird, so daß im Modellierraum das Objekt durch dessen Bezier-Kontrollpunkte definiert ist und auch durch Polygone, welche durch n-Unterteilungen erzeugt werden. Ferner wird ein Einheitsnormalvektor für jedes Polygon berechnet, welcher das Ausführen der Beleuchtungsberechnungen im Modellierraum gestattet.
- Im Schritt 44 werden Berechnungen vorgenommen, um die Reihenfolge zu bestimmen, in welcher die Teilflächen zu rendern sind. Ein Ausführungsbeispiel eines Verfahrens zum Bewerten der Reihenfolge, in welcher die Polygone zu rendern sind, ist in einem früheren Dokument EP-A-0531157 ausführlich erläutert. Das in diesem Patentdokument ausführlich beschnebene Verfahren wird auf die Polygone angewendet, welche im Schritt 43 erzeugt sind. Diese Information wird dann verwendet, um die Reihenfolge zu bestimmen, in welcher die ganzen Teilflächen zu rendern sind, wobei das erste Auftreten eines Polygons aus einer besonderen Teilfläche in der Vorrangfolge den Vorrang für die gesamte Teilfläche begründet.
- Nach dem Beenden des Schritts 44 ist das System bereit, in die interaktive Operation einzutreten, in welcher Objekte, Lichtquellen und die Position des Betrachters scheinen, daß sie sich als Reaktion auf Eingangsbefehle innerhalb eines synthetisierten dreidimensionalen Raums bewegen.
- Beim Einleiten der interaktiven Operation werden Objekte (definiert durch Bezier-Teilflächen), Lichtquellen und eine Betrachtungsposition definiert, und die Objekte werden auf eine zweidimensionale Betrachtungsebene projiziert. Jede Iteration der interaktiven Schleife weist die empfangenen Eingabedaten auf, welche die Translationen innerhalb des dreidimensionalen Raums definieren, das Projizieren der dreidimensionalen Daten auf eine zweidimensionale Betrachtungsebene und das Rendern der zweidimensionalen Daten in eine Pixelmatrix. Vorausgesetzt, daß die Objekte aus einer Vielzahl von Teilflächen aufgebaut sind, hängt die Reihenfolge, in welcher die Teilflächen gerendert werden, von der Orientierung des Objekts und der Betrachtungsrichtung ab. Im Schritt 44 werden Listen erstellt, welche die Renderreihen folge der Teilfläche für die besonderen Betrachtungsorientierungen präzisieren. Im Schritt 46 wird die Betrachtungsorientierung des Objekts bestimmt, und diese Information, zusätzlich zu den im Schritt 44 bestimmten Daten, wird verwendet, um die Reihenfolge zu berechnen, in welcher die Teilflächen gerendert werden. Somit stellt die Flußlinie 47 das Übertragen der Information vom Schritt 44 zum Schritt 46 dar.
- Im Schritt 48 werden die Kontrollpunkte für die erste zu rendernde Teilfläche, wie sie im Schritt 46 bestimmt ist, unter der Operation einer Transformationsmatrix in den zweidimensionalen Betrachtungs raum transformiert.
- Im Schritt 49 werden die Kontrollpunkte, welche in den zweidimensionalen Betrachtungsraum transformiert sind, n-mal unterteilt, wenn der Wert n im Schritt 42 vorhergehend berechnet wurde, und die Übertragung der Information vom Schritt 42 zum Schritt 49 wird durch den Flußpfeil 50 dargestellt.
- Wenn die gesamte Teilfläche durch Abtasten im Schritt 51 umgewandelt ist, wird im Schritt 52 die Frage gestellt, ob weitere Teilflächen im Bereich vorliegen. Wird diese Frage bejaht, geht die Steuerung zum Schritt 48 zurück, in welchem der nächste Satz der Kontrollpunkte für die Transformation in den zweidimensionalen Raum gelesen wird. Dieses Lesen der Kontrollpunkte mit nachfolgendem Unterteilen und dem abtastenden Umwandeln wird wiederholt, bis alle Teilflächen zu Pixeln reduziert sind. Dies führt zu der Frage, welche im Schritt 52 gestellt wird, die verneinend beantwortet wird, und im Schritt 53 werden die berechneten Pixelwerte in einen Rahmenpuffer 55 eingeschrieben.
- Zusätzlich zum Schreiben in den Rahmenpuffer bei einer interaktiven Bildfolgefrequenz, wird der Rahmenpuffer 55 im Schritt 55A ebenfalls mit der Bildfolgefrequenz wiederholt gelesen, wobei ein Bildausgangssignal für den Monitor 19 erzeugt wird.
- Im Schritt 54 werden interaktive Eingangsbefehle gelesen, und im Schritt 54A werden neue Transformationen als Reaktion auf die interaktiven Eingaben berechnet, welche im Schritt 54 aufgenommen werden. Somit werden als Reaktion auf die im Schritt 54 zugeführten interaktiven Eingaben im Schritt 48 abgewandelte Transformationen ausgeführt.
- Nach dem erneuten Berechnen der Transformationen wird die Steuerung wieder zum Schritt 45 zurückgeführt, und dabei wird die interaktive Schleife beendet. Wenn sich als Reaktion auf die im Schritt 54 aufgenommenen interaktiven Eingaben die Position eines Objekts mit Bezug auf eine Lichtquelle nicht verändert hat, werden die Beleuchtungsberechnungen im Schritt 45 erneut verwendet.
- Die Krümmung wird unter Berücksichtigung jeder Bezierkurve bestimmt, welche die Teilfläche ausbildet, und ein fiktiver Wert, welcher die Krümmung der Teilfläche darstellt, wird auf der Grundlage der am meisten gekrümmten Bezierkurve der Teilfläche angenommen.
- Eine Bezierkurve, ähnlich der in Fig. 2 gezeigten Kurve, ist in Fig. 5 gezeigt. Die im Schritt 42 ausgeführte Vorverarbeitung schließt die Berücksichtigung der Positionen der Punkte A, B, C und D ein, d. h., die Kontrollpunkte, welche die Bezierkurve eher definieren als der geometrische Ort der Bezierkurve selbst. Die Punkte A, B, C und D werden als durch die Vektoren AB, BC und CD verbunden angesehen. Der Vektor AB weist eine Richtung auf, welche dadurch definiert ist, um die Bewegung von A nach B auszuführen. Ähnlich weist der Vektor BC eine Richtung auf, welche bei der Bewegung von B nach C erforderlich ist, während die Richtung des Vektor CD jene ist, die für die Bewegung vom Punkt C zum Punkt D erforderlich ist. Bei Betrachtung als eine kombinierte Bewe gung vom Punkt A nach D über Punkt B und Punkt C tritt eine Drehung im Punkt B auf, und eine ähnliche Drehung liegt im Punkt C vor. Diese Drehungen können jeweils durch die Drehwinkel t1 und t2 definiert werden. Ferner steht die Größe dieser Drehwinkel t1 und t2 in Bezug zur Krümmung der Bezierkurve, daher bietet eine Analyse der Drehwinkel t1 und t2 eine Grundlage für das Berechnen der krümmung der Teilfläche, welche dann verwendet wird, um die Anzahl der Unterteilungen zu bestimmen, welche erforderlich ist, um die Teilfläche in eine geeignete Anzahl von Polygonen zu teilen.
- Jede Teilfläche wird der Reihe nach betrachtet, und jeder Satz der Kontrollpunkte (insgesamt acht Sätze), welcher die Bezierkurven für die Teilfläche definiert, wird nacheinander berücksichtigt. Mit Bezug auf die in Fig. 5 gezeigten Kon trollpunkte werden die Vektoren AB, BC und CD umgewandelt, um Vektoren zu definieren, welche gleichwertige Richtungen, aber Einheitslänge aufweisen. Somit wird der umgewandelte Vektor, welcher aus dem Vektor AB abgeleitet ist, nachstehend mit AB bezeichnet, mit ähnlichen Darstellungen DC und CD, welche verwendet werden, um die Einheitsvektoren darzustellen, welche jeweils von den Vektoren BC und CD abgeleitet sind.
- Ein Wert, welcher die Krümmung der Bezierkurve darstellt, wird durch Bilden der Summe des Punktprodukts zwischen den Einheitsvektoren AB und DC und dem Punktprodukt zwischen den Einheitsvektoren BC und CD berechnet. Als Einheitslänge ist das Berechnungsergebnis des Punktprodukts aus AB und BC gleich dem Kosinus des Winkels t1. Ähnlich ist das Punktprodukt aus BC und CD gleich dem Kosinus des Winkels t2.
- Theoretisch können die Winkel t1 und t2 jeden Wert von Null bis zu vollen 360º aufweisen. Ein numerischer Wert wird berechnet, welcher die Krümmung unter Berücksichtigung des Kosinus des Drehwinkels darstellt, der durch Berechnen des Punktprodukts der Einheitsvektoren bestimmt wird, wie vorstehend erläutert. Ein Hauptvorteil der Verwendung der Kosinusfunktion besteht darin, daß ein positiver Drehwinkel im Größtmaß oder 180º zu demselben Ergebnis wie dessen negatives Äquivalent führt. Somit mißt die Kosinusfunktion nur den Drehgrad und wird nicht durch die Drehrichtung beeinflußt.
- Die Bezierkurve ist am wenigsten gekrümmt, wenn der Winkel t1 klein (oder überstumpf) ist, daher ist die Kurve weniger gekrümmt, wenn der Kosinus von t1 positiv ist. Auf ähnliche Weise ist die Kurve mehr gekrümmt, wenn der Kosinuswert negativ wird, mit dem Extremzustand bei 180º, wenn der Kosinus -1 beträgt.
- Die allgemeine Krümmung der Kurve wird durch Addieren des Kosinus des Winkels t1 und des Kosinus des Winkels t2 bestimmt, wobei Krümmungswerte erhalten werden, welche von +2 (schwächste Krümmung) bis -2 (stärkste Krümmung) reichen.
- Die Krümmung der gesamten Teilfläche wird durch die am stärksten gekrümmte Kurve bestimmt, welche die Teilfläche definiert. Somit wird der Teilfläche als ein Ganzes ein fiktiver Krümmungswert zugeordnet, welcher gleich dem niedrigsten (negativsten) Wert ist, der für die Bezierkurven berechnet ist, die die Teilflächen ausbilden. Dieses Maß der fiktiven Krümmung bildet eine Grundlage für die Bestimmung der Anzahl der Unterteilungen, welche für das Teilen der Teufläche in renderbare Polygone erforderlich ist. Die Anzahl der ausgeführten Unterteilungen kann von Vorrichtung zu Vorrichtung variieren, und die spezifischen Werte für eine Type der Vorrichtung für eine besondere Umgebung ist empirisch berechenbar. In der vorliegenden Ausführungsform ist die maximale Zahl der ausführbaren Unterteilungen gleich 5.
- Die im Schritt 42 in Fig. 4 ausgeführten Operationen sind in Fig. 6 ausführlich gezeigt. Eine erste Teilfläche wird ausgewählt und eine erste Bezierkurve der Teilfläche wird im Schritt 61 betrachtet, welcher die dreidimensionalen Koordinaten für die vier die Bezierkurve definierenden Kontrollpunkte A, B, C und D liest. Im Schritt 62 werden die Einheitsvektoren AB, BC und CD unter Berücksichtigung der Vektoren AB, BC und CD berechnet. Wie vorhergehend erläutert, weist jeder Einheitsvektor eine Richtung auf, welche dem Vektor gleichwertig ist, welcher abgeleitet ist, aber Einheitslänge aufweist.
- Im Schritt 63 wird der kombinierte Kosinuswert COS als die Summe der Punktprodukte aus AB mit BC und BC mit CD berechnet.
- Im Schritt 64 wird gefragt, ob eine andere zu berücksichtigende Kurve (der acht Kurven, welche die Teilfläche definieren) innerhalb der Teilfläche vorliegt, und wenn diese Frage bejaht wird, erfolgt das Rückführen der Steuerung zum Schritt 61, und die Koordinatenwerte A, B, C, D für die nächste Kurve werden berücksichtigt.
- Wird die im Schritt 64 gestellte Frage verneint, erfolgt die Auswahl des kleinsten für die Teilfläche berechneten COS- Werts, welcher nachstehend als COS (MIN) bezeichnet ist. Die Kurve mit dem kleinsten COS-Wert, wobei der kleinstmögliche Werte -2 beträgt, weist die stärkste Krümmung auf, und diese Kurve wird daher als die eine ausgewählt, welche die fiktive Krümmung der Teilfläche als ein Ganzes definiert.
- Im Schritt 66 wird eine Frage gestellt, ob der Wert für COS, welcher im Schritt 65 gewählt ist, gleich 2 ist, der eine vollkommen ungekrümmte Oberfläche darstellt. Wenn diese Frage mit "JA" beantwortet wird, erfolgt im Schritt 67 das Einstellen von n = 0, und im Schritt 68 wird eine Frage gestellt, ob weitere Teilflächen zu berücksichtigen sind. Der Wert n stellt die Anzahl der auszuführenden Unterteilungen dar, und für eine vollkommen flache Oberfläche sind keine Teilungen erforderlich.
- Wird die im Schritt 66 gestellte Frage verneint, d. h. COS (MIN) weist einen Wert kleiner als 2 auf, erfolgt im Schritt 68 eine Fragestellung, ob COS (MIN) größer als 1,6 ist. Wenn diese Frage bejaht wird, erfolgt im Schritt 69 das Einstellen von n = 1, und die Steuerung wird zur Frage im Schritt 68 zurückgeführt.
- Wird die im Schritt 68 gestellte Frage verneint, erfolgt eine Fragestellung im Schritt 70, ob COS (MIN) größer als Null ist. Wenn diese Frage bejaht wird, erfolgt im Schritt 71 das Einstellen von n = 2, und die Steuerung wird zu der im Schritt 68 gestellten Frage zurückgeführt.
- Wird die im Schritt 70 gestellte Frage mit "NEIN" beantwortet, erfolgt im Schritt 72 eine weitere Fragestellung, ob COS (MIN) größer als -1 ist. Wenn diese Fragestellung bejaht wird, erfolgt die Einstellung von n = 3, und die Steuerung kehrt zu der im Schritt 68 gestellten Frage zurück.
- Wird schließlich die im Schritt 72 gestellte Frage verneint, erfolgt eine Fragestellung im Schritt 74, ob COS (MIN) größer als -1,8 ist. Wenn diese Frage bejaht wird, erfolgt im Schritt 74 die Einstellung von n = 4, und die Steuerung wird zur Frage im Schritt 68 zurückgeführt. Wird die im Schritt 74 gestellte Frage verneinend beantwortet, erfolgt im Schritt 76 die Einstellung von n = 5, und die Steuerung wird zu der im Schritt 68 gestellten Frage zurückgeführt.
- In diesem Ausführungsbeispiel ist n die Anzahl der Unterteilungen, welche innerhalb einer besonderen Teilfläche ausgeführt werden, wobei n jeden Wert zwischen Null und 5 aufweisen kann. Die maximale Zahl der durch das System ausführbaren Unterteilungen kann jedoch so gewählt werden, um diese an jede besondere Anwendung anzupassen. Auf ähnliche Weise können die Beurteilungen hinsichtlich des Verhältnisses zwischen COS (MIN) und der Anzahl der erforderlichen Iterationen für jede besondere Anwendung willkürlich gewählt werden.
- Wird die im Schritt 68 gestellte Frage bejahend beantwortet, erfolgt das Rückführen der Steuerung zum Schritt 61, ein erster Koordinatensatz für die nächste Bezier-Teilfläche wird gelesen und der Prozeß wird wiederholt. Wenn schließlich die im Schritt 68 gestellte Frage verneinend beantwortet wird, geht der Vorverarbeitungsprozeß weiter zum Schritt 43.
- Wie in Fig. 4 gezeigt, bestimmt Schritt 46 die Teilflächen- Renderreihenfolge bezüglich der Polygone, welche von der Teilfläche abgeleitet sind (Schritt 44). Der in den Schritten 44 und 46 ausgeführte Prozeß ist in Fig. 7 ausführlich gezeigt, in welchem im Schritt 81 die Teilflächendaten n-mal unterteilt werden, um Polygone im Modellierraum zu erzeugen. Alle Teilflächen werden auf diese Weise verarbeitet, um eine willkürliche Polygonliste zu erzeugen. Im Schritt 82 wird ein topologisches Sortieren der Polygone ausgeführt, wie es in dem vorhergehenden Dokument EP-A-0531157 beschrieben ist.
- Somit wird im Schritt 82 eine Polygonreihenfolgeliste erzeugt, welche die Polygone in der Reihenfolge auflistet, in welcher sie für einen besonderen Satz von Betrachtungsparametern zu rendern sind. Eine Vielzahl von Listen wird erzeugt, und eine besondere Liste wird während der interaktiven Operation ausgewählt. Mit Bezug auf Fig. 4 werden die Listen im Schritt 44 erzeugt, und die erforderliche besonde re Liste wird im Schritt 46 als Teil des interaktiven Prozesses ausgewählt.
- Im Schritt 83 wird eine Frage gestellt, ob in der Polygonreihenfolgeliste ein anderes Polygon vorliegt, und erfolgt das Verneinen der Frage, wird Schritt 44 (Fig. 4) beendet und der Steuerung wird gestattet, in die interaktive Schleife einzutreten.
- Wird die Fragestellung im Schritt 83 bejaht, erfolgt im Schritt 84 das Lesen des nächsten Polygons von der Polygonreihenfolgeliste und das Eintragen in die Teilflächenreihenfolgeliste. Zusätzlich zu den Daten, welche das besondere Polygon bezeichnen, weist die Polygonreihenfolgeliste somit auch eine Kennzeichnung der Polygonausgangsteilfläche auf. Es ist diese Information, welche relevant zu der im Schritt 84 erzeugten Teilflächenreihenfolgeliste ist.
- Im Schritt 85 werden alle Vorkommen von Polygonen, welche zu derselben Teilfläche wie jene gehören, die im Schritt 84 gekennzeichnet sind, von den im Schritt 82 erzeugten Polygonlisten gelöscht. Der Prozeß ist nur am Herausfinden eines Polygonsatzes interessiert, welcher einmal von einer beson deren Teilfläche abgeleitet ist, so daß die Teilfläche der Teilflächenreihenfolgeliste im Schritt 84 hinzugefügt werden kann.
- Danach wird die Steuerung zu der Frage im Schritt 83 zurückgeführt, und wenn in der Polygonreihenfolgeliste noch Polygone vorliegen, wird Schritt 84 wiederholt. Tritt dies ein, werden alle Einträge bezüglich der vorhergehend herausgefundenen Teilflächen von der Polygonreihenfolgeliste gelöscht, so daß das im Schritt 84 gelesene nächste Polygon zu einer anderen Teilfläche in Bezug stehen muß. Somit wird immer eine andere Teilfläche der Teilflächenreihenfolgeliste hinzugefügt, und wieder werden alle anderen Vorkommen von Polygonen von derselben Teilfläche von der Polygonreihenfolgeliste gelöscht.
- Wenn ein Objekt eine Vertiefung aufweist, bestehen Betrachtungswinkel, gegenüber denen ein vorwärts weisendes Polygon vor einem anderen vorwärts weisenden Polygon angeordnet ist. In diesem Zustand schließt das äußerste Polygon der beiden aus einigen Betrachtungswinkeln das innerste Polygon ab. In der Praxis ist die Gesamtzahl solcher Abschlüsse ziemlich gering.
- Im Schritt 82 wird eine Sortiereinrichtung wirksam, um Polygone in zwei Stufen zu sortieren. In einer ersten Stufe werden Polygone, welche möglicherweise andere abschließen, von jenen getrennt, welche nicht abschließen. Von den Polygonen, in welchen die Anlage für das Abschließen vorliegt, wird jedes Polygon mit diesem Polygon verglichen, um zu bestimmen, ob die anderen Polygone hinter oder vor der Ebene dieses Polygons liegen. Ein Polygon wird als vor der Ebene liegend angesehen, wenn alle seine Ecken vor der Ebene liegen, und um Unbestimmtheit zu vermeiden, wird ein Polygon ebenfalls als vor der Ebene liegend angesehen, wenn einige Ecken vor und andere in der Ebene liegen (innerhalb vorbestimmter Toleranzen) oder wenn alle in der Ebene sind.
- Die Sortiereinrichtung erfaßt der Reihe nach jedes Polygon in der Liste und leitet aus den Koordinaten der die Ebene definierenden Ecken die Koeffizienten der Gleichung ab, welche die Ebene definieren, d. h. Ax + By + Cz + D = 0. Die Sortiereinrichtung prüft dann jedes andere Polygon der Reihe nach und bestimmt für dieses Polygon, ob alle Moden dieses Polygons die Ungleichheit erfüllen, um zu bewirken, daß Ax + By + Cz + D größer als Null ist. Wenn die Ungleichheit für alle Ecken des ersten verglichenen Polygons erfüllt ist, wird dieses Polygon als gänzlich vor dem berücksichtigten Polygon zu liegen betrachtet, und die Sortiereinrichtung geht zu dem nächsten anderen Polygon weiter. Wenn alle Knoten in derselben Ebene liegen oder wenn das zweite Polygon vollständig hinter der Ebene des ersten Polygons liegt, wenn senkrecht zu dieser Ebene betrachtet, wird dieses Polygon als gänzlich hinter dem berücksichtigten Polygon liegend angesehen. Die Sortiereinrichtung erstellt eine neue Tabelle, welche einen Eintrag für jedes Polygon in der Tabelle enthält, wobei jeder Eintrag einen Satz oder eine Liste der Nummern der anderen Polygone aufweist, welche hinter diesem Polygon liegen. Wenn jeder Knoten eines Polygons hinter der Ebene des anderen liegt, wird eine Angabe der Identität dieses Polygons in einer Rückstandliste aufgezeichnet.
- Weitere Einzelheiten des Verfahrens zum Erzeugen des topologischen Sortierschritts 82 sind in der vorstehenden gleichzeitig anhängigen Anmeldung beschrieben.
- Nachdem die Teilfläche n-mal unterteilt worden ist, wie in Fig. 4 gezeigt, erfolgt im Schritt 51 die Abtastumwandlung, um Pixel zu erzeugen. Die Pixelwerte werden auf einer Polygon-für-Polygon-Grundlage erzeugt. Daher wird jede Bezier- Teilfläche in eine Vielzahl von flachkantigen Polygonen un terteilt.
- Fig. 8A und Fig. 8B zeigen eine Anordnung von 16 Bezier- Kontrollpunkten, welche eine Bezier-Teilfläche definieren, die nach dem Ausführen von n-Unterteilungen erzeugt ist. Nach einer Teilung wird somit die in Fig. 8A gezeigte Teilfläche in eine Anordnung mit insgesamt vier ähnlichen Teilflächen unterteilt. Nach zwei Teilungen einer in Fig. 8A gezeigten Teilfläche, ist sie in insgesamt 16 Teilflächen geteilt usw.
- Jede durch Unterteilen erzeugte Bezier-Teilfläche kann in einer im wesentlichen ähnlichen Weise in Polygone geteilt werden. Somit wird gemäß der herkömmlichen Herangehensweise zum Rendern von Bezier-Teilflächen jeder Steuerpunkt der Teilfläche fiktiv mit deren nächsten Nachbarn verbunden, um neun Vierecke zu erzeugen. Danach wird jedes der Vierecke entlang einer Diagonale geteilt, um zwei Dreiecke zu erzeugen, und daher wird jede Bezier-Teilfläche in insgesamt 18 renderbare Polygone geteilt.
- Eine Wahlmöglichkeit zum Teilen der in Fig. 8A gezeigten Teilfläche ist in Fig. 8B ausführlich gezeigt. In Fig. 8B wird die Bezier-Teilfläche, welche Steuerpunkte in gleichwertigen Positionen zur in Fig. 8A gezeigten Teilfläche aufweist, durch Verbinden der vier Ecksteuerpunkte A1, D1, D4 und A4 in renderbare Polygone geteilt, um ein Viereck zu erzeugen. Diese ausgewählten Kontrollpunkte können als ein Satz betrachtet werden, die alle Endkontrollpunkte für zwei Bezierkurven sind, welche die Teilfläche definieren. Dieses Viereck wird dann durch Verbinden der Punkte A1 bis D4 in zwei renderbare Dreiecke geteilt.
- Unter Bezugnahme auf Fig. 2 ist das in Fig. 8A für eine Teilfläche ausgeführte Renderverfahren dem Bewerten der Bezierkurve 25 durch eine Linie ABCD gleichwertig. Wie aus Fig. 2 deutlich wird, erzeugt dies eine Annahme, welche außerhalb der Kurve 25 liegt, d. h., welche größer als Kurve ist. Die in Fig. 8B gezeigte Renderlösung ist wirkungsvoll gleichwertig zum direkten Verbinden der Punkte A und D. Dies bewertet wieder nur die Form der Kurve 25, aber bei dieser Gelegenheit ist die Annahme innerhalb der Kurve 25, d. h., sie erzeugt eine Annahme, welche kleiner als die Kurve 25 ist.
- Da weitere Unterteilungen ausgeführt werden, nähern sich beide Annahmen der Teilfläche der tatsächlichen Teilfläche. Ungeachtet der Anzahl der ausgeführten Teilungen liegt die herkömmliche Annahme der in Fig. 8A gezeigten Type außerhalb der Teilfläche, wobei die wahlweise Annahme, wie in Fig. 8B gezeigt, innerhalb der Teilfläche liegt. Wieder unter Bezugnahme auf Fig. 2 würde eine bei der zweiten Unterteilung erzeugte Annahme den Punkt A mit dem Punkt J direkt verbinden und Punkt J mit Punkt D direkt verbinden, welcher, wie be sonders geschätzt wird, eine wesentlich bessere Annahme der Position der Kurve 25 ergibt.
- In der Ausführungsform erhält der Bediener eine Wahlmöglichkeit, ob das Polygonisieren gemäß dem herkömmlichen Verfah ren ausgeführt wird, wie ausführlich in Fig. 8A gezeigt, oder gemäß dem ausführlich in Fig. 8B gezeigten Verfahren. Somit verfügt der Bediener über zwei Rendermöglichkeiten, wobei eine Polygone erzeugt, welche außerhalb der tatsächlichen Bezierkurve liegen, und eine andere, welche Polygone erzeugt, die innerhalb der Bezierkurve liegen. Es wird besonders geschätzt, daß die bevorzugte Lösung zum Erzeugen von Polygonen oft von der Gesamtanwendung abhängig ist, welche durch den Bediener ausgeführt wird.
- Bei dem bekannten Lösungsweg zum Teilen der Bezier- Teilfläche durch Verbinden der Kontrollpunkte, wie in Fig. 8A gezeigt, werden alle Kontrollpunkte verbunden. Der wesentliche Unterschied zu dem wahlweisen Lösungsweg besteht darin, daß nur ein ausgewählter Satz von Kontrollpunkten verbunden wird. Somit können zusätzlich zum Verbinden der Punkte A1, D1, A4 und D4 die Punkte B2, C2, B3 und C3 ebenfalls verbunden werden. Der Satz der verbundenen Punkte kann als jene Punkte definiert werden, welche Endkontrollpunkte für zwei Bezierkurven ergeben, zusammen mit Kontrollpunkten, welche Krümmungskontrollpunkte für zwei Bezierkurven ergeben, während die Kontrollpunkte ausgeschlossen werden, welche einen Endkontrollpunkt für eine Bezierkurve und einen Krümmungskontrollpunkt für eine andere Bezierkurve ergeben. Ferner wird als vorteilhaft angesehen, daß andere Sätze aus den verfügbaren Kontrollpunkten zum Verbinden auswählbar sind, um die Grundlage zum Definieren renderbarer Polygone zu bilden.
Claims (19)
1. Verfahren zum Betreiben einer Graphikvorrichtung zum
Verarbeiten von Signalen, welche ein dreidimensionales
Objekt definieren, das eine Vielzahl von Bezier-Teilflächen
aufweist, um eine gegebene eine der Bezier-Teilflächen durch
rekursives Unterteilen in eine Vielzahl von Polygonen zur
Verwendung beim Rendern eines Bilds des Objekts zu teilen,
gekennzeichnet durch:
- Erzeugen eines Krümmungswerts, welcher die Krümmung
der gegebenen Bezier-Teilfläche kennzeichnet, durch
Bestimmen der Winkel zwischen fiktiven Linien, welche die die
gegebene Bezier-Teilfläche definierenden Kontrollpunkte (A, B,
C, D) nacheinander verbinden,
- Berechnen einer Teilungszahl für die gegebene Bezier
Teilfläche unter Verwendung des Krümmungswerts, und
- rekursives Unterteilen der gegebenen Bezier-
Teilfläche in einer Anzahl entsprechend der Teilungszahl.
2. Verfahren gemäß Anspruch 1, wobei der Schritt des Be
stimmens der Winkel zwischen den fiktiven Linien, welche die
Kontrollpunkte verbinden, das Bestimmen des Drehwinkels (T1,
T2) zwischen aufeinanderfolgenden fiktiven Linien in einer
gegebenen Folge von Linien aufweist, und der Schritt des
Erzeugens des Krümmungswerts das Summieren der Drehwinkel
innerhalb der Folge aufweist.
3. Verfahren gemäß einem der vorhergehenden Ansprüche,
wobei der Schritt des Bestimmens der Winkel das Bestimmen des
Kosinus jedes Winkels aufweist.
4. Verfahren gemäß Anspruch 3, wobei jeder Kosinus durch
Behandeln der Linien als Vektoren berechnet wird und das
Berechnen des Punktprodukts des Paars von Vektoren, welches
den Winkel definiert, erfolgt.
5. Verfahren gemäß einem der vorhergehenden Ansprüche,
wobei die gegebene Bezier-Teilfläche durch Bezierkurven
unterschiedlicher Krümmung definiert ist, und der Schritt des
Erzeugens des Krümmungswerts das Bestimmen einschließt, welche
Bezierkurve die stärkste Krümmung aufweist, wobei diese
stärkste Krümmung dann als die Krümmung der gegebenen
Bezier-Teilfläche verwendet wird.
6. Verfahren gemäß einem der vorhergehenden Ansprüche,
wobei die Graphikvorrichtung ein interaktives System ist,
angeordnet für das Modellieren der Bewegung des Objekts im
dreidimensionalen Raum als Reaktion auf Eingangsbefehle,
wobei das Objekt in einen Betrachtungsraum projiziert wird,
welcher durch eine Betrachtungsposition in dem dreidimensio
nalen Raum definiert ist, und wobei der Schritt des
rekursiven Unterteilens der gegebenen Bezier-Teilfläche nach dem
Projizieren in den Betrachtungsraum ausgeführt wird.
7. Verfahren gemäß einem der vorhergehenden Ansprüche,
welches ferner den Schritt des Erzeugens von Pixelwerten für
die Polygone aufweist.
8. Verfahren gemäß Anspruch 7, welches ferner den Schritt
des Aufzeichnens der Pixelwerte aufweist.
9. Verfahrengemäß Anspruch 7, welches ferner den Schritt
des Erzeugens eines Signals aufweist, das die Pixelwerte
überführt.
10. Verfahren gemäß Anspruch 7, 8 oder 9, welches ferner
den Schritt des Anzeigens der Pixelwerte aufweist.
11. Graphikvorrichtung zum Verarbeiten von Signalen, welche
ein Objekt definieren, das eine Vielzahl von Bezier-
Teilflächen aufweist, um durch rekursives Unterteilen eine
gegebene eine der Bezier-Teilflächen in eine Vielzahl von
Polygonen zur Verwendung beim Rendern eines Bilds des
Objekts zu teilen,
gekennzeichnet durch:
- eine Einrichtung zum Erzeugen eines Krümmungswerts,
welcher die Krümmung der gegebenen Bezier-Teilfläche
kennzeichnet, durch Bestimmen der Winkel zwischen fiktiven
Linien, die nacheinander die die gegebene Bezier-Teilfläche de
finierenden Kontrollpunkte (A, B, C, D) verbinden,
- eine Einrichtung zum Berechnen einer Teilungszahl für
die gegebene Bezier-Teilfläche unter Verwendung des
Krümmungswerts und
- eine Einrichtung zum rekursiven Unterteilen der gege
benen Bezier-Teilfläche in einer Anzahl entsprechend der
Teilungszahl.
12. Vorrichtung gemäß Anspruch 11, wobei die Einrichtung
zum Bestimmen der Winkel zwischen den fiktiven Linien, wel
che die Kontrollpunkte verbinden, eine Einrichtung zum
Bestimmen des Drehwinkels (T1, T2) zwischen
aufeinanderfolgenden fiktiven Linien in einer gegebenen Folge von Linien
aufweist und die Einrichtung zum Erzeugen des Krümmungswerts
eine Einrichtung zum Summieren der Drehwinkel innerhalb der
Folge aufweist.
13. Vorrichtung gemäß Anspruch 11 oder Anspruch 12, wobei
die Einrichtung zum Bestimmen der Winkel eine Einrichtung
zum Bestimmen des Kosinus jedes Winkels aufweist.
14. Vorrichtung gemäß Anspruch 13, wobei jeder Kosinus
durch Behandeln der Linien als Vektoren berechnet wird und
das Berechnen des Punktprodukts des Paars von Vektoren,
welches den Winkel definiert, erfolgt.
15. Vorrichtung gemäß einem der Ansprüche 11 bis 14, wobei
die gegebene Bezier-Teilfläche durch Bezierkurven
unterschiedlicher Krümmung definiert ist und die Einrichtung zum
Erzeugen des Krümmungswerts eine Einrichtung zum Bestimmen
aufweist, welche Bezierkurve die stärkste Krümmung aufweist,
wobei diese stärkste Krümmung dann als die Krümmung der
gegebenen Bezier-Teilfläche verwendet wird.
16. Vorrichtung gemäß einem der Ansprüche 11 bis 15, wobei
die Vorrichtung ein interaktives System ist, welches zum
Modellieren der Bewegung des Objekts im dreidimensionalen Raum
als Reaktion auf Eingangsbefehle angeordnet ist, wobei das
Objekt in einen Betrachtungsraum projiziert wird, welcher
durch eine Betrachtungsposition in dem dreidimensionalen
Raum definiert ist, und wobei die gegebene Bezier-Teilfläche
nach dem Projizieren in den Betrachtungsraum rekursiv
unterteilt wird.
17. Vorrichtung gemäß einem der Ansprüche 11 bis 16, welche
ferner eine Einrichtung zum Erzeugen von Pixelwerten für die
Polygone aufweist.
18. Vorrichtung gemäß Anspruch 17, welche ferner einen
Rahmenpuffer zum Speichern der Pixelwerte aufweist.
19. Vorrichtung gemäß Anspruch 17 oder Anspruch 18, welche
ferner eine Anzeigeeinrichtung (19) zum Anzeigen der
Pixelwerte aufweist.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GB929223314A GB9223314D0 (en) | 1992-11-06 | 1992-11-06 | Processing image data |
Publications (2)
Publication Number | Publication Date |
---|---|
DE69318930D1 DE69318930D1 (de) | 1998-07-09 |
DE69318930T2 true DE69318930T2 (de) | 1998-10-22 |
Family
ID=10724668
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE69318930T Expired - Lifetime DE69318930T2 (de) | 1992-11-06 | 1993-10-29 | Bilddatenverarbeitung |
Country Status (5)
Country | Link |
---|---|
US (1) | US5771341A (de) |
EP (1) | EP0596667B1 (de) |
JP (1) | JP3352181B2 (de) |
DE (1) | DE69318930T2 (de) |
GB (1) | GB9223314D0 (de) |
Families Citing this family (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5973699A (en) * | 1996-09-19 | 1999-10-26 | Platinum Technology Ip, Inc. | System and method for increasing the performance for real-time rendering of three-dimensional polygonal data |
US6313840B1 (en) * | 1997-04-18 | 2001-11-06 | Adobe Systems Incorporated | Smooth shading of objects on display devices |
JPH10293854A (ja) * | 1997-04-18 | 1998-11-04 | Koubundou:Kk | 曲線表示方法及び装置、同曲線を表すデータの作成方法及び装置、並びに同表示方法及び作成方法を実現するためのプログラムを記録した記録媒体 |
JP3654616B2 (ja) * | 1997-12-19 | 2005-06-02 | 富士通株式会社 | 階層化ポリゴンデータ生成装置及び方法及び当該階層化ポリゴンデータを用いる三次元リアルタイム映像生成装置及び方法 |
EP1026639A3 (de) | 1999-02-04 | 2002-09-04 | Canon Kabushiki Kaisha | 3D-Rechnergraphik-Verarbeitungsgerät und -verfahren |
EP1033683B1 (de) | 1999-03-01 | 2006-03-22 | Canon Kabushiki Kaisha | Bildverarbeitungsgerät |
US20030189570A1 (en) * | 2000-07-28 | 2003-10-09 | Adrian Sfarti | Bicubic surface rendering |
USRE42534E1 (en) | 2000-07-28 | 2011-07-12 | Adrian Sfarti | Bicubic surface real-time tesselation unit |
US6563501B2 (en) * | 2000-07-28 | 2003-05-13 | Adrian Sfarti | Bicubic surface rendering |
US7245299B2 (en) * | 2003-05-12 | 2007-07-17 | Adrian Sfarti | Bicubic surface real-time tesselation unit |
US7280108B2 (en) | 2000-12-11 | 2007-10-09 | Adrian Sfarti | Bicubic surface rendering |
US7102636B2 (en) * | 2001-03-31 | 2006-09-05 | Intel Corporation | Spatial patches for graphics rendering |
US7174280B2 (en) * | 2002-04-23 | 2007-02-06 | Ford Global Technologies, Llc | System and method for replacing parametrically described surface features with independent surface patches |
US20050007369A1 (en) * | 2003-07-07 | 2005-01-13 | Jiangen Cao | Graphic engine for approximating a quadratic Bezier curve in a resource-constrained device |
US7142211B2 (en) | 2003-07-07 | 2006-11-28 | Arcsoft, Inc. | Graphic engine for fill style transferring in a resource-constrained device |
US6881074B1 (en) * | 2003-09-29 | 2005-04-19 | Cookson Electronics, Inc. | Electrical circuit assembly with micro-socket |
JP2012018546A (ja) * | 2010-07-07 | 2012-01-26 | Toshiba Corp | 画像処理装置、及び画像処理方法 |
WO2021154273A1 (en) * | 2020-01-31 | 2021-08-05 | Hewlett-Packard Development Company, L.P. | Generating 3d printing points using an approximate mathematical expression of a rqb curve |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4999789A (en) * | 1987-02-05 | 1991-03-12 | Hewlett-Packard Co. | Method and apparatus for trimming B-spline descriptions of patches in a high performance three dimensional graphics system |
US4912659A (en) * | 1987-10-30 | 1990-03-27 | International Business Machines Corporation | Parallel surface processing system for graphics display |
US5142617A (en) * | 1988-10-27 | 1992-08-25 | Tektronix, Inc. | Method of shading a graphics image |
JP2961121B2 (ja) * | 1990-10-17 | 1999-10-12 | セイコープレシジョン株式会社 | 曲線近似装置 |
-
1992
- 1992-11-06 GB GB929223314A patent/GB9223314D0/en active Pending
-
1993
- 1993-10-29 EP EP93308664A patent/EP0596667B1/de not_active Expired - Lifetime
- 1993-10-29 DE DE69318930T patent/DE69318930T2/de not_active Expired - Lifetime
- 1993-11-08 JP JP27817693A patent/JP3352181B2/ja not_active Expired - Lifetime
-
1996
- 1996-09-26 US US08/718,650 patent/US5771341A/en not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
DE69318930D1 (de) | 1998-07-09 |
JPH07311856A (ja) | 1995-11-28 |
EP0596667B1 (de) | 1998-06-03 |
EP0596667A1 (de) | 1994-05-11 |
GB9223314D0 (en) | 1992-12-23 |
US5771341A (en) | 1998-06-23 |
JP3352181B2 (ja) | 2002-12-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE69318930T2 (de) | Bilddatenverarbeitung | |
DE69224499T2 (de) | Dreidimensionale graphische Verarbeitung | |
DE69427210T2 (de) | Verfahren und Gerät zur Erzeugung von dreidimensionaler Animation | |
DE19646194B4 (de) | Echtzeit-Wiedergabeverfahren zum wahlweisen Ausführen von Bump-Mapping- und Phong-Schattierungs-Prozessen und zugehörige Vorrichtung | |
DE69324101T2 (de) | Bilddatenverarbeitung | |
DE68927471T2 (de) | Verfahren zur Schattierung eines graphischen Bildes | |
DE3750784T2 (de) | Generation eines intrapolierten charakteristischen Wertes zur Anzeige. | |
DE69716877T2 (de) | System und Verfahren zur genauen Gradientberechnung für die Texturabbildung in einem Computergraphiksystem | |
DE69726479T2 (de) | Selektive Verfeinerung von Gitternetzen | |
DE69816824T2 (de) | Texturabbildung in 3-d-rechnergraphik | |
DE69122557T2 (de) | Bilderzeugung | |
DE69807479T2 (de) | Erzeugung eines Bildes eines dreidimensionalen Objekts | |
DE69129427T2 (de) | Pixelinterpolation im Perspektivraum | |
DE69600392T2 (de) | Vorrichtung und verfahren zum gestalten von bahndefiniertenkurven | |
DE3854223T2 (de) | Erzeugung und Anzeige von Rechnergraphiken. | |
DE69027402T2 (de) | Verfahren und Vorrichtung zur Steuerung von Robotern und ähnlichem zum Gebrauch hierarchisch organisierter "Bubble-Daten", die entlang einer Mittelachse angeordnet sind | |
DE4211385A1 (de) | Daten-projektionssystem | |
DE19807053B4 (de) | Strahltransformationsverfahren für eine schnelle Volumenaufbereitung für eine perspektivische Betrachtung | |
DE3022454A1 (de) | Optisches abbildesystem mit computererzeugtem bild fuer einen bodenfesten flugsimulator | |
DE69802802T2 (de) | Verfahren und vorrichtung zum ändern der farbe eines bildes | |
DE69331486T2 (de) | Bilddatenverarbeitung | |
DE19807013B4 (de) | Volumetrisches Vorabschneidungsverfahren, das eine minimale Anzahl von Abtastpunkten durch ein Volumen gewährleistet | |
DE69426042T2 (de) | Verfahren und Gerät zur Erzeugung von phantomen Kontrollwerten einer B-spline Kurve | |
DE102005050846A1 (de) | Perspektiveneditierwerkzeuge für 2-D Bilder | |
DE69606177T2 (de) | Verfahren und gerät zur texturabbildung |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8364 | No opposition during term of opposition |