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
Application number
DE3750803T
Other languages
English (en)
Other versions
DE3750803D1 (de
Inventor
Masahide Ohhashi
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Toshiba Corp
Original Assignee
Toshiba Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Toshiba Corp filed Critical Toshiba Corp
Publication of DE3750803D1 publication Critical patent/DE3750803D1/de
Application granted granted Critical
Publication of DE3750803T2 publication Critical patent/DE3750803T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/50Lighting effects
    • G06T15/80Shading
    • G06T15/87Gouraud 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.
DE3750803T 1986-09-29 1987-09-25 Schattierungsschaltung zur Schattierung mehrerer Polygone, die ein Festkörpermodel einsetzen, und Schattierungsverfahren dafür. Expired - Lifetime DE3750803T2 (de)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

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)