DE3750803T2 - Schattierungsschaltung zur Schattierung mehrerer Polygone, die ein Festkörpermodel einsetzen, und Schattierungsverfahren dafür. - Google Patents
Schattierungsschaltung zur Schattierung mehrerer Polygone, die ein Festkörpermodel einsetzen, und Schattierungsverfahren dafür.Info
- Publication number
- DE3750803T2 DE3750803T2 DE3750803T DE3750803T DE3750803T2 DE 3750803 T2 DE3750803 T2 DE 3750803T2 DE 3750803 T DE3750803 T DE 3750803T DE 3750803 T DE3750803 T DE 3750803T DE 3750803 T2 DE3750803 T2 DE 3750803T2
- Authority
- DE
- Germany
- Prior art keywords
- coordinate
- vertices
- intensity
- shading
- coordinates
- 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
- 238000000034 method Methods 0.000 title claims description 15
- 230000008859 change Effects 0.000 claims description 69
- 238000012545 processing Methods 0.000 claims description 41
- 230000009466 transformation Effects 0.000 claims description 15
- 238000007781 pre-processing Methods 0.000 claims description 9
- 238000005070 sampling Methods 0.000 claims description 3
- 238000010586 diagram Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 238000007796 conventional method Methods 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 238000013461 design Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000002452 interceptive effect Effects 0.000 description 2
- 235000019557 luminance Nutrition 0.000 description 2
- 230000009467 reduction Effects 0.000 description 2
- 230000000717 retained effect Effects 0.000 description 2
- 239000011159 matrix material Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000002194 synthesizing effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/50—Lighting effects
- G06T15/80—Shading
- G06T15/87—Gouraud shading
Landscapes
- Engineering & Computer Science (AREA)
- Computer Graphics (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Image Generation (AREA)
Description
- Die vorliegende Erfindung bezieht sich auf ein Graphikverarbeitungssystem, um ein räumliches Modell graphisch zusammenzufügen bzw. zu synthetisieren, und insbesondere auf eine Schattierungsschaltung, um eine Vielzahl von Polygonen zu schattieren, die ein räumliches Modell bilden, das auf einem Anzeigeschirm angezeigt werden soll.
- In den Bereichen von Maschinenentwurf und Karosserieentwurf von Fahrzeugen wird ein Graphikverarbeitungssystem verwendet, um ein räumliches Modell graphisch zu synthetisieren. Das räumliche Modell wird synthetisiert, indem verschiedene Arten von Polygonen kombiniert werden. Zum Beispiel wird eine komplexe gekrümmte Oberfläche einer Fahrzeugkarosserie bzw. eines Fahrzeugkörpers durch eine große Anzahl von Polygonen approximiert, welche so definiert sind, daß eine Vielzahl von Punkten auf der gekrümmten Oberfläche bestimmt wird und verbunden wird. Zum Beispiel werden, wenn ein perspektivisches räumliches Modell gefordert wird, nur die Außenlinien bzw. Konturen von Polygonen angezeigt. Wenn gefordert wird, daß das räumliche Modell mehr konkretisiert wird, werden die Oberflächen von Polygonen auf der Vorderseite auf einem Schirm schattiert, wobei man annimmt, daß das räumliche Modell mit Licht bestrahlt wird.
- Als eines von herkömmlichen Schattierungsverfahren ist das Gouraud-Schattieren bekannt. Bei dem Gouraud-Schattieren werden Vertex- bzw. Scheitelpunktdaten einer Vielzahl von Punkten für jedes der Polygone bereitgestellt, die ein räumliches Modell bilden. Alle Vertexdaten repräsentieren eine dreidimensionale Position und eine Intensität (oder eine Luminanz) von einem der Vertices bzw. Scheitelpunkte eines Polygons. Die Vertexposition wird durch Koordinaten auf drei orthogonalen Koordinatenachsen, zum Beispiel Koordinatenachsen X, Y und Z, definiert. Zum Beispiel werden, falls ein Polygon ein Dreieck ist, wie in Fig. 1 dargestellt ist, Vertex- bzw. Scheitelpunktdaten (x1, y1, z1, I1), (x2, y2, z2, I2) und (x3, y3, z3, I3) für Vertices bzw. Scheitelpunkte A, B und C bereitgestellt. (x1, y1, z1), (x2, y2, z2) und (x3, y3, z3) sind dreidimensionale Koordinaten von Vertices bzw. Scheitelpunkten A, B und C beziehungsweise I1, I2 und I3 sind Intensitäten von Vertices bzw. Scheitelpunkten A, B und C.
- Auf dem Anzeigeschirm erstrecken sich die Koordinatenachsen X, Y und Z jeweils in die Richtungen der Horizontalen, Vertikalen und Tiefe. Die Vertex- bzw. Scheitelpunktdaten werden arithmetischen Operationen unterworfen, welche zum Schattieren des Polygons entlang von Abtastzeilen auf dem Anzeigeschirm erforderlich sind. Bei den arithmetischen Operationen werden Intensitäten und Z-Koordinaten von Punkten innerhalb des Polygons, welche sich entlang der Abtastzeilen befinden, erhalten. Die Intensität von jedem Punkt wird verwendet, um die Intensität des Pixels bzw. Bildelements, das diesem Punkt entspricht, bestimmt. Die Z-Koordinate jedes Punktes wird verwendet, um zu bestätigen, daß sich dieser Punkt vor einem Punkt eines anderen Polygons, das auf dem Schirm angezeigt werden soll, befindet. Die Abtastzeilen der Anzeige werden parallel zur Koordinatenachse X eingestellt. Eine unterbrochene Linie bzw. Zeile in Fig. 1 ist eine der Abtastzeilen. Die Intensitäten und Z-Koordinaten von Punkten innerhalb des dreieckigen Polygons, welche sich entlang dieser Abtastzeile befinden, werden wie folgt erhalten. In Fig. 1 repräsentieren (Xa, Ya, Za, Ia) und (Xb, Yb, Zb, Ib) Koordinaten und Intensitäten bei Positionen, wo die Abtastzeile zwei Punkte auf den Polygonkanten, d. h. die Punkte D und E, schneidet. Die Intensität Ia und Z-Koordinate Za des Punktes D werden erhalten, indem Intensitätswerte 12 und 13 beziehungsweise Z-Koordinatenwerte Z2 und Z3 beruhend auf den Y-Koordinatenwerten der Punkte B, D und C interpoliert werden. Die Intensität Ib und Z-Koordinate Zb des Punktes E können erhalten werden, indem Intensitätswerte I1 und I3 beziehungsweise Z-Koordinatenwerte Z1 und Z3 beruhend auf den Y-Koordinatenwerten der Punkte A, E und C interpoliert werden. (Xp, Yp, Zp, Ip) repräsentiert eine Koordinate und eine Intensität eines beliebigen Punktes P zwischen den Punkten D und E. Die Intensität Ip und Z-Koordinate Zp des Punktes P kann erhalten werden, indem Intensitätswerte Ia und Ib beziehungsweise Z-Koordinatenwerte Za und Zb beruhend auf den X-Koordinatenwerten von Punkten D, P und E interpoliert werden. Genauer können Ia, Ib, Ip, Za, Zb und Zp durch die folgenden Gleichungen angegeben werden:
- Ia = I2{(Ya - Y3)/(Y2 - Y3)} + I3{(Y2 - Ya)/(Y2 - Y3)} (1)
- Ib = I1{(Yb - Y3)/(Y1 - Y3)} + I3{(Y1 - Yb)/(Y1 - Y3)} (2)
- Ip = Ia{(Xp - Xb)/(Xa - Xb)} + Ib{(Xa - Xp)/(Xa - Xb)} (3)
- Za = Z2{(Ya - Y3)/(Y2 - Y3)} + Z3{(Y2 - Ya)/(Y2 - Y3)} (4)
- Zb = Z1{(Yb - Y3)/(Y1 - Y3)} + Z3{(Y1 - Yb)/(Y1 - Y3)} (5)
- Zp = Za{(Xp - Xb)/(Xa - Xb)} + Zb{(Xa - Xp)/(Xa - Xb)} (6)
- Bei dem Gouraud-Schattieren muß eine Dividiervorrichtung häufig verwendet werden. Eine Operationsgeschwindigkeit der Dividiervorrichtung ist normalerweise niedrig. Zum Beispiel erfordern, falls die Berechnungen der Gleichungen (3) und (6) für jeden der Punkte, die den Bildelementen auf der Abtastzeile entsprechen, durchgeführt werden, diese eine sehr lange Zeit. Aus diesem Grund werden die Intensitäten und Z- Koordinaten der Punkte gewöhnlich erhalten, indem ΔI/ΔX und ΔZ/ΔX verwendet werden. ΔI/ΔX repräsentiert die Änderung einer Intensität für jede Einheitsänderung in der X-Koordinate und wird aus den Gleichungen (1) und (2) berechnet. ΔZ/ΔX repräsentiert die Änderung der Z-Koordinate für jede Einheitsänderung in der X- Koordinate und wird aus den Gleichungen (4) und (5) berechnet. In diesem Fall können die Intensität und Z-Koordinate jedes Punktes erhalten werden, indem ΔI/ΔX und zu der Intensität und Z-Koordinate des Punktes addiert werden, der dem Bildelement vor der Einheitsänderung in der X-Koordinate entspricht. Jedoch müssen Berechnungen, um Änderungen ΔI/ΔX und ΔZ/ΔX zu erhalten, für jede Abtastzeile ausgeführt werden, und all die Berechnungen erfordern immer noch eine lange Zeit.
- Die X- und Y-Koordinaten eines Bildelements, dessen Intensität zu bestimmen ist, werden normalerweise durch eine digitale Differential-Analysiervorrichtung erzeugt. Jedoch ist es, weil die Operationsgeschwindigkeit, um Änderungen ΔI/ΔX und ΔZ/ΔX zu erhalten, niedrig ist, schwierig, die Dividiervorrichtung und die digitale Differential- Analysiervorrichtung zu verbinden, um eine Pipeline-Verarbeitung zu erreichen.
- Das Dokument nach dem Stand der Technik M. NEWMAN et al.: "Principles of interactive computer graphics", 2. Ausgabe, 1981, Seiten 389-410, Auckland, McGraw- Hill, offenbart Grundlagen einer interaktiven Computer- bzw. Rechnergraphik und insbesondere einer Anzeigevorrichtung. Gemäß diesen Grundlagen bestimmen Schattierungsmodelle die Schattierung eines Punktes auf der Oberfläche eines Objektes hinsichtlich einer Anzahl von Attributen bzw. Kennzeichen. Das Schattierungsmodell kann in drei Teile zerlegt werden, einen Beitrag von einer diffusen Bestrahlung, Beiträge für eine oder mehr spezifische Lichtquellen und einen Transparenzeffekt. Jeder dieser Effekte trägt Schattierungsformen bei, welche summiert werden, um die gesamte Lichtenergie zu finden bzw. ermitteln, die von einem Punkt auf ein Objekt fällt. Dies ist die Energie, welche eine Anzeige erzeugen sollte, um ein realistisches Bild des Objektes zu präsentieren.
- Es ist eine Aufgabe der vorliegenden Erfindung, wie beansprucht, eine Schattierungsschaltung und ein Verfahren zu schaffen, welches eine Gouraud-Schattierung bei hoher Geschwindigkeit ausführen kann.
- Die Schattierungsschaltung der vorliegenden Erfindung besitzt einen Vorverarbeitungsabschnitt, um die Tiefenänderung bzw. Änderung in der Tiefe ΔZ/ΔX einer Z-Koordinate für jede Einheitsänderung in einer X-Koordinate und die Änderung ΔI/ΔX einer Intensität für jede Einheitsänderung in einer X-Koordinate beruhend auf X-, Y- und Z-Koordinaten und Intensitäten von drei Vertices bzw. Scheitelpunkten von jedem der dreieckigen Polygone, die ein räumliches Modell bilden, zu erhalten, und einen DDA-Abschnitt, um Z-Koordinaten und Intensitäten von Punkten innerhalb jedes Polygons zu erhalten, wobei ΔZ/ΔX und ΔI/ΔX gemeinsam verwendet werden, wenn die X- und Z-Koordinate der Punkte bestimmt werden.
- Falls ein Polygon, das in einer Gouraud-Schattierung verarbeitet wird, ein Dreieck ist, ist eine Oberfläche, die durch Verbinden von Vertices bzw. Scheitelpunkten definiert wird, immer eine Ebene. Daher sind in dem Fall des dreieckigen Polygons die Änderung einer Intensität für jede Einheitsänderung in einer X-Koordinate und die Änderung einer Z-Koordinate für jede Einheitsänderung in einer X-Koordinate für all die Abtastzeilen parallel zu der X-Koordinatenachse konstant. Aus diesem Grund werden diese Werte einmal für ein einzelnes dreieckiges Polygon berechnet, und die berechneten Werte werden für all die Punkte innerhalb des Polygons gemeinsam verwendet, wodurch die Anzahl von Divisionsoperationen außerordentlich reduziert wird.
- Diese Erfindung kann vollständiger aus der folgenden ausführlichen Beschreibung verstanden werden, wenn sie in Verbindung mit den beiliegenden Zeichnungen vorgenommen wird, in welchen:
- Fig. 1 eine Ansicht zum Erklären einer herkömmlichen Gouraud-Schattierung ist;
- Fig. 2 ein dreieckiges Polygon zeigt, das gemäß einer Ausführungsform der vorliegenden Erfindung schattiert werden soll;
- Fig. 3 eine Ansicht zum Erklären eines Verfahrens ist, um eine Z-Koordinate und eine Intensität eines Punktes innerhalb des in Fig. 2 dargestellten dreieckigen Polygons zu erhalten;
- Fig. 4 ein Blockdiagramm ist, das eine Anordnung einer Schattierungsschaltung gemäß einer Ausführungsform der vorliegenden Erfindung zeigt;
- Fig. 5 eine Ansicht ist, welche ausführlich eine Anordnung einer in Fig. 4 dargestellten Verarbeitungseinheit zeigt;
- Fig. 6 eine Ansicht ist, welche ausführlich eine Anordnung einer in Fig. 5 dargestellten CPU zeigt
- Fig. 7A und 7B die detaillierte Struktur einer in Fig. 4 dargestellten DDA-Einheit zeigen;
- die Fig. 8, 9 und 10 Ansichten zum Erklären der Operation der in Fig. 4 dargestellten Schattierungsschaltung sind;
- Fig. 11 eine Ansicht ist, welche eine Anordnung einer Schattierungsschaltung gemäß einer zweiten Ausführungsform der vorliegenden Erfindung zeigt; und
- Fig. 12 eine Ansicht ist, welche eine Anordnung einer Schattierungsschaltung gemäß einer dritten Ausführungsform der vorliegenden Erfindung zeigt.
- Eine Ausführungsform der vorliegenden Erfindung wird im folgenden unter Bezugnahme auf Fig. 2 beschrieben werden. In dieser Ausführungsform werden dreieckige Polygone verwendet, um ein räumliches Modell zusammenzufügen bzw. zu synthetisieren. In einem Schattierungsverfahren für das räumliche Modell werden Vertexbzw. Scheitelpunktdaten von einer Vielzahl von Punkten für jedes Polygon bereitgestellt. Fig. 2 zeigt eines der dreieckigen Polygone. In Fig. 2 sind (X1, Y1, Z1, I1), (X2, Y2, Z2, I2) und (X3, Y3, Z3, I3) Vertexdaten, welche für Vertices bzw. Scheitelpunkte A, B und C dieses dreieckigen Polygons bereitgestellt werden. (X1, Y1, Z1), (X2, Y2, Z2) und (X3, Y3, Z3) sind dreidimensionale Koordinaten, welche die Positionen von Vertices bzw. Scheitelpunkten A, B und C des Polygons repräsentieren, und I1, I2 und I3 sind Intensitäten oder Luminanzen von Vertices bzw. Scheitelpunkten A, B und C des Polygons.
- Eine arithmetische Operation, welche zum Schattieren des in Fig. 2 dargestellten Polygons notwendig ist, wird beschrieben Werden. In dieser arithmetischen Operation werden Y-Koordinaten von Vertices bzw. Scheitelpunkten A, B und C verglichen, um einen Vertex festzustellen, der sich zwischen zwei Vertices bzw. Scheitelpunkten in der Y-Koordinatenrichtung befindet. In diesem Fall wird der Vertex bzw. Scheitelpunkt B festgestellt. Eine X-Koordinate Xq, Z-Koordinate Zg und Intensität Ig eines Punktes Q, der in Fig. 2 dargestellt ist, werden dann berechnet. Der Punkt Q(Xq, Yq, Zq, Iq) befindet sich bei einer Position, bei der eine Zeile, die von dem Vertex bzw. Scheitelpunkt B parallel zur Koordinatenachse X gezeichnet wird, die Seite AC schneidet, welche die Vertices bzw. Scheitelpunkte A und C verbindet, und Werte von Xq, Zq und Iq werden durch eine Mittelpunkt-Unterteilung an Koordinatenwerten beziehungsweise Intensitäten von Vertices bzw. Scheitelpunkten A und C erhalten.
- In Bezug auf ein Linien- bzw. Zeilensegment BQ entlang einer Abtastzeile werden die Änderung einer Z-Koordinate für jede Einheitsänderung in einer X-Koordinate und die Änderung einer Intensität für jede Einheitsänderung in einer X-Koordinate durch Divisionen (Zq - Z2)/(Xq - X2) beziehungsweise (Iq - I2)/(Xq - X2) erhalten. Das dreieckige Polygon besitzt wie oben beschrieben eine flache bzw. ebene Oberfläche. Daher können die gleichen Ergebnisse erhalten werden, sogar falls die obigen Berechnungen für irgendeine Abtastzeile über das Polygon ausgeführt werden.
- Für die Seiten AB, BC und CA des Polygons werden die Änderungen einer X-Koordinate für jede Einheitsänderung in einer Y-Koordinate durch Divisionen (X1 - X2)/(Y1 - Y2), (X2 - X3)/(Y2 - Y3) beziehungsweise (X3 - X1)/(Y3 - Y1) berechnet. Für die Seite AC werden die Änderungen einer Z-Koordinate und Intensität für jede Einheitsänderung in einer Y-Koordinate durch Divisionen (Z1 - Z3)/(Y1 - Y3) beziehungsweise (I1 - I3)/(Y1 - Y3) erhalten. Die obigen sieben Divisionen werden als eine Vorverarbeitung zum Schattieren der Oberfläche eines einzelnen Polygons auf einem Anzeigeschirm durchgeführt, und die Ergebnisse dieser Divisionen werden in, zum Beispiel, Registern zurückgehalten.
- Die Divisionsergebnisse werden für eine arithmetische Verarbeitung zum Bestimmen von Intensitäten entsprechender Pixel bzw. Bildelemente verwendet, während die Polygone auf dem Anzeigeschirm abgetastet werden. Die X- und Y-Koordinaten von Bildelementen, deren Intensität bestimmt werden sollte, werden erzeugt, indem eine digitale Differential-Analysiervorrichtung (DDA) verwendet wird. In diesem Fall wird das Polygon vom Vertex bzw. Scheitelpunkt C auf den Vertex bzw. Scheitelpunkt A zu in einer Richtung parallel zur Koordinatenachse X abgetastet, und Z-Koordinaten und eine Intensität von Punkten innerhalb des Polygons werden gemäß den X- und Y- Koordinaten erhalten. Genauer werden die Z-Koordinaten und Intensität von Punkten innerhalb des Polygons in jeder Abtastzeile gemäß den X-Koordinaten von Bildelementen erhalten. Die Intensitäten von Bildelementen auf dem Anzeigeschirm werden beruhend auf den Z-Koordinaten und Intensitäten von Punkten innerhalb des Polygons bestimmt, und das schattierte Polygon wird in der Praxis angezeigt.
- In dem in Fig. 2 dargestellten Polygon wird die Operation zur Intensitätsbestimmung für die Bildelemente auf jeder Abtastzeile von der Seite AC ausgeführt. Ob die Richtung der Operation zur Intensitätsbestimmung nach rechts oder links entlang der Abtastzeile verläuft, wird bestimmt, indem die Werte von Xq und X2 verglichen werden. Genauer wird, wenn der Wert von Xq größer als der von X2 ist, die Operation in der Richtung von rechts nach links durchgeführt. Wenn der Wert von Xq kleiner als der von X2 ist, wird sie in der Richtung von links nach rechts durchgeführt.
- Während das Polygon vom Vertex bzw. Scheitelpunkt C zum Linien- bzw. Zeilensegment BQ abgetastet wird, werden die Z-Koordinaten und Intensitäten von Punkten, welche den Bildelementen entsprechen, die auf den Abtastzeilen liegen, wie folgt erhalten. Nachdem der Vertex bzw. Scheitelpunkt C zuerst abgetastet ist, wird die Y-Koordinate der Abtastzeile um eine Einheit erhöht, um das Polygon entlang der nächsten Abtastzeile abzutasten, die sich eine Zeile oberhalb der Abtastzeile befindet. Wenn die Intensitäten von Bildelementen auf dieser Abtastzeile bestimmt sind, werden X-Koordinaten Xf und Xg von Punkten F und G zuerst berechnet. Die Punkte F(Xf, Yf, Zf, If) und G(Xg, Yg, Zg, Ig) sind Punkte, bei denen diese Abtastzeile die Seiten BC und CA des Polygons schneidet. Die X-Koordinaten Xf und Xg der Punkte F und G können durch die folgenden Gleichungen berechnet werden:
- Xf = X3 + (X2 - X3)/(Y2 - Y3) (7)
- Xg= X3 + (X1-X3)/(Y1-Y3) (8)
- Die Z-Koordinate Zg und Intensität Ig des Punktes G werden dann berechnet. Die Z-Koordinate Zg und Intensität Ig werden durch die folgenden Gleichungen berechnet:
- Zg = Z3 + (Z1 - Z3)/(Y1 - Y3) (9)
- Ig = I3 + (I1 - I3)/(Y1 - Y3) (10)
- Danach wird die Anzahl von Pixel bzw. Bildelementen (d. h. die Anzahl von Einheitsänderungen in einer X-Koordinate) entlang dieses Zeilensegments FG berechnet. Die Anzahl von Bildelementen wird beruhend auf X-Koordinaten Xg und Xf der Punkte G und F berechnet. Wenn die Intensitäten der Bildelemente von dem Punkt G auf den Punkt F zu bestimmt sind, werden die Z-Koordinaten und Intensitäten von Punkten innerhalb des Polygons wie folgt -berechnet. Genauer können die' Z- Koordinaten und die Intensitäten der Punkte innerhalb des Polygons berechnet werden, indem zur Z-Koordinate Zg und Intensität Ig des Abtast-Startpunktes, d. h. des Punktes G, die Änderung (Zq - Z2)/(Xq - X2) einer Z-Koordinate für jede Einheitsänderung in einer X-Koordinate und die Änderung (Iq - I2)/(Xq - X2) einer Intensität für jede Einheitsänderung in einer X-Koordinate sequentiell addiert werden.
- Die Y-Koordinate der Abtastzeile wird sequentiell um die Einheit erhöht, so daß das Polygon sequentiell auf das Zeilensegment BQ zu abgetastet wird. Auf diese Weise wird ein kleines Dreieck BCQ schattiert.
- Das Polygon wird ferner vom Zeilensegment BQ auf den Vertex bzw. Scheitelpunkt A zu in einer Richtung parallel zur Koordinatenachse X abgetastet. In diesem Fall wird die X-Koordinate eines Punktes auf einer Seite AB berechnet, wobei (X1 - X2)/(Y1 - Y2) verwendet wird, was die Änderung einer X-Koordinate für jede Einheitsänderung in einer Y- Koordinate repräsentiert.
- Wenn sich die Abtastzeile eine Zeile oberhalb einer die Punkte B und Q schneidenden Abtastzeile befindet und die Intensität von Bildelementen auf dieser Abtastzeile bestimmt sind, werden zuerst X-Koordinaten Xj und Xk von Punkten J und K berechnet. Punkte J(Xj, Yj, Zj, Ij) und K(Xk, Yk, Zk, Ik) sind Punkte, bei denen diese Abtastzeile die Seiten AB beziehungsweise AC schneidet. Die X-Koordinaten Xj und Xk der Punkte J und K werden durch die folgenden Gleichungen berechnet:
- Xj= X2+(X1-X2)/(Y1-Y2) (11)
- Xk = Xq + (X1 - X3)/(Y1 - Y3) (12)
- Die Z-Koordinate Zk und Intensität Ik des Punktes K und die Anzahl von Bildelementen entlang des Zeilensegments JK werden dann in der gleichen Weise wie oben beschrieben berechnet. Die Intensitäten von Bildelementen werden vom Punkt K auf den Punkt J zu bestimmt, und die Z-Koordinaten und Intensitäten von Punkten, welche den Bildelementen entsprechen, werden durch die gleiche Addition wie oben beschrieben berechnet. Die Y-Koordinate der Abtastzeile wird sequentiell um die Einheit erhöht, und die Z-Koordinaten und Intensitäten von Punkten innerhalb des Polygons entlang der entsprechenden Abtastzeile werden demgemäß erhalten. Nachdem das Polygon bis zum Vertex bzw. Scheitelpunkt A aufwärts abgetastet ist, ist ein Schattieren eines kleinen Dreiecks ABQ beendet.
- Fig. 4 ist ein Blockdiagramm, das eine Schattierungsschaltung zur Realisierung der obenerwähnten Verarbeitung zeigt. Die schematische Anordnung der Schattierungsschaltung wird nun beschrieben werden. Die Schattierungsschaltung besitzt einen FIFO-Puffer 10, eine Verarbeitungseinheit 12 und eine Dividiervorrichtung 14 als Vorverarbeitungsabschnitt 15. Der Puffer 10 empfängt Vertexdaten dreieckiger Polygone und verschiedene Befehle zum Beispiel von einer (nicht dargestellten) Tastatur und liefert diese Daten an die Verarbeitungseinheit 12. Die Verarbeitungseinheit 12 führt beruhend auf den Vertexdaten die vorbestimmte Verarbeitung und verschiedene Regelungsoperationen aus. Die Dividiervorrichtung 14 führt verschiedene Divisionen aus, welche durch die Verarbeitungsschaltung 12 bestimmt werden. Die Schattierungsschaltung besitzt ferner eine digitale Differential-Analysiereinheit 16, einen Speicherregler 18 und einen Datenübertragungsblock-Speicher bzw. Blockspeicher 20. Die Einheit 16 empfängt Vertexdaten und die Berechnungsergebnisse von der Verarbeitungseinheit 12.
- Die Einheit 16 erzeugt sequentiell Signale für eine lineare Adresse, welche X- und Y- Koordinaten der Bildelemente repräsentieren, die Punkten zugeordnet sind, die ein Polygon bilden, und Intensitäten und Z-Koordinaten, und X- und Y-Koordinatenpunkte jedes Bildelements werden von der Einheit 16 an den Speicherregler 18 geliefert. Eine Intensität und Z-Koordinate von jedem Bildelement werden von der Einheit 16 an den Blockspeicher 20 geliefert. Der Blockspeicher 20 besitzt eine Vielzahl von Speicherzellen und speichert eine Intensität und Z-Koordinate eines Bildelements in den Speicherzellen, welche durch eine Regelung des Reglers 18 bestimmt werden. Die Inhalte des Speichers 20 werden periodisch an die Anzeige 22 geliefert.
- Fig. 5 zeigt die Anordnung der Verarbeitungseinheit 12. Die Verarbeitungseinheit 12 besitzt eine CPU 24, einen ROM 26, RAM 28 und einen Puffer 30, welche miteinander durch einen gemeinsamen Bus 25 verbunden sind. Der Bus 25 schließt Adreßleitungen, Datenleitungen und Regelungsleitungen ein. Der ROM 26 speichert ein Regelungsprogramm für die CPU 24. Anweisungen von diesem Programm werden durch den Bus 25 sequentiell an die CPU 24 geliefert. Die CPU 24 führt verschiedene Regelungsoperationen und Berechnungen gemäß den Anweisungen aus. Der RAM 28 speichert vorübergehend Eingabe/Ausgabe-Daten in/von die/der CPU 24. Wenn Vertex- bzw. Scheitelpunktdaten des dreieckigen Polygons von dem FIFO-Puffer 10 an die CPU 24 geliefert werden, verarbeitet die CPU 24 die Daten, wobei die Dividiervorrichtung 14 verwendet wird, und liefert die verarbeiteten Daten an den Puffer 30.
- Fig. 6 zeigt die schematische Anordnung bzw. Ausführung der CPU 24. Die CPU 24 besitzt eine ALU 32, einen Akkumulator 34 und Registerdateien 36. Die ALU 32 besitzt X- und Y-Eingabeschnittstellen bzw. -anschlüsse, die mit internen Bussen D1 und D2 verbunden sind, und kann eine arithmetisch-logische Operation mit 32-Bit- Daten ausführen. Die Registerdateien 36 empfangen und speichern vorübergehend die Datenausgabe von der ALU 32. Die Registerdateien 36 besitzen zwei 16-Bit- Ausgabeschnittstellen bzw. -anschlüsse, deren Ausgabeschnittstelle bzw. -anschluß höherer Ordnung direkt mit einem internen Bus D3 verbunden ist und deren Ausgabeschnittstelle bzw. -anschluß niedrigerer Ordnung mit dem internen Bus D3 durch eine Umschaltschaltung 38 verbunden ist. Der Akkumulator 34 besitzt eine Shiftbzw. Schiebefunktion und ist zwischen den internen Bussen D3 und D2 eingefügt. Die internen Busse D1, D2 und D3 sind jeweils durch Umschaltschaltungen mit dem gemeinsamen Bus 25 verbunden.
- Fig. 7A ist ein Blockdiagramm der DDA-Einheit, die in Fig. 4 dargestellt ist. Die DDA-Einheit 16 schließt eine Seiten-DDA 41, eine Abtast-DDA 43 und einen Adreß- Generator 45 ein. Die DDAs 41 und 43 sind über den Puffer 30 mit der CPU 24 verbunden. Die DDA 41 spezifiziert sequentiell Y-Koordinaten als Abtastzeilen und erhält die Startintensität und -Z-Koordinate für jede Abtastzeile. Die DDA 43 spezifiziert sequentiell X-Koordinaten entlang der durch die DDA 41 spezifizierten Abtastzeile und erhält eine Intensität und Z-Koordinate für jedes Bildelement auf der Abtastzeile. Der Adreß-Generator 45 wird mit X- und Y-Koordinaten von der DDA 43 beziehungsweise 41 versorgt. Diese X- und Y-Koordinaten werden in dem Generator 45 kombiniert und von dort an den Regler 18 als ein Signal für eine lineare Adresse geliefert.
- Die Abtast-DDA 43 schließt zwei Berechnungsabschnitte ein, um eine Intensität beziehungsweise Z-Koordinate zu erhalten. Diese Berechnungsabschnitte besitzen die gleiche Struktur wie in Fig. 7B dargestellt. Jeder Berechnungsabschnitt enthält einen Selektor 50, ein Register 52, ein Register 54 und eine Addiervorrichtung 56. In dem Abschnitt werden Anfangsdaten (d. h. die Startintensität oder die Start-Z-Koordinate) in dem Register 54 durch den Selektor 50 gespeichert, während Änderungsdaten (d. h. die Änderung einer Intensität für jede Einheitsänderung in einer X-Koordinate oder die Änderung einer Z-Koordinate für jede Einheitsänderung in einer X-Koordinate) in dem Register 52 gespeichert werden. Diese Daten werden durch die Addiervorrichtung 56 addiert, und die Summenüaten werden ausgegeben. Danach werden die Ausgabedaten von der Addiervorrichtung 56 in dem Register 54 durch den Selektor 50 gespeichert. Änderungsdaten werden zu dem Inhalt des Registers 54 durch die Addiervorrichtung 56 hinzugefügt bzw. addiert, und die Summendaten werden ausgegeben. Die Ausgabedaten von der Addiervorrichtung 56 werden in dem Register 54 durch den Selektor 50 gespeichert. Diese Operation wird so oft wie nötig wiederholt.
- Die Operation der Schattierungsschaltung wird nun unter Bezugnahme auf die Figuren 8 bis 10 beschrieben werden. Fig. 8 ist ein Flußdiagramm für die Verarbeitungseinheit 12, Fig. 9 ist ein Flußdiagramm für die DDA-Einheit 16, und Fig. 10 zeigt Zeitsteuerungen einer Ausführung von Schritten, die in den Fig. 8 und 9 dargestellt sind. Man nehme an, daß ein dreieckiges Polygon, das in Fig. 2 dargestellt ist, schattiert wird. Die Verarbeitungseinheit 12 empfängt Vertex- bzw. Scheitelpunktdaten von Vertices bzw. Scheitelpunkten A, B und C des Polygons, d. h. (X1,Y1,Z1,I1), (X2, Y2, Z2, I2) und (X3, Y3, Z3, I3), durch den FIFO-Puffer 10 in Schritt 60. Die X-, Y- und Z-Koordinaten und die Intensitäten der Vertex- bzw. Scheitelpunktdaten werden zu den MSBs um 16 Bits verschoben und in ganze Zahlen umgewandelt. In Schritt 61 sortiert die CPU 24 die Y-Koordinaten von Vertex- bzw. Scheitelpunktdaten in der absteigenden Reihenfolge. In Schritt 62 werden die X- und Z-Koordinaten und die Intensität des Punktes Q, der in Fig. 2 dargestellt ist, durch das Mittelpunkt- Unterteilungsverfahren berechnet. In Schritt 64 veranlaßt die CPU 24, daß die Dividiervorrichtung 14 ΔZ/ΔX und ΔI/ΔX für ein Zeilensegment BC berechnet. ΔI/ΔX ist die Änderung einer Intensität für jede Einheitsänderung in einer X-Koordinate, und ΔZ/ΔX ist die Aiiderung einer Z-Koordinate für jede Einheitsänderung in einer X-Koordinate. In Schritt 65 veranlaßt die CPU 24, daß die Dividiervorrichtung 14 ΔX/ΔY für jede der Seiten AB, BC und CA des Polygons berechnet. ΔX/ΔY ist die Änderung einer X-Koordinate für jede Einheitsänderung in einer Y-Koordinate. In Schritt 65 veranlaßt die CPU 24, daß die Dividiervorrichtung 14 ΔZ/ΔY und ΔI/ΔY für die Seite AC berechnet. ΔZ/ΔY ist die Änderung einer Z-Koordinate für jede Einheitsänderung in einer Y-Koordinate. ΔI/ΔY ist die Änderung einer Intensität für jede Einheitsänderung in einer Y-Koordinate. In den Schritten 64 und 65 werden Divisionsergebnisse an Register der DDA-Einheit 16 geliefert, und der Speicherregler 18 weist den Blockspeicher 20 an, die Ausgabedaten von der DDA-Einheit 16 zu speichern. In Schritt 66 berechnet die DDA-Einheit 16 die Z-Koordinaten und Intensitäten von Punkten innerhalb eines Dreiecks BCQ als Bildelemente auf dem Anzeigeschirm und liefert die Ergebnisse an den Blockspeicher 20. In Schritt 67 berechnet die DDA-Einheit 16 die Z-Koordinaten und Intensität von Punkten innerhalb eines Dreiecks ABQ als Bildelemente auf dem Anzeigeschirm und liefert die Ergebnisse an den Blockspeicher 20. Bei Schritt 66 und 67 werden Änderungsdaten ΔI/ΔX und ΔZ/ΔX kontinuierlich in den Registern 52 der Berechnungsabschnitte der, Abtast-DDA 43 gespeichert und werden verwendet, um Intensitäten und Z-Koordinaten von Punkten zu erhalten, welche den Bildelementen auf jeder Abtastzeile entsprechen.
- Wenn all die Polygone, welche das räumliche Modell bilden, schattiert werden sollen, werden die in den Fig. 8 und 9 dargestellten Operationen so oft wiederholt, wie der Anzahl dieser Polygone entspricht. In diesem Fall überschneiden sich die Operationen (1) bis (5), welche mit dem ersten Polygon verbunden sind, mit den Operationen (1)' bis (5)', welche mit einem zweiten Polygon verbunden sind, wie in Fig. 10 dargestellt ist.
- In der Schattierungsschaltung dieser Ausführungsform können die Verarbeitungsoperation in dem Vorverarbeitungsabschnitt 15 und die in der DDA-Einheit 16 vollständig getrennt werden, und daher kann eine parallele Pipeline-Verarbeitung erreicht werden. Genauer können, wenn eine Verarbeitung für ein unmittelbar vorhergehendes Polygon durch die DDA-Einheit 16 durchgeführt wird, Berechnungen der oben erwähnten sieben Werte durch den Vorverarbeitungsabschnitt 15 ausgeführt werden, wobei somit eine Hochgeschwindigkeitsverarbeitung realisiert wird. Insbesondere sind, wobei man der Dividiervorrichtung 14 Beachtung schenkt, in dem herkömmlichen Verfahren alle drei Divisionen zum Berechnen von ΔX/ΔY, ΔI/ΔY und ΔZ/ΔY, d. h. insgesamt neun Divisionen, in dem Fall eines dreieckigen Polygons erforderlich. Zusätzlich sind, falls die Anzahl von Abtastzeilen als n gegeben ist, jeweils n Divisionen zum Berechnen von ΔZ/ΔX und ΔI/ΔX für jede Y-Koordinate erforderlich. Daher sind in dem herkömmlichen Verfahren (9 + n) Divisionen notwendig. Im Gegensatz dazu werden in der Schattierungsschaltung der vorliegenden Erfindung nur 7 Divisionen für jedes dreieckige Polygon ausgeführt. Allgemein kann, weil Divisionen eine lange Operationszeit erfordern, eine Verringerung in der Anzahl wiederholter Divisionen große praktische Vorteile liefern.
- In der in Fig. 4 dargestellten Schattierungsschaltung kann, weil die Verarbeitungsoperation in der DDA-Einheit 16 die Operationsgeschwindigkeit der gesamten Schaltung bestimmt, eine einzelne Dividiervorrichtung 14, um die oben erwähnten sieben Werte zu erhalten, gemeinsam für jeweilige Berechnungen verwendet werden. Somit kann eine Schaltungsgröße verringert werden.
- Die vorliegende Erfindung ist nicht auf die obige Ausführungsform begrenzt, und verschiedene Änderungen und Modifikationen können innerhalb des Geistes und Umfangs der Erfindung vorgenommen werden. Zum Beispiel wird in der obigen Beschreibung das Mittelpunkt-Unterteilungsverfahren als ein Verfahren zur Berechnung des Punktes Q verwendet. Statt dessen können X- und Z-Koordinaten und eine Intensität des Punktes Q mit einer Y2-Koordinate auf der Seite AC berechnet werden, wobei Werte von (X1 - X3)/(Y1 - Y3), (Z1 - Z3)/(Y1 - Y3), (I1 - I3)/(Y1 - Y3) und das DDA-Verarbeitungsschema verwendet werden.
- Eine andere Ausführungsform der vorliegenden Erfindung wird unter Bezugnahme auf die beiliegenden Zeichnungen beschrieben werden. In dieser Ausführungsform ist ein zu schattierendes Polygon auf ein Dreieck begrenzt, und wie in Fig. 2 dargestellt sind dreidimensionale Koordinaten (X, Y, Z) und Intensitäten (I) jeweils für Vertices bzw. Scheitelpunkte A, B und C des dreieckigen Polygons gegeben. Die Änderungsraten in einer Intensität und Tiefenkoordinate bezüglich einer X-Koordinate werden berechnet, wobei eine konstante Y-Koordinate verwendet wird, d. h. entlang einer Abtastzeile parallel zu der X-Koordinatenachse. Diese Werte können analytisch berechnet werden und können wie folgt ausgedrückt werden:
- (ΔZ/ΔX)(Y : konstant) = {(Y1 - Y2)(Z2 - Z3) - (Y2 - Y3)(Z1 - Z2)} /{(Y1 - Y2)(X2 - X3) - (Y2 - Y3)(X1 - X2)} (13)
- (ΔI/ΔX)(Y : konstant) = {(Y1 - Y2)(I2 - I3) - (Y2 - Y3)(I1 - I2)} /{(Y1 - Y2)(X2 - X3) - (Y2 - Y3)(X1 - X2)} (14)
- Wenn das Polygon ein Dreieck ist, sind die obenerwähnten Werte allen Abtastzeilen gemeinsam. Für die Seiten AB, BC und CA werden drei Änderungsraten in einer X-Koordinate bezüglich der Y-Koordinate, d. h. (X1 - X2)/(Y1 - Y2), (X2 - X3)/(Y2 - Y3) und (X3 - X1)/(Y3 - Y1), erhalten. Zusätzlich werden für die Seiten AB, BC und CA insgesamt sechs Änderungsraten in einer Intensität und Tiefenkoordinate bezüglich der Y-Koordinate, d. h. drei Arten von (ΔI/ΔY) und drei Arten von (ΔZ/ΔY), entsprechend erhalten. Von diesen Verhältnissen werden zum Schattieren maximal vier Arten verwendet. Die Berechnungswerte der Gleichungen (13) und (14), die drei Arten von Verhältnissen (ΔX/ΔY) und ein Maximum von vier Arten von Verhältnissen (ΔI/ΔY) und (ΔZ/ΔY), d. h. sieben Arten von Divisionswerten, werden zurückgehalten, und eine Schattierungsverarbeitung wird ausgeführt. Zum Beispiel werden Z-Koordinaten und Intensitäten von Punkten innerhalb des Polygons bezüglich X-Koordinaten von Bildelementen berechnet, während das Polygon von der Seite AB entlang der X-Koordinatenachse abgetastet wird. Zum Beispiel nehme man an, daß das Polygon sequentiell von dem Vertex bzw. Scheitelpunkt, B auf den Vertex bzw. Scheitelpunkt A zu parallel zur Koordinatenachse X abgetastet wird. Wenn die Y-Koordinate um eine Einheitskoordinate erhöht wird, um eine Zeile, die sich eine Zeile oberhalb der gegenwärtigen Zeile befindet, abzutasten, können X-Koordinaten von Punkten J und K, bei welchen diesem Abtastzeile jeweils die Seiten AB und AC schneidet, durch Addition berechnet werden. Genauer können X-Koordinaten Xf und Xg von Punkten F und G berechnet werden durch:
- Xf = X2+(X1-X2)/(Y1-Y2)
- Xg = X2+(X1-X3)/(Y1-Y3)
- Entsprechend können eine Z-Koordinate Zj und Intensität Ij eines Punktes J berechnet werden durch:
- Zj = X2+(Z1-Z2)/(Y1-Y2)
- Ij = I2 + (I1 - I2)/(Y1 - Y2)
- Die Anzahl von Bildelementen auf einer Abtastzeile, die durch ein Zeilensegment JK parallel zu der X-Achse definiert wird, kann aus Xj und Xk berechnet werden, und Z-Koordinaten und eine Intensität I, welche Bildelementen auf der Abtastzeile entsprechen, können erhalten werden, indem (ΔZ/ΔX) (Y: konstant) und (ΔI/ΔX) (Y: konstant) sequentiell zur Z-Koordinate Zj und Intensität Ik des Abtast-Startpunktes addiert werden. Auf diese Weise wird die Y-Koordinate sequentiell um eine Einheitskoordinate erhöht, um die Abtastzeile sequentiell zu aktualisieren bzw. fortzuschreiben, und eine Schattierungsverarbeitung für ein einzelnes Dreieckspolygon wird beendet. Zu diesem Zeitpunkt ist es wichtig, daß zwei Werte von (ΔZ/ΔX) (Y: konstant) und (ΔI/ΔX) (Y: konstant) konstant sind.
- Fig. 11 ist ein Blockdiagramm, das eine Schattierungsschaltung gemäß einer zweiten Ausführungsform ähnlich der ersten Ausführungsform zeigt. Die in Fig. 11 dargestellte Schattierungsschaltung schließt einen Vorverarbeitungsabschnitt 15 als einen Abschnitt für eine geometrische Transformation ein, um eine Primärtransformations-Verarbeitung an jedem Polygon auszuführen. Eine Primärtransformat ions- Verarbeitung, wie zum Beispiel eine Koordinatentransformation, Vergrößerung, Verkleinerung bzw. Reduktion und dergleichen, wird beruhend auf Datenpunkten von Vertices bzw. Scheitelpunkten ausgeführt. Die Schattierungsschaltung schließt einen Schattierungsabschnitt ein, um Daten in einen Blockspeicher 20 in einem Schattierungsverfahren zu schreiben. Der Abschnitt 15 für eine geometrische Transformation führt eine Primärtransformations-Verarbeitung, wie zum Beispiel eine Matrixmultiplikation, aus, wobei eine Multipliziervorrichtung 70 verwendet wird. Die Multipliziervorrichtung 70 kann arithmetische Operationen ausführen, wie zum Beispiel eine Multiplikation, Addition, Subtraktion und dergleichen, um die obige Verarbeitung durchzuführen. In dieser Erfindung weist der Abschnitt 15 für eine geometrische Transformation ebenfalls eine Dividiervorrichtung auf, die zum Ausführen einer Multiplikation, Addition verwendet werden kann. Daher werden (ΔZ/ΔX) (Y: konstant) und (ΔI/ΔX) (Y: konstant), die durch die Gleichungen (13) und (14) repräsentiert werden, und sieben Arten von Divisionswerten durch den Abschnitt 15 für eine geometrische Transformation berechnet, und die Ergebnisse werden an die DDA-Einheit 16 des Schattierungsabschnitts geliefert.
- Als eine Schattierungsschaltung gemäß einer dritten Ausführungsform ähnlich der zweiten Ausführungsform werden Werte der Zähler und Nenner der Gleichungen (13) und (14) jeweils durch den Abschnitt 15 für eine geometrische Transformation berechnet, wobei die Multiplikations-, Additions- und Subtraktionsfunktionen der Multipliziervorrichtung 70 verwendet werden, und die berechneten Werte der Zähler und Nenner werden an die DDA-Einheit 16 geliefert, um Werte von (ΔZ/ΔX) (Y: konstant) und (ΔI/ΔX) (Y: konstant) und sieben Arten von Divisionswerten zu berechnen, wobei die Dividiervorrichtung 74 des Schattierungsabschnitts verwendet wird.
- Wie aus den Ausführungsformen der vorliegenden Erfindung verstanden werden kann, können, weil ein dreieckiges Polygon verwendet wird, (ΔZ/ΔX) (Y: konstant) und (ΔI/ΔX) (Y: konstant) als Konstanten in einem Dreieck verwendet werden. Daher kann die Anzahl wiederholter Divisionen im Vergleich zu einem herkömmlichen Verfahren verringert werden. Zusätzlich kann, weil eine Schattierungsverarbeitung für ein gegebenes Dreieck und eine Berechnungsverarbeitung von Z-Koordinaten für die Tiefe und Intensitäten des nächsten Dreiecks in einer parallelen Pipeline-Weise ausgeführt werden können, ein Hochgeschwindigkeitsbetrieb realisiert werden. Wenn die obigen zwei Werte berechnet werden, kann eine Hardware (Multipliziervorrichtung, ALU) eines Abschnitts für eine geometrische Transformation effektiv verwendet werden, und eine Dividiervorrichtung eines Schattierungsabschnitts kann ebenfalls effektiv genutzt werden. Zusätzlich kann, weil die Z-Koordinaten analytisch erhalten werden können, eine Verarbeitung bei einer höheren Geschwindigkeit als einer sukzessiven Approximation durchgeführt werden, und eine Genauigkeit des berechneten Wertes kann sichergestellt werden. Die Datenverarbeitung in dem Abschnitt für eine geometrische Transformation und die in dem Abschnitt für eine Schattierungsverarbeitung können gut ausgeglichen werden, und eine Funktion bzw. Wirksamkeit als ein Graphikverarbeitungssystem kann verbessert werden. Weil Hardware gespart werden kann, können der Abschnitt für eine geometrische Transformation und der Abschnitt für eine Schattierungsverarbeitung leicht durch LSIs (ein Chip bis mehrere Chips) aufgebaut werden. Wenn die Dividiervorrichtung in entweder dem Abschnitt für eine geometrische Transformation oder dem Schattierungsabschnitt enthalten ist, kann eine Funktion bzw. Wirksamkeit der gesamten Verarbeitung gemäß einer Verarbeitungsleistung der jeweiligen Abschnitte in dem Gerät verbessert werden.
Claims (11)
1. Eine Schattierungsschaltung, um sequentiell eine Vielzahl von Polygonen zu
schattieren, die ein räumliches Modell bilden, das auf einem Schirm angezeigt
bzw. dargestellt werden soll, definiert durch X-, Y- und Z-Koordinatenachsen,
welche jeweils orthogonal zueinander sind, mit:
Schattierungsmittel, um die Intensitäten der Vertices bzw. Scheitelpunkte zu
interpolieren, die in einem ausgewählten Polygon der Polygone enthalten sind,
um die Intensität von jedem Punkt von Punkten, die innerhalb des ausgewählten
Polygons auf Abtastzeilen parallel zu der X-Koordinatenachse angeordnet bzw.
gelegen sind, zu bestimmen;
dadurch gekennzeichnet, daß
die Vielzahl von Polygonen dreieckige Polygone sind; und
das Schattierungsmittel einschließt:
einen Vorverarbeitungsabschnitt (15), um Daten dreier Scheitelpunkte, die,
jeweils die Intensität von X-, Y- und Z-Koordinaten eines entsprechenden
Scheitelpunktes des ausgewählten dreieckigen Polygons entsprechen, zu empfangen, die
Intensität und Z-Koordinate von jedem von zwei Punkten, bei welchen eine der
Abtastzeilen das ausgewählte dreieckige Polygon schneidet, beruhend auf den
Intensitäten und Z-Koordinaten von entsprechenden zwei Scheitelpunkten davon zu
erhalten und eine Einheitsänderung ΔI/ΔX einer Intensität bezüglich jeder
Einheitsänderung der X-Koordinatenachse und eine Einheitsänderung ΔZ/ΔX der
Z-Koordinatenachse bezüglich jeder Einheitsänderung der X-Koordinatenachse
beruhend auf den Intensitäten und Z-Koordinaten der zwei Punkte zu erhalten;
und
einen Schattierungsabschnitt (16), um die Daten dreier Scheitelpunkte und die
Änderungen ΔI/ΔX und ΔZ/ΔX von dem Verarbeitungsabschnitt (15) zu
empfangen, wobei die Intensität und Z-Koordinate von jedem von auf einer Seite
des ausgewählten dreieckigen Polygons gelegenen Punkten als eine
Startintensität und -Z-Koordinate für eine entsprechende Zeile der Abtastzeilen beruhend
auf den Intensitäten und Z-Koordinaten zweier Scheitelpunkte, zwischen welchen
die eine Seite gelegen ist, sequentiell erhalten werden und die Intensität und Z-
Koordinate von jedem Punkt von Punkten, die innerhalb des ausgewählten
dreieckigen Polygons auf der entsprechenden Abtastzeile gelegen sind, beruhend auf
der entsprechenden Startintensität und -Z-Koordinate davon und die Änderungen
ΔI/ΔX und ΔZ/ΔX sequentiell erhalten werden; wobei die folgenden
Gleichungen die Änderungen ΔI/ΔX und ΔZ/ΔX repräsentieren:
(ΔI/ΔX)Y: konstant = {(Y1 - Y2)(I2 - I3) - (Y2 - Y3)(I1 - I2)}
/{(Y1 - Y2)(X2 - X3) - (Y2 - Y3)(X1 - X2)}
(ΔZ/ΔX)Y : konstant = {(Y1 - Y2)(Z2 - Z3) - (Y2 - Y3)(Z1 - Z2)}
/{(Y1 - Y2)(X2 - X3) - (Y2 - Y3)(X1 - X2)}
wobei X1, X2 und X3 in dieser Reihenfolge die X-Koordinaten dreier
Scheitelpunkte A, B und C von einem entsprechenden der Polygone sind; Y1, Y2 und
Y3 in dieser Reihenfolge die Y-Koordinaten von Scheitelpunkten A, B und C
sind; Z1, Z2 und Z3 in dieser Reihenfolge die Z-Koordinaten von
Scheitelpunkten A, B und C sind; und I1, I2 und I3 in dieser Reihenfolge die Intensitäten
von Scheitelpunkten A, B und C sind.
2. Eine Schattierungsschaltung nach Anspruch 1, dadurch gekennzeichnet, daß der
Vorverarbeitungsabschnitt Verarbeitungsmittel (12,14) einschließt, um den einen
der drei Scheitelpunkte des ausgewählten dreieckigen Polygons, der einen
dazwischenliegenden Y-Koordinatenwert bezüglich derjenigen der anderen
Scheitelpunkte aufweist, als den einen der zwei Punkte zu bestimmen, die Intensität
und Z-Koordinate des anderen der zwei Punkte beruhend auf dem
dazwischenliegenden Y-Koordinatenwert zu erhalten und die Änderungen ΔZ/ΔX beruhend
auf den Intensitäten und Z-Koordinaten der zwei Punkte zu erhalten.
3. Eine Schattierungsschaltung nach Anspruch 2, dadurch gekennzeichnet, daß das
Verarbeitungsmittel eine Dividierschaltung (14) einschließt, um die Differenz
zwischen den Intensitäten der zwei Punkte durch die Differenz zwischen den X-
Koordinaten der zwei Punkte zu dividieren, um die Änderung ΔI/ΔX
zu
erhalten, und die Differenz zwischen den Z-Koordinaten der zwei Punkte durch die
Differenz zwischen den X-Koordinaten der zwei Punkte zu dividieren, um die
Änderung ΔZ/ΔX zu erhalten.
4. Eine Schattierungsschaltung nach Anspruch 3, dadurch gekennzeichnet, daß der
Schattierungsabschnitt eine Seiten-DDA (41) einschließt, um die Intensität und
Z-Koordinate von jedem von auf einer Seite des ausgewählten dreieckigen
Polygons gelegenen Punkten, die dem Scheitelpunkt gegenüberliegt, der als einer der
zwei Punkte bestimmt wird, sequentiell zu erhalten.
5. Eine Schattierungsschaltung nach Anspruch 4, dadurch gekennzeichnet, daß der
Schattierungsabschnitt eine Abtast-DDA (43) einschließt, um eine Intensität und
eine Z-Koordinate zu empfangen und die Änderung ΔI/ΔX zu der empfangenen
Intensität und die Änderung ΔZ/ΔX zu der empfangenen Z-Koordinate
sequentiell hinzuzufügen bzw. zu addieren, um die Intensität und Z-Koordinate von
jedem der Punkte, die innerhalb des ausgewählten dreieckigen Polygons auf der
entsprechenden Abtastzeile gelegen sind, zu erhalten.
6. Eine Schattierungsschaltung nach Anspruch 1 oder 5, dadurch gekennzeichnet,
daß der Vorverarbeitungsabschnitt (15) und Schattierungsabschnitt (16)
zugeordnet sind, um in einer Pipeline-Weise zu arbeiten.
7. Ein Verfahren, um eine Vielzahl von Polygonen zu schattieren, die ein räumliches
Modell bilden, das auf, einem Schirm dargestellt werden soll, definiert durch X-,
Y- und Z-Koordinatenachsen, die jeweils zueinander orthogonal sind, mit:
einem Schritt, bei dem die Intensitäten der Scheitelpunkte, die in einem
ausgewählten Polygon der Polygone enthalten sind, interpoliert werden, um die
Intensität von jedem Punkt von Punkten zu bestimmen, die innerhalb des
ausgewählten Polygons auf Abtastzeilen parallel zu der X-Koordinatenachse gelegen
sind
dadurch gekennzeichnet, daß
die Vielzahl von Polygonen dreieckige Polygone sind; und
die Interpolationsschritt einschließt:
einen ersten Schritt, bei dem Daten dreier Scheitelpunkte bereitgestellt werden,
die jeweils die Intensität und X-, Y- und Z-Koordinaten eines entsprechenden
Scheitelpunktes der ausgewählten dreieckigen Polygone repräsentieren;
einen zweiten Schritt, bei dem eine Einheitsänderung ΔI/ΔX einer
Intensität bezüglich jeder Einheitsänderung der X-Koordinatenachse und eine
Einheitsänderung ΔZ/ΔX der Z-Koordinatenachse bezüglich jeder
Einheitsänderung der X-Koordinatenachse beruhend auf den Intensitäten und Z-
Koordinaten der Scheitelpunkte des ausgewählten dreieckigen Polygons erhalten
werden; und
einen dritten Schritt, bei dem die Intensitäten und die Z-Koordinate von jedem
Punkt von Punkten, die auf einer Seite des ausgewählten dreieckigen Polygons
gelegen sind, als eine Startintensität und -Z-Koordinate für eine entsprechende
Zeile der Abtastzeilen beruhend auf den Intensitäten und Z-Koordinaten zweier
Scheitelpunkte, zwischen welchen die eine Seite gelegen ist, sequentiell erhalten
werden und die Intensität und Z-Koordinate von jedem Punkt von Punkten, die
innerhalb des ausgewählten dreieckigen Polygons auf der entsprechenden
Abtastzeile gelegen sind, beruhend auf der entsprechenden Startintensität und -Z-
Koordinate davon und die Änderungen ΔI/ΔX und ΔZ/ΔX sequentiell erhalten
werden; wobei die folgenden Gleichungen die Änderungen ΔI/ΔX und ΔZ/ΔX
repräsentieren:
(ΔI/$X)Y: konstant = {(Y1 - Y2)(I2 - I3) (Y2 - Y3)(I1 - I2)}
/{(Y1 - Y2)(X2 - X3) - (Y2 - Y3)(X1 - X2)}
(ΔZ/ΔX)Y : konstant = {(Y1 - Y2)(Z2 - Z3) - (Y2 - Y3)(Z1 - Z2)}
/{(Y1 -Y2)(X2-X3) -(Y2-Y3)(X1 -X2)}
wobei X1, X2 und X3 in dieser Reihenfolge die X-Koordinaten dreier
Scheitelpunkte A, B und C von einem entsprechenden der Polygone sind; Y1, Y2 und
Y3 in dieser Reihenfolge die Y-Koordinaten von Scheitelpunkten A, B und C
sind; Z1, Z2 und Z3 in dieser Reihenfolge die Z-Koordinaten von
Scheitelpunkten A, B und C sind; und I1, I2 und I3 in dieser Reihenfolge die Intensitäten
von Scheitelpunkten A, B und C sind.
8. Ein Schattierungsverfahren nach Anspruch 7, dadurch gekennzeichnet, daß der
zweite Schritt einen Schritt einschließt, wobei die Gleichungen berechnet werden,
um die Änderungen ΔI/ΔX und ΔZ/ΔX zu erhalten.
9. Ein Schattierungsverfahren nach Anspruch 8, dadurch gekennzeichnet, daß der
Berechnungsschritt einen ersten Unterschritt, bei dem die Änderungen ΔI/ΔX
und ΔZ/ΔX erhalten werden, und einen zweiten Unterschritt, bei dem die
Änderung ΔX/ΔY einer X-Koordinate für jede Einheitsänderung in einer Y-
Koordinate bezüglich jedes Scheitelpunktes der Scheitelpunkte A, B und C
erhalten werden, und einen dritten Unterschritt einschließt, bei dem die Änderung
ΔI/ΔY einer Intensität für jede Einheitsänderung in einer Y-Koordinate und
die Änderung ΔZ/ΔY einer Z-Koordinate für jede Einheitsänderung in einer Y-
Koordinate bezüglich höchstens zweier Scheitelpunkte von Scheitelpunkten A, B
und C erhalten werden, wobei die ersten, zweiten und dritten Unterschritte unter
Verwendung einer Multipliziervorrichtung, ALU und Dividiervorrichtung, die in
einer Schaltung für eine geometrische Transformation enthalten sind, ausgeführt
werden.
10. Ein Schattierungsverfahren nach Anspruch 8, dadurch gekennzeichnet, daß der
Berechnungsschritt einen ersten Unterschritt, bei dem Zähler und Nenner von
jeder der zwei Gleichungen erhalten werden, wobei eine Multipliziervorrichtung' und
ALU verwendet werden, die in einer Schaltung für eine geometrische
Transformation enthalten sind, und einen zweiten Unterschritt, bei dem die Änderungen
ΔI/ΔX und ΔZ/ΔX beruhend auf den Zählern und Nennern der Gleichungen
erhalten werden, einen dritten Unterschritt, bei dem die Änderung ΔX/ΔY einer
X-Koordinate für jede Einheitsänderung in einer Y-Koordinate bezüglich jedes
Scheitelpunktes von Scheitelpunkten A, B und C erhalten werden, und einen
vierten Unterschritt einschließt, bei dem die Änderung ΔI/ΔY einer Intensität für
jede Einheitsänderung in einer Y-Koordinate und die Änderung ΔZ/ΔY einer Z-
Koordinate für jede Einheitsänderung in einer Y-Koordinate bezüglich höchstens
zweier Scheitelpunkte von Scheitelpunkten A, B und C erhalten werden, wobei
der zweite, dritte und vierte Unterschritt unter Verwendung einer
Dividiervorrichtung, die in einem Schattierungsabschnitt enthalten ist, ausgeführt werden.
11. Ein Schattierungsverfahren nach Anspruch 7, dadurch gekennzeichnet, daß der
zweite Schritt einen Schritt, bei dem die Intensität und Z-Koordinate von jedem
Punkt von zwei Punkten, bei welchen eine der Abtastzeilen das ausgewählte
dreieckige Polygon schneidet, beruhend auf den Intensitäten und Z-Koordinaten von
entsprechenden zwei Scheitelpunkten davon erhalten werden, und einen Schritt
einschließt, bei dem die Änderungen ΔI/ΔX und ΔZ/ΔX beruhend auf den
Intensitäten und Z-Koordinaten der zwei Punkte erhalten werden.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP61227980A JPH0812705B2 (ja) | 1986-09-29 | 1986-09-29 | 画像処理装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
DE3750803D1 DE3750803D1 (de) | 1995-01-12 |
DE3750803T2 true DE3750803T2 (de) | 1995-05-11 |
Family
ID=16869274
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE3750803T Expired - Lifetime DE3750803T2 (de) | 1986-09-29 | 1987-09-25 | Schattierungsschaltung zur Schattierung mehrerer Polygone, die ein Festkörpermodel einsetzen, und Schattierungsverfahren dafür. |
Country Status (4)
Country | Link |
---|---|
US (1) | US4862391A (de) |
EP (1) | EP0262619B1 (de) |
JP (1) | JPH0812705B2 (de) |
DE (1) | DE3750803T2 (de) |
Families Citing this family (32)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5046108A (en) * | 1987-10-31 | 1991-09-03 | Kabushiki Kaisha Toshiba | Imaging processing method and apparatus suitably used for obtaining shading image |
JP2618951B2 (ja) * | 1988-02-16 | 1997-06-11 | 株式会社東芝 | 三次元図形処理装置 |
US5128872A (en) * | 1988-12-20 | 1992-07-07 | Sun Microsystems, Inc. | Method and apparatus for determining line positions for display and manipulation by a computer system |
JPH0769733B2 (ja) * | 1989-01-26 | 1995-07-31 | オ−クマ株式会社 | 数値制御装置における塗潰し形状表示方式及びその装置 |
GB2228849B (en) * | 1989-03-03 | 1993-08-18 | Sun Microsystems Inc | Method and apparatus for optimized depth cueing using short vectors |
US5067098A (en) * | 1989-03-31 | 1991-11-19 | The Ohio State University Research Foundation | Slope-aspect color shading for parametric surfaces |
US5060172A (en) * | 1989-07-06 | 1991-10-22 | Digital Equipment Corporation | Method and apparatus for displaying smooth-shaded objects |
JPH0357087A (ja) * | 1989-07-25 | 1991-03-12 | Seiko Instr Inc | 多角形ぬりつぶし装置 |
CA2026527A1 (en) * | 1989-10-11 | 1991-04-12 | Douglas A. Fischer | Parallel polygon/pixel rendering engine |
KR100232931B1 (ko) * | 1989-12-21 | 1999-12-01 | 이데이 노부유끼 | 컴퓨터 그래픽용 쉐이딩 방법 및 시스템 |
US5138699A (en) * | 1990-02-13 | 1992-08-11 | International Business Machines Corporation | Hardware utilization of color interpolation capability in a color imaging system |
JPH0683969A (ja) * | 1990-11-15 | 1994-03-25 | Internatl Business Mach Corp <Ibm> | グラフィックス・プロセッサ及びグラフィックス・データ処理方法 |
JP2725915B2 (ja) * | 1990-11-15 | 1998-03-11 | インターナショナル・ビジネス・マシーンズ・コーポレイション | 三角形描画装置及び方法 |
US5420972A (en) * | 1990-11-15 | 1995-05-30 | International Business Machines Corporation | Method and apparatus for rendering lines |
US5343558A (en) * | 1991-02-19 | 1994-08-30 | Silicon Graphics, Inc. | Method for scan converting shaded triangular polygons |
CA2060975C (en) * | 1991-02-25 | 1998-11-10 | Gopalan Ramanujam | Scientific visualization system |
TW225595B (de) * | 1991-09-03 | 1994-06-21 | Gen Electric | |
JP2682559B2 (ja) * | 1992-09-30 | 1997-11-26 | インターナショナル・ビジネス・マシーンズ・コーポレイション | 物体の画像をディスプレイ装置上に表示する装置及び方法並びにコンピュータ・グラフィックス表示システム |
JPH06274653A (ja) * | 1993-03-18 | 1994-09-30 | Fujitsu Ltd | グラフィック表示装置 |
IL109462A0 (en) * | 1993-04-30 | 1994-07-31 | Scitex Corp Ltd | Method for generating artificial shadow |
US5974189A (en) * | 1993-05-24 | 1999-10-26 | Eastman Kodak Company | Method and apparatus for modifying electronic image data |
US5479606A (en) * | 1993-07-21 | 1995-12-26 | Pgm Systems, Inc. | Data display apparatus for displaying patterns using samples of signal data |
JPH07182537A (ja) * | 1993-12-21 | 1995-07-21 | Toshiba Corp | 図形描画装置および図形描画方法 |
US5488428A (en) * | 1994-10-06 | 1996-01-30 | Matsushita Electric Industrial Co., Ltd. | Video special effect generating apparatus |
US5739819A (en) * | 1996-02-05 | 1998-04-14 | Scitex Corporation Ltd. | Method and apparatus for generating an artificial shadow in a two dimensional color image |
JP2001084405A (ja) * | 1999-09-16 | 2001-03-30 | Sega Corp | ポリゴン画像形成方法及び、これを用いた画像処理装置 |
US7716024B2 (en) | 2002-04-29 | 2010-05-11 | Geodigm Corporation | Method and apparatus for electronically generating a color dental occlusion map within electronic model images |
US20030220778A1 (en) * | 2002-04-29 | 2003-11-27 | Hultgren Bruce Willard | Method and apparatus for electronically simulating jaw function within electronic model images |
JP3507057B2 (ja) | 2002-06-03 | 2004-03-15 | 三菱電機株式会社 | 三角形ポリゴン描画装置および三角形ポリゴン描画方法 |
US7824346B2 (en) * | 2004-03-11 | 2010-11-02 | Geodigm Corporation | Determining condyle displacement utilizing electronic models of dental impressions having a common coordinate system |
US7702492B2 (en) | 2004-03-11 | 2010-04-20 | Geodigm Corporation | System and method for generating an electronic model for a dental impression having a common coordinate system |
WO2010084019A1 (de) * | 2009-01-23 | 2010-07-29 | Rodenstock Gmbh | Designsteuerung mittels eines designvielecks |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS51120626A (en) * | 1975-04-16 | 1976-10-22 | Nippon Telegr & Teleph Corp <Ntt> | Shade and light figure generator |
US3996673A (en) * | 1975-05-29 | 1976-12-14 | Mcdonnell Douglas Corporation | Image generating means |
US4163257A (en) * | 1977-12-27 | 1979-07-31 | Rockwell International Corporation | Spatial toner for image reconstitution |
GB2051525A (en) * | 1979-06-15 | 1981-01-14 | Redifon Simulation Ltd | C.G.I.-Surface textures |
US4278996A (en) * | 1980-04-11 | 1981-07-14 | Bell Telephone Laboratories, Incorporated | Technique for encoding pictorial information |
US4396903A (en) * | 1981-05-29 | 1983-08-02 | Westinghouse Electric Corp. | Electro-optical system for correlating and integrating image data from frame-to-frame |
US4586038A (en) * | 1983-12-12 | 1986-04-29 | General Electric Company | True-perspective texture/shading processor |
JPS60246481A (ja) * | 1984-05-21 | 1985-12-06 | Yokogawa Hokushin Electric Corp | 図形表示装置 |
US4727364A (en) * | 1984-09-19 | 1988-02-23 | Mcdonnell Douglas Corporation | Method and apparatus for intensity shading in a visual display |
-
1986
- 1986-09-29 JP JP61227980A patent/JPH0812705B2/ja not_active Expired - Lifetime
-
1987
- 1987-09-25 EP EP87114063A patent/EP0262619B1/de not_active Expired - Lifetime
- 1987-09-25 DE DE3750803T patent/DE3750803T2/de not_active Expired - Lifetime
- 1987-09-28 US US07/101,980 patent/US4862391A/en not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
DE3750803D1 (de) | 1995-01-12 |
US4862391A (en) | 1989-08-29 |
EP0262619B1 (de) | 1994-11-30 |
JPH0812705B2 (ja) | 1996-02-07 |
EP0262619A3 (en) | 1990-11-28 |
JPS6383884A (ja) | 1988-04-14 |
EP0262619A2 (de) | 1988-04-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE3750803T2 (de) | Schattierungsschaltung zur Schattierung mehrerer Polygone, die ein Festkörpermodel einsetzen, und Schattierungsverfahren dafür. | |
DE3689654T2 (de) | Rechnergraphik, prozessor für parallele subdivision. | |
DE3750784T2 (de) | Generation eines intrapolierten charakteristischen Wertes zur Anzeige. | |
DE3854543T2 (de) | Prioritätsverwaltung eines Tiefendatenpuffers für Echtzeitrechnersysteme zur Bilderzeugung. | |
DE3853393T2 (de) | Verfahren und Vorrichtung zur zweidimensionalen Bilderstellung. | |
DE3688665T2 (de) | Verarbeitungsgerät zur Beseitigung von verborgenen Seiten für dreidimensionale Bilderzeugung. | |
DE69122557T2 (de) | Bilderzeugung | |
DE19709220B4 (de) | System und Verfahren für eine beschleunigte Verdeckungsauslese | |
DE3689820T2 (de) | Verfahren und Gerät zur Simulierung von durch partielle differentiale Gleichungen beschriebenen Systemen. | |
DE3853336T2 (de) | Rechnergraphikgerät zur Verarbeitung von Beleuchtungsmodellinformation. | |
DE69908966T2 (de) | Schattierung von 3-dimensionalen rechner-erzeugten bildern | |
DE60217122T2 (de) | Drei-dimensionales graphisches system | |
DE19782086B4 (de) | Multiplizierer zur Durchführung von 3D-Graphik-Interpolationen | |
DE69914355T2 (de) | Bildverarbeitungsgerät | |
DE68923191T2 (de) | Dreidimensionales graphisches Verarbeitungsgerät. | |
DE60012917T2 (de) | Verfahren und vorrichtung für eine antialiasing-operation auf impliziten kanten | |
DE3854223T2 (de) | Erzeugung und Anzeige von Rechnergraphiken. | |
DE69029987T2 (de) | Verfahren und Gerät zur parallelen Wiedergabe von Polygonen und Pixeln | |
DE69926986T2 (de) | Rechnergrafiken-animationsverfahren und vorrichtung | |
DE3706509A1 (de) | Elektronische geometrieprozessorschaltung fuer ein graphikanzeigesystem | |
DE19827726A1 (de) | Verfahren und Vorrichtung zum Liefern von Polygonpixelunterabtastinformationen unter Verwendung einer Inkrementaleinrichtung | |
DE102005050846A1 (de) | Perspektiveneditierwerkzeuge für 2-D Bilder | |
DE19924077A1 (de) | Bildregistrierungs-Verfahren, Bildregistrierungs-Vorrichtung und Aufzeichnungsmedium | |
DE102012210521A1 (de) | Unbeschnittene Zeit- und Linsen-Begrenzungen für verbesserte Probentest- Effizienz bei Bild-Rendering | |
DE19620263B4 (de) | Datensynchronisation zwischen einer Mehrzahl von asynchronen Datenaufbereitungen |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8364 | No opposition during term of opposition | ||
8320 | Willingness to grant licences declared (paragraph 23) |