DE3854073T2 - Verfahren und Gerät zur Wegnahme von verborgenen Flächen. - Google Patents
Verfahren und Gerät zur Wegnahme von verborgenen Flächen.Info
- Publication number
- DE3854073T2 DE3854073T2 DE3854073T DE3854073T DE3854073T2 DE 3854073 T2 DE3854073 T2 DE 3854073T2 DE 3854073 T DE3854073 T DE 3854073T DE 3854073 T DE3854073 T DE 3854073T DE 3854073 T2 DE3854073 T2 DE 3854073T2
- Authority
- DE
- Germany
- Prior art keywords
- value
- raster point
- point
- depth value
- raster
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—Three-dimensional [3D] image rendering
- G06T15/10—Geometric effects
- G06T15/40—Hidden part removal
- G06T15/405—Hidden part removal using Z-buffer
Landscapes
- Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Geometry (AREA)
- Computer Graphics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Image Generation (AREA)
- Portable Nailing Machines And Staplers (AREA)
- Storage Device Security (AREA)
Description
- Diese Erfindung betrifft ein Verfahren und eine Vorrichtung zur Wegnahme von verborgenen Flächen auf einer Anzeige.
- Bei einem Computergraphiksystem wird ein Bild auf dem Bildschirm einer Kathodenstrahlröhre (CRT) oder eines anderen Anzeigegeräts angezeigt. Im allgemeinen wird der Elektronenstrahl der Kathodenstrahlröhre unter Steuerung eines digitalen Signals mit einer X- (d.h. horizontalen) und einer Y- (d.h. vertikalen) Komponente abgelenkt, so daß Bildelemente auf einem rechteckigen, aus Rasterpunkten bestehenden Feld Reihe für Reihe gemäß einem Rastermuster adressiert werden. Daten, die das Bild darstellen, werden in einem Host-Rechner erzeugt und vom Host-Rechner in einen Bildspeicher geladen. Der Bildspeicher hat Speicherplätze, die den Rasterpunkten der Kathodenstrahlanzeige im Verhältnis 1:1 entsprechen. In der nachfolgenden Beschreibung wird der Klarheit halber davon ausgegangen, daß die Speicherplätze des Bildspeichers physikalisch in einem rechteckigen Feld angeordnet sind, das mit dem Feld der Rasterpunkte der Anzeige korrespondiert.
- Das digitale Signal, das zur Steuerung der Ablenkung des Elektronenstrahls der Kathodenstrahlröhre eingesetzt wird, wird auch zur Steuerung der Adressierung des Bildspeichers verwendet, und die Farbe, mit der das Bildelement an einem Rasterpunkt angezeigt wird, ist vom Inhalt des entsprechenden Speicherplatzes abhängig. Der Bildspeicher enthält somit ein virtuelles Bild der Anzeige, die von der Kathodenstrahlröhre erstellt wird. Die vom Host-Rechner an den Bildspeicher gelegten Daten können ein Bild darstellen, das aus farbigen Bereichen zusammengesetzt ist. Der Vorgang des Ladens von Datenwerten in den Bildspeicher, um einen farbigen Bereich darzustellen, wird als "Belegung" (auch "Tiling") bezeichnet. In der folgenden Beschreibung ist im Zusammenhang mit einem Belegungs-Vorgang die Belegung von spezifisch festgelegten Rasterpunkten und die Belegung von Dreiecken erwähnt. Dies ist jedoch nur als verkürzte Art der Erwähnung der Belegung der Speicherplätze gedacht, die mit den spezifizierten Rasterpunkten korrespondieren und der Belegung der Speicherplätze, die mit den Rasterpunkten korrespondieren, die innerhalb der Dreiecke liegen.
- Eine dreieckige Fläche im dreidimensionalen Raum läßt sich durch eine Ebenengleichung Z = AX + BY + C und die Koordinaten ihrer drei Ecken definieren. Ein Computergraphiksystem kann zur Darstellung eines dreidimensionalen Objekts mit dreieckigen Flächen verwendet werden, wobei diese Flächen in eine zweidimensionale Anzeigeebene (Z=0) projiziert werden. Jede dreieckige Fläche bildet bei ihrer Projektion in die Anzeigeebene ein Dreieck oder eine Linie. Der Fall, bei dem die Projektion eine Linie ergibt, wird im vorliegenden Text nicht weiter angesprochen. Information, die die dreieckigen Flächen im dreidimensionalen Raum definiert, wird einem Host-Rechner vorgegeben, der diese Information dazu verwendet, Information zur Definition der entsprechenden Dreiecke der Anzeigeebene zu erzeugen. Diese Information wird vom Host-Rechner einer Wiedergabeeinheit bereitgestellt, die zum Laden von Werten der Intensität der Schattierung in den Bildspeicher verwendet wird. Im allgemeinen werden die dreieckigen Flächen sequentiell vom Host-Rechner verarbeitet. Um eine genaue Darstellung zu erhalten, muß der Tatsache Rechnung getragen werden, daß bei Betrachtung eines dreidimensionalen Objekts die vom Betrachter entfernten Flächen des Objekts nicht sichtbar sind, und daher Daten, die diese Flächen darstellen, nicht in den Bildspeicher geladen werden sollten. Bei einem Graphiksystem wird dies durch Wegnahme verborgener Flächen erreicht. Bevor ein Intensitätswert I für einen Punkt einer dreieckigen Fläche (die mit einem Rasterpunkt in der Anzeigeebene korrespondiert) in den Bildspeicher geladen wird, wird ein Z-Wert (Zneu), der die Entfernung dieses Punktes von der Anzeigeebene darstellt, berechnet und mit einem bereits in einem getrennten Speicher (dem Z-Pufferspeicher) für diesen Punkt vorliegenden Z-Wert (Z-alt) verglichen. In den Z-Pufferspeicher wird anfangs ein Z-Wert für jeden Rasterpunkt geladen, der die größte Entfernung von der Anzeigeebene innerhalb des Bereiches von Entfernungswerten darstellt, die im Z-Pufferspeicher gespeichert werden können. Wenn Zneu eine kleinere Entfernung als Zalt darstellt, wird der Intensitätswert in den entsprechenden Speicherplatz des Bildspeichers übertragen, wobei jeder vorher an diesem Platz gespeicherte Intensitätswert überschrieben wird, und Zneu wird an den entsprechenden Platz des Z-Pufferspeichers geschrieben, wodurch Zalt überschrieben wird. Ansonsten bleibt der Wert Zalt im Z-Pufferspeicher und der im Bildspeicher gespeicherte Intensitätswert bleibt unverändert. Die Wegnahme verborgener Flächen ist in der Veröffentlichung "Principles of Interactive Computer Graphics" (McGraw-Mill Book Company, 1979), zweite Ausgabe, 369, von Newman und Sproull erläutert.
- Die Wiedergabeeinheit eines bereits bekannten dreidimensionalen Graphiksystems empfängt Daten, die die Koordinaten (X,Y) eines jeden Eckpunktes eines Dreiecks darstellen, das durch Projektion einer dreieckigen Fläche in die Z=0-Ebene erhalten wird, sowie Funktionen, die Z und I mit Werten von X und Y in Beziehung bringen. Die Wiedergabeeinheit erzeugt Koordinaten der Rasterpunkte innerhalb des Dreiecks und Werte von Z und I für jeden Rasterpunkt. Die Wiedergabeeinheit kommuniziert sowohl mit dem Bildspeicher als auch mit dem Z-Pufferspeicher. In einem ersten Betriebszyklus berechnet die Wiedergabeeinheit die Koordinaten eines Rasterpunktes und bei einem zweiten Betriebszyklus berechnet sie Zneu für diesen Rasterpunkt. Im dritten Zyklus wird Zalt für den entsprechenden Speicherplatz aus dem Z-Pufferspeicher ausgelesen und im vierten Zyklus erfolgt ein Vergleich von Zalt mit Zneu. Wenn Zneu eine kleinere Entfernung als Zalt darstellt, wird Zneu im fünften Zyklus in den Z-Pufferspeicher eingeschrieben. Im sechsten Zyklus wird der Wert von I für denselben Rasterpunkt berechnet, und im siebten Zyklus wird der berechnete Wert I in den entsprechenden Speicherplatz des Bildspeichers eingeschrieben. Wenn Zneu eine größere Entfernung als Zalt darstellt, ruht die Wiedergabeeinheit im fünften, sechsten und siebten Zyklus. Dementsprechend müssen für jeden Rasterpunkt sieben Betriebszyklen durchgeführt werden.
- In der U.S.-Patentschrift Nr. 4,475,104 (Erteilungsdatum: 2. Oktober 1984) ist ein dreidimensionales Graphiksystem beschrieben, in dem ein Anzeigeprozessor zur Durchführung der Wegnahme verborgener Flächen eingesetzt wird.
- In der GB-A-2 187 368 ist ein Anzeigeprozessor zur Verarbeitung von Polygon- und Vektor-Daten in einem Computergraphiksystem beschrieben. Im Polygon-Modus wählt der Prozessor ein in einem Polygon in der Anzeige enthaltenes zu aktivierendes Bildelement aus und definiert die Farbe, Intensität und Tiefe (Sichtbarkeit) des Bildelementes durch parallele Berechnungen. Ein Bildpunkt wird nur dann wiedergegeben, wenn das aktuelle Polygon näher am Betrachter liegt als ein vorher bearbeitetes Polygon. Auf diese Weise werden verborgene Flächen von Polygonen nicht angezeigt. Die Verarbeitung eines Bildelements ist abgeschlossen, ehe die Verarbeitung des nächsten Bildelements beginnt.
- Die vorliegende Erfindung ist durch die Ansprüche definiert. Die technische Wirkung der Erfindung ist eine Form des sogenannten Pipelining, bei dem Operationen zur Verarbeitung unterschiedlicher Rasterpunkte parallel durchgeführt werden.
- Eine Ausführungsform der Erfindung wird nunmehr beispielhaft unter Bezugnahme auf die beigefügten Zeichnungen beschrieben, von denen:
- Fig. 1 ein Blockschaltbild eines Computergraphiksystems darstellt;
- Fig. 2 ein rechteckiges Feld von Rasterpunkten und ein Dreieck, dessen Eckpunkte auf Rasterpunkten liegen, darstellt;
- Fig. 3 ein detaillierteres Blockschaltbild eines Teils des in Fig. 1 gezeigten Computergraphiksystems; und
- Fig. 4 ein detaillierteres Blockschaltbild eines anderen Teils des in Fig. 1 gezeigten Computergraphiksystems.
- Das in Fig. 1 dargestellte Computergraphiksystem enthält einen Prozessor 1, der eine Anzeigeliste empfängt und Information erzeugt, die Dreiecke darstellt, sowie diese Dreiecke definierende Information sequentiell an einen XY-Adressen-Generator 2 legt. Der XY-Adressen-Generator 2 ermöglicht die "Belegung" eines Dreiecks, dessen Eckpunkte an Rasterpunkten eines rechteckigen Rasters liegen, wobei das Dreieck zwei gegenüberliegende Seitenabschnitte hat, die zwischen einem minimalen Ordinatenwert Ymin und einem maximalen Ordinatenwert Ymax verlaufen. Ein derartiges Dreieck mit den Seitenabschnitten AB und ACB ist in Fig. 2 gezeigt. Im Fall des in Fig. 2 gezeigten Dreiecks ist der Wert von Ymin willkürlich als Null angegeben.
- Die Rasterpunkte im Inneren des Dreiecks sollen Reihe für Reihe "belegt" werden, von unten nach oben. Eine Reihe kann entweder von links nach rechts oder von rechts nach links "belegt" werden. Einer der Seitenabschnitte wird als "Haupt"-Seitenabschnitt ausgewählt. Während der "Belegung" des Dreiecks wird vom Haupt-Seitenabschnitt zum gegenüberliegenden "untergeordneten" Seitenabschnitt vorgegangen. Im allgemeinen wird als Haupt-Seitenabschnitt derjenige Seitenabschnitt ausgewählt, der weniger Ränder hat. Im Fall von Fig. 2 wird daher der Seitenabschnitt AB als Haupt-Seitenabschnitt ausgewählt. Wenn beide Seitenabschnitte eine gleiche Anzahl von Rändern haben, d.h. wenn ein Rand des Dreiecks horizontal verläuft, so daß er entlang der Rasterreihe Ymax oder Ymin verläuft, wird als Haupt-Seitenabschnitt der linke Seitenabschnitt ausgewählt.
- Das Graphiksystem enthält des weiteren einen Z-Generator 4, einen I-Generator 6, einen Z-Pufferspeicher 7, einen Z-Komparator 8 und einen Bildspeicher 9. Der Z-Pufferspeicher 7 und der Bildspeicher 9 enthalten je einen Speicher 70 bzw. 90 mit einem rechteckigen Feld von Speicherplätzen, einen X-Adressen- Zähler 72 bzw. 92, einen Y-Adressen-Zähler 74 bzw. 94 und ein Ein-Bit-Speicherelement 76 bzw. 96. Der Speicher 70 umfaßt fünf Speicherbereiche, die nicht separat dargestellt sind, und dementsprechend entspricht jeder Speicherzyklus, während dem eine Lese-Operation und gegebenenfalls eine Schreib-Operation durchgeführt werden, in seiner Dauer fünf Taktzyklen. Die Blöcke 2, 4, 6, 7, 8 und 9 kommunizieren über einen lokalen Anzeigebus miteinander. Um die Darstellung des Graphiksystems in Fig. 1 zu vereinfachen, ist der lokale Anzeigebus nicht dargestellt; stattdessen sind separate Verbindungen zwischen den verschiedenen Blöcken in Fig. 1 gezeigt.
- Der lokale Anzeigebus ist ein im Multiplexbetrieb arbeitender Adreß-/Datenbus mit 32 Bit. Während eines Adreßzyklus geben die oberen vier Bits (31-28) den Block an, der den nächsten Datenzyklus erhalten soll, das nächste Bit (27) ist ein Bit für die Verzögerung, die Bits 26-24 bestimmen den Oktanten, in dem sich der aktuelle Vektor befindet und geben somit grob die Richtung des aktuellen Vektors an, die Bits 23-12 sind eine Y- Adresse und die Bits 11-0 sind eine X-Adresse. Bei einer Belegungs-Operation sind nur zwei Richtungen möglich, und die Bits 25 und 24 werden nicht verändert, wenn sich die Richtung der Belegung ändert. Daher bestimmt das Bit 26, ob die Belegung von rechts nach links (Bit 26 gesetzt) oder von links nach rechts (Bit 26 nicht gesetzt) erfolgen soll. Ob die Information auf dem Bus als Adresse oder als Daten interpretiert wird, hängt vom Zustand von Steuerleitungen ab.
- Für jede Rasterreihe eines zu belegenden Dreiecks erzeugt der XY-Adressen-Generator 2 Adreßwörter, die die Koordinaten (X, Y) eines Rasterpunktes auf dieser Reihe des Dreiecks darstellen. Diese Adressen werden an den Z-Pufferspeicher 7 und den Bildspeicher 9 gelegt und in den X-Adressen-Zählern 72, 92 und den Y-Adressen-Zählern 74, 94 gespeichert. Die Speicherelemente 76, 96 empfangen das Richtungsbit (Bit 26).
- Zur Belegung eines Dreiecks werden der XY-Adressen-Generator 2 und die Z- und I-Generatoren 4 und 6 zunächst in einen Initialisierungszustand versetzt und dann in einen Betriebszustand, in dem der Betrieb unter Steuerung einer Zustandsmaschine 12 (die in Fig. 3, aber nicht in Fig. 1 dargestellt ist) erfolgt, die in aufeinanderfolgenden, von einem Taktgeber 14 definierten Taktzyklen sequentiell durch vorbestimmte Zustände schaltet.
- Der XY-Adressen-Generator ist detaillierter in Fig. 3 dargestellt. Der XY-Adressen-Generator 2 enthält elf Register 202- 222, drei Zähler 224-228, einen konstanten Wert (Eins) 230, ein Ein-Bit-Speicherelement 232, einen Addierer 234 und einen Subtrahierer 236. Die Zähler 224-228 und die Register 202-222 werden mit Werten initialisiert, die vom Bildprozessor 1 über einen Multiplexer 240 angelegt werden.
- Um den XY-Adressen-Generator zu initialisieren, berechnet der Bildprozessor 1 die Koordinaten der Eckpunkte A, B und C des Dreiecks und bestimmt, welche Eckpunkte die minimalen und maximalen Y-Koordinatenwerte Ymin und Ymax haben, und welcher Seitenabschnitt des Dreiecks der Haupt-Seitenabschnitt sein soll. Der Bildprozessor berechnet auch das Vektorprodukt der zwei Ränder, die von Rasterreihe Ymin nach oben verlaufen, und wenn aus diesem Vektorprodukt hervorgeht, daß der Haupt-Seitenabschnitt rechts vom untergeordneten Seitenabschnitt ist, überträgt der Bildprozessor eine logische 1 in das Speicherelement 232.
- Die X-Koordinaten der Punkte A und B werden subtrahiert, wodurch sich ein Wert DXM ergibt, und die Y-Koordinaten der Punkt A und B werden subtrahiert, wodurch sich ein Wert DYN ergibt. Auf ähnliche Weise werden aus den X- und Y-Koordinaten der Punkte A und C Werte von DYM und DYm berechnet. Der Bildprozessor lädt die Werte DXm und DYm in die Zähler 224 und 226. Die Werte vom (DX/DY) für die Haupt- und nebengeordneten Ränder AB und AC werden berechnet und die Werte der Abrundung (DX/DY) für die Haupt- und nebengeordneten Ränder werden berechnet. (Der auf eine Zahl angewandte Abrundungsoperator gibt die größte ganze Zahl wieder, die die Zahl nicht überschreitet. Daher ist die Abrundung von 1,2 = 1, die Abrundung von 2.0 = 2 und die Abrundung von -1.2 = -2.) Die sich ergebenden Werte sM und sm werden in die Register 202 und 204 geladen. Die Register 206 und 208 empfangen die X-Koordinaten XM&sub0; und Xm&sub0; der Rasterpunkte, an denen die Haupt- und nebengeordneten Ränder die unterste Rasterreihe Ymin schneiden. Im Fall des in Fig. 2 dargestellten Dreiecks sind die Werte von XM&sub0; und Xm&sub0; jeweils die X-Koordinate des Punktes A. Es ist jedoch nicht erforderlich, daß sich der Haupt- und der nebengeordnete Seitenabschnitt an einem Eckpunkt an entweder der untersten Rasterreihe oder der obersten Rasterreihe treffen. Die Register 202, 204, 206 und 208 und die Konstante 230 sind über einen Multiplexer 242 an einen Subtrahierer 236 angeschlossen. Das Ausgangssignal des Subtrahierers 236 wird an einen Multiplexer 244 angelegt, dessen Ausgangssignale an die Register 206 und 208 und an den Zähler 228 angelegt werden.
- Die Werte von s, DX und DY für den Haupt- und den nebengeordneten Rand AB bzw. AC werden weiterhin vom Bildprozessor verwendet, um Werte von AErr&sub0;, PInc und NInc zu berechnen, so daß
- PInc = AErr&sub0; = DX - sDY - DY
- NInc = DX - sDY
- Diese Werte werden in die Register 210-220 geladen. In das Register 222 wird Ymin geladen (Null im Fall von Fig. 2). Die Register 210, 212 und 222 sind über einen Multiplexer 246 mit einem Eingang des Addierers 234 verbunden, während die Register 214-220 über einen Multiplexer 248 an den zweiten Eingang des Addierers 234 angeschlossen sind. Das Ausgangssignal vom Addierer 234 wird an einen Multiplexer 250 gelegt, dessen Ausgangssignale an die Register 210, 212 und 222 angeschlossen sind.
- Wenn der XY-Adressen-Generator auf diese Weise initialisiert wurde, versetzt die Zustandsmaschine den XY-Adressen-Generator in seinen Betriebszustand, in dem er abwechselnd eine Berechnungs-Routine und eine Herunterzähl-Routine ausführt. Zu Beginn der Berechnungs-Routine überprüft die Zustandsmaschine die Vorzeichenbits für AErrMi und AErrmi, wobei i eine ganze Zahl größer oder gleich Null ist und die Nummer der Rasterreihe darstellt. Während eines ersten Taktzyklusses der Berechnungs-Routine addiert der Subtrahierer 236 sM oder sM+1, in Abhängigkeit davon, ob AErrMi < 0 oder AErrMi > = 0, zum Inhalt des Registers 206, was den Wert von XMi+1 ergibt, wobei XMi+1 die Abrundung der genauen Schnittstelle des Hauptrandes mit der (i+1)ten Rasterreihe ist. Gleichzeitig addiert der Addierer 234 PIncM oder NIncM, in Abhängigkeit davon, ob AErrMi < 0 oder AErrMi > = 0, zum Inhalt des Registers 210, was den Wert von AErrMi+1 ergibt. Die Zählung DYM im Zähler 224 wird erniedrigt. Während des zweiten Taktzyklusses werden die entsprechenden Operationen unter Verwendung von AErrmi, sm, PIncm und NIncm durchgeführt, was die Werte von Xmi+1 und AErrmi+1 ergibt, und die Zählung DYM wird erniedrigt. Während des dritten Taktzyklusses wird der im Register 222 gespeicherte Wert vom Addierer 234 erhöht, was den Wert i+1 ergibt, und gleichzeitig wird XMi+1 vom Subtrahierer 236 von Xmi+1 subtrahiert, und die Differenz Hrzi+1 wird in den Zähler 228 geladen. Der Wert Hrzi+1 ist entweder die Anzahl von Rasterpunkten zwischen dem Hauptrand und dem nebengeordneten Rand der (i+1)ten Reihe von Rasterpunkten, oder das Komplement dieser Zahl, in Abhängigkeit davon, ob XMi+1 kleiner oder größer als Xmi+1 ist. Die in den Registern 206 und 222 gespeicherten Werte werden in die Zwischenspeicher 252 und 254 geladen. Die Berechnungs-Routine ist dann beendet und der XY-Adressen-Generator 2 gibt einen Adreßzyklus an den Z-Pufferspeicher 7 und den Bildspeicher 9 aus. In diesem Adreßzyklus werden die Werte in den Zwischenspeichern 252 und 254, die die Koordinaten (XMi+1, i+1) der Abrundung der genauen Schnittstelle des Seitenabschnittes AB mit der (i+1)ten Rasterreihe darstellen, als Bits 0-11 und 12-23 an den lokalen Anzeigebus gelegt, wobei der Inhalt des Speicherelementes 232 den Zustand von Bit 27 (dem Bit der Verzögerung) bestimmt, und der Zustand des Vorzeichen-Bits des Zählers 228 den Zustand des Bits 26 (dem Richtungs-Bit) bestimmt. Die Zustandsmaschine veranlaßt dann den XY-Adressen-Generator, die Herunterzähl-Routine durchzuführen.
- Während der Herunterzähl-Routine wird die im Zähler 228 gespeicherte Zählung bei jedem Taktzyklus erhöht oder erniedrigt, und der XY-Adressen-Generator gibt jedesmal dann einen Datenzyklus aus, wenn die Zählung erhöht oder erniedrigt wurde. Der während eines Datenzyklusses an den lokalen Anzeigebus übertragene Datenwert wird vom I-Generator bestimmt.
- Der Z-Pufferspeicher 7 und der Bildspeicher 9 interpretieren einen Adreßzyklus als Hinweis darauf, daß der Beginn der Belegung einer neuen Reihe unmittelbar bevorsteht, und die Werte XMi+1 und i+1 in die X-Adressen-Zähler 72, 92 und die Y-Adressen-Zähler 74, 94 geladen werden. Der Wert von Bit 27, der den Zustand des Speicherelementes 232 wiedergibt, wird an die Zustandsmaschine übertragen. Das Bit 26 wird in die Speicherelemente 76, 96 geladen. Wenn Bit 26 gesetzt ist, deutet dies darauf hin, daß die Belegung von rechts nach links erfolgt (XMi+1 größer als Xmi+1) und die Zähler 72 und 92 werden bei jedem Datenzyklus erniedrigt; anderenfalls werden sie bei jeden Datenzyklus erhöht. Der Wert des Verzögerungsbits (Bit 27) bestimmt, ob die Zähler 72 und 92 erniedrigt (erhöht) werden, bevor der während des ersten Datenzyklusses empfangene Datenwert in den Speicher 70 oder 90 geschrieben wird. Wenn Bit 27 nicht gesetzt ist, wenn ein Datenzyklus vom Z-Pufferspeicher 7 oder dem Bildspeicher 9 empfangen wird, wird der im X-Adressen-Register 72 oder 92 gespeicherte Wert erhöht (erniedrigt) und der bei diesem Datenzyklus empfangene Datenwert wird an den Platz übertragen, der von der neuen Adresse festgelegt wird; anderenfalls, wenn der erste Datenzyklus vom Z-Pufferspeicher oder dem Bildspeicher empfangen wird, bleibt der im X-Adressen-Zähler 72 oder 92 gespeicherte Wert unverändert und der Datenwert wird in den von der ursprünglichen Adresse festgelegten Platz geschrieben; und beim nächsten und jedem folgenden Datenzyklus wird die X-Adresse erhöht (erniedrigt) und der Datenwert in den von der neuen Adresse festgelegten Platz geschrieben. Im Fall des in Fig. 2 dargestellten Dreiecks ist Bit 27 nicht gesetzt, die Zahl Hrzi+1 stellt die Anzahl der in Reihe i+1 zu belegenden Rasterpunkte dar, und die Belegung soll von links nach rechts erfolgen. Bei jedem Taktzyklus wird die im Zähler 228 gespeicherte Zählung erniedrigt.
- Wenn Bit 27 gesetzt worden wäre, was darauf hingedeutet hätte, daß XMi+1 rechts von Xmi+1 liegt, wäre die Zahl Hrzi+1 das Zweierkomplement der Anzahl von zu belegenden Rasterpunkten und die Belegung würde von rechts nach links erfolgen. Bei jedem Taktzyklus wird die in Zähler 228 gespeicherte Zählung erhöht.
- Wenn der Zähler 228 beim Herunterzählen einen negativen Übertrag oder beim Hochzählen einen Übertrag für die nächsthöhere Stelle anzeigt, ist der in den Zähler 72 und 92 gespeicherte Wert gleich Xmi+1. Wenn die im Zähler 228 gespeicherte Zählung beim Herunterzählen Null oder beim Hochzählen -1 erreicht hat, ist die Belegung von Reihe (i+1) abgeschlossen, und in jedem Fall wurden die Rasterpunkte von Eins plus der Abrundung des exakten Schnittpunktes des linken Seitenabschnittes mit Reihe (i+1) bis einschließlich der Abrundung des exakten Schnittpunktes des rechten Seitenabschnittes mit dieser Reihe belegt. Der XY-Adressen-Generator führt dann wieder die Berechnungs- Routine durch, was XMi+2 und Hrzi+2 ergibt, und der im Zähler 222 gespeicherte Wert wird erhöht.
- Der Inhalt der Register DYM und DYm wird auf den ersten bzw. zweiten Taktzyklus einer jeden Iteration der Berechnungs-Routine erniedrigt. Wenn der Inhalt eines Registers DYM oder DYm 0 erreicht, wurde ein Eckpunkt erreicht und neue Werte von DY, PInc, NInc und AErr&sub0; werden für den nächsten Rand desselben Seitenabschnittes initialisiert. Der XY-Adressen-Generator führt dann eine weitere Sequenz von Berechnungs- und Herunterzähl-Routinen in abwechselnder Folge durch. Schließlich erzeugt der XY-Adressen-Generator unter Verwendung der in den Registern für Reihe Ymax-1 gespeicherten Werte Werte von XM und Hrz für die Reihe Ymax. Der Wert XM ist die X-Koordinate des Eckpunktes B, da der Eckpunkt B sich an einem Rasterpunkt befindet und die Abrundung einer ganzen Zahl die ganze Zahl selbst ist, und der Wert Hrz Null ist, da die zwei Seitenabschnitte an einem Eckpunkt auf Reihe Ymax zusammenkommen. Wenn das Dreieck einen Rand auf der Reihe Ymax gehabt hätte, wäre der Wert von Hrz für diese Reihe nicht Null gewesen.
- Es versteht sich, daß kein Wert von Hrz für i=0 berechnet wird, und folglich die unterste Rasterreihe des Dreiecks nicht belegt wird. Die oberste Reihe wird jedoch belegt. Ähnlich wird der Rasterpunkt an der Abrundung des exakten Schnittpunktes einer Rasterreihe mit dem rechten Seitenabschnitt (ACB im Fall von Fig. 2) belegt, aber derjenige an der Abrundung des exakten Schnittpunktes der Rasterreihe mit dem linken Seitenabschnitt ist nicht belegt. Wenn die Dreiecke aneinanderstoßen, z.B. in einem Mosaik, wird daher ein Rasterpunkt an der Grenze zwischen zwei nebeneinanderliegenden Dreiecken behandelt, als befände er sich in einem, und nur einem, Dreieck.
- Der XY-Adressen-Generator ist in der U.S.-Patentschrift Nr. 4,951,230 vom 21. August 1990 beschrieben (die der europäischen Patentanmeldung Nr. 88 309 760.2 (EP-A-0 314 367) entspricht) und deren Offenbarung durch diese Bezugnahme in die vorliegende Schrift miteinbezogen wird.
- Der Z-Generator 4 erzeugt einen Wert von Z (Tiefe) für jedes Koordinaten-Paar (X, Y), das zur Adressierung des Z-Pufferspeichers verwendet wird, und ähnlich erzeugt der I-Generator 6 einen Wert von I (Schattierungsintensität) für jedes Koordinatenpaar (X, Y). Die Funktionen, die Z und I in eine Beziehung zur Position (X, Y) bringen, werden den Z- und I-Generatoren durch den Bildprozessor 1 angegeben. Die Werte von Z werden an den Z-Pufferspeicher 7 und den Z-Komparator 8 angelegt.
- Der Inhalt eines jeden Speicherplatzes des Z-Pufferspeichers stellt eine Entfernung von einer Anzeigeebene dar. Ansteigende Werte von Z stellen zunehmende Entfernung von der Anzeigeebene (Z=0) in der Richtung weg vom Betrachter der Anzeigeebene dar. Der Z-Pufferspeicher 7 wird zunächst mit einem Z-Wert für jeden Rasterpunkt geladen, der innerhalb des Bereiches von Entfernungswerten, die im Z-Pufferspeicher gespeichert werden können, die größte Entfernung von der Anzeigeebene darstellt. Wenn ein Wert von Z vom Z-Generator für einen der Rasterpunkte bereitgestellt wird, werden die in den X- und Y-Adressen-Registern 72 und 74 gespeicherten Koordinaten (X, Y) zum Lesen des im Z-Pufferspeicher für diesen Rasterpunkt gespeicherten aktuellen Wertes von Z (Zalt) verwendet, und der Z-Komparator wird dazu verwendet, Zalt mit dem Wert von Z (Zneu) zu vergleichen, der vom Z-Generator bereitgestellt wird. Ist Zneu kleiner oder gleich Zalt, wird Zneu anstelle von Zalt in den Z-Pufferspeicher geschrieben und der vom I-Generator 6 bereitgestellte Wert von I wird in den entsprechenden Speicherplatz des Bildspeichers 9 geladen.
- Der Z-Generator 4, der im einzelnen in Fig. 4 dargestellt ist, umfaßt drei Register 102, 104 und 106. Die drei Register sind mit einem Multiplexer 108 verbunden, dessen Ausgang an einen Addierer 110 angeschlossen ist. Der Addierer hat ein zweites Eingangssignal, das in Abhängigkeit von der Einstellung eines zweiten Multiplexers 116 von einem Register 112 bzw. 114 übertragen wird. Das Ausgangssignal des Addierers 110 wird an das Register 112 und das Register 114 übertragen, das an den lokalen Anzeigebus angeschlossen ist.
- Da Zneu für eine dreieckige Fläche eine lineare Funktion sowohl von X als auch von Y ist, ist die Differenz DZx in Zneu für zwei benachbarte Rasterpunkte in einer Rasterreihe unabhängig von Y, und die Differenz DZy in Zneu für Rasterpunkte mit demselben Wert von X in benachbarten Reihen von Rasterpunkten ist unabhängig von X.
- Der vom XY-Adressen-Generator 2 erzeugte Wert von XMi+1 für die (i+1)te Reihe von Rasterpunkten ist gegeben durch
- XMi+1 = XMi + s
- oder XMi+1 = XMi + s + 1
- in Abhängigkeit davon, ob der Fehlerwert AErrMi < 0 oder AErrMi > = 0 ist. Daher beträgt die Differenz zwischen dem Wert von Zneu für den ersten Rasterpunkt der iten Reihe und dem Wert von Zneu für den ersten Rasterpunkt der (i+1)ten Reihe DZy + sDZx oder DZy + (s+1)DZx.
- Im Initialisierungszustand lädt der Prozessor die Werte DZx DZy + sDZx, bzw. DZy + (s+1)DZx in die Register 102, 104 bzw. 106. Diese Werte werden vom Prozessor aus Koordinaten der drei Eckpunkte der anzuzeigenden dreieckigen Fläche berechnet. Der Prozessor berechnet ebenfalls den Wert von Zneu für den ersten Rasterpunkt rechts vom unteren Eckpunkt des Haupt-Seitenabschnittes des Dreiecks, d.h. den ersten Rasterpunkt rechts vom Punkt A im Fall von Fig. 2. Dieser Wert wird erhalten, indem DZx zum Wert von Zneu für den Punkt A addiert wird. Dieser Wert ZM&sub0; wird in die Register 112 und 114 geladen. Der I-Generator 6 ist mit dem Z-Generator 4 identisch und arbeitet auf identische Art und Weise, mit der Ausnahme, daß er Werte von I für jedes Kcordinatenpaar (X, Y) auf der Grundlage der Werte von DIx, DIy und den Wert von I für den Eckpunkt A berechnet. Da jeder Wert von Zneu vom Z-Generator erzeugt wird, wird ein entsprechender Wert für I vom I-Generator erzeugt.
- Nach der Initialisierung gehen der Z- und der I-Generator in den Betriebszustand über. Auf den ersten Taktzyklus, während dem der XY-Adressen-Generator einen Adreßzyklus ausgibt, der die Adresse (XM&sub1;, Y&sub1;) enthält, wählt der Multiplexer 108 des Z- Generators das Register 104 oder 106 in Abhängigkeit davon aus, ob AErrM&sub0; < 0 oder AErrM&sub0; > = 0 ist, und der Multiplexer 116 wählt das Register 112 aus. Der Addierer 110 erstellt einen Ausgangswert, der die Summe aus dem vom ausgewählten Register 104 oder 106 erstellten Wert und dem vom Register 112 bereitgestellten Wert ZM&sub0; ist und Zneu für den Punkt (XM&sub1; + 1, Y&sub1;) darstellt. Dieser Wert wird sowohl an Register 112 als ZM&sub1; als auch an Register 114 übertragen. Der XY-Adressen-Generator 2 gibt einen Datenzyklus aus, und als Reaktion auf diesen Datenzyklus gibt der Z-Generator den im Register 114 gespeicherten Wert und der I-Generator gibt den entsprechenden Wert von I aus. Im zweiten Taktzyklus wählen die Multiplexer 108 und 116 die Register 102 bzw. 114 aus, und die Summe der in diesen Registern gespeicherten Werte wird in das Register 114 zurückgeschrieben. Dieser Wert stellt Zneu für den Punkt (XM&sub1; + 2, Y&sub1;) dar. Der XY-Adressen-Generator gibt einen zweiten Datenzyklus aus, und die Werte für Zneu und I für den Punkt (XM&sub1;+2, Y&sub1;) werden von den Z- und I-Generatoren ausgegeben. Dies geht so weiter, bis der Z- und der I-Generator einen Befehl vom Z- Pufferspeicher empfangen, der sie anweist, mit der Erzeugung von Werten von Zneu und I für die nächste Rasterreihe zu beginnen. Beim nächsten Zyklus nach dem Empfang dieses Befehls wählt der Multiplexer 108 das Register 104 oder 106 aus, in Abhängigkeit vom Vorzeichen von AErrM&sub1;, und der Multiplexer 116 wählt das Register 112 aus. Der vom Addierer 110 ausgegebene Wert wird an als ZM&sub2; an das Register 112 sowie an das Register 114 übertragen.
- Hätte sich der Haupt-Seitenabschnitt des Dreiecks rechts vom nebengeordneten Seitenabschnitt befunden, so daß der erste zu belegende Rasterpunkt in Reihe i bei XMi läge, und nicht bei XMi+1, wäre der vom Prozessor während der Initialisierung in das Register 112 geladene Wert gleich dem Wert von Z für den Eckpunkt A.
- Wenn der Z-Pufferspeicher und der Bildspeicher einen Adreßzyklus vom XY-Adressen-Generator empfangen, werden die Werte XMi+1 und Yi+1 in die X- und Y-Adressen-Zähler des Z-Pufferspeichers und des Bildspeichers geladen. Der in den X-Adressen-Zählern 72 und 92 gespeicherte Wert wird jedesmal dann erhöht oder erniedrigt, wenn der Z-Pufferspeicher und der Bildspeicher einem Datenzyklus empfangen, so daß die Speicherplätze, die den zu belegenden Rasterpunkten entsprechen, der Reihe nach adressiert werden. Wenn der im Zähler 72 gespeicherte Wert gleich XMi+1 + j ist, wobei j eine ganze Zahl darstellt, wird der im Speicher 70 an der Stelle (XMi+1 + j, Yi+1) gespeicherte Wert von Zalt gelesen und während der ersten Hälfte eines Speicherzyklusses an den Z-Komparator gelegt. Der Z-Komparator vergleicht den Wert von Zalt mit dem entsprechenden Wert von Zneu, der vom Z-Generator empfangen wird, und erzeugt ein konditionales Schreib-Bit, welches vom Z-Komparator mit den Werten Zneu und I weitergeleitet wird. Ist das konditionale Schreib-Bit gesetzt, was anzeigt, daß Zneu kleiner oder gleich Zalt ist, wird der Wert von Zneu während der zweiten Hälfte des Speicherzyklusses in die entsprechende Stelle des Z-Pufferspeichers 7 geschrieben; anderenfalls bleibt der im Z-Pufferspeicher gespeicherte Wert unverändert. Der Wert von I wird zusammen mit dem konditionalen Schreib-Bit auf den lokalen Anzeigebus gelegt und an den Bildspeicher übertragen, wo eine ähnliche konditionale Schreiboperation auf den Bildspeicher 90 ausgeführt wird.
- Wenn der Z-Pufferspeicher den letzten Datenzyklus für eine gegebene Rasterreihe empfangen hat, empfängt er anschließend den Adreßzyklus für die nächste Rasterreihe. Der Z-Pufferspeicher reagiert auf einen Adreßzyklus, indem er einen Befehl an die Z- und I-Generatoren ausgibt, daß sie mit dem Erzeugen von Werten für Zneu und I für die nächste Rasterreihe beginnen sollen.
- Es versteht sich, daß die Funktionen der Z- und I-Generatoren, des Z-Pufferspeichers 7, des Z-Komparators 8 und des Bildspeichers 9 im Pipeline-Betrieb durchgeführt werden, so daß jedesmal, wenn die Zählung Hrzi+1 erniedrigt (wenn Bit 26 nicht gesetzt ist) oder erhöht wird (wenn Bit 26 gesetzt ist), ein konditionales Schreiben des Intensitätswertes in den Bildspeicher 9 durchgeführt wird, außer zu Beginn einer jeden Herunterzähl-Routine, während der Wert von I für den ersten Rasterpunkt der Reihe durch die Pipeline verläuft. Dementsprechend erfolgt die Operation des Ladens des Bildspeichers schneller als bei Verwendung des aus dem Stand der Technik bekannten Systems.
- Es versteht sich ebenfalls, daß die vorliegende Erfindung nicht auf die bestimmte hierin beschriebene Ausführungsform beschränkt ist, und daß Veränderungen an ihr vorgenommen werden können, ohne hierbei vom Umfang der Erfindung, wie er in den beigefügten Ansprüchen und ihren Entsprechungen definiert ist, abzuweichen. Zum Beispiel kann der Wert von Z das Komplement der Entfernung zwischen der Anzeigeebene und einem Punkt einer dreieckigen Fläche darstellen, wobei ansteigende Werte von Z eine abnehmende Entfernung von der Anzeigeebene darstellen. Die Konfiguration des XY-Adressen-Generators, des Z-Generators, des Z-Komparators und des Z-Pufferspeichers und/oder Bildspeichers in Pipelining-Form ist nicht auf den beschriebenen XY-Adressen-Generator und Z-Generator beschränkt, und ähnlich ist auch die Kombination des XY-Adressen-Generators und des Z-Generators nicht auf die Verwendung in einer Pipelining- Konfiguration beschränkt.
Claims (5)
1. Verfahren zum Laden einer Speichervorrichtung mit einer
Vielzahl adressierbarer Speicherplätze zur Wegnahme
verborgener Flächen auf einer Anzeige, wobei jeder dieser
Speicherplätze eindeutig durch ein Adreßwort mit einer
X- und einer Y-Komponente definierbar ist, wobei die
Speicherplätze jeweils Rasterpunkten in einem rechteckigen
Feld mit einem Rastermaß dX in X-Richtung und einem
Rastermaß dY in Y-Richtung entsprechen, wobei das Verfahren
folgendes umfaßt:
Erzeugen eines ersten Adreßwortes, welches einen
Speicherplatz definiert, der einem ersten Rasterpunkt
entspricht,
gekennzeichnet durch folgende Schritte:
Berechnen eines Tiefenwertes Z für den ersten
Rasterpunkt in Abhängigkeit von X und Y, und gleichzeitiges
Erzeugen eines zweiten Adreßwortes, das einen
Speicherplatz definiert, der einem zweiten Rasterpunkt
entspricht,
Vergleichen des Tiefenwertes Z für den ersten
Rasterpunkt mit einem früheren Tiefenwert Z für den ersten
Rasterpunkt, welcher aus dem dem ersten Rasterpunkt
entsprechenden Speicherplatz ausgelesen wurde, und
gleichzeitiges Erzeugen eines dritten Adreßwortes, das einen
Speicherplatz definiert, der einem dritten Rasterpunkt
entspricht, und Berechnen eines Tiefenwertes Z für den
zweiten Rasterpunkt in Abhängigkeit von X und Y, und
wenn der Tiefenwert Z für den ersten Rasterpunkt in
einem vorbestimmten Verhältnis zu dem früheren Tiefenwert
Z für den ersten Rasterpunkt steht: Laden des
Tiefenwertes Z für den ersten Rasterpunkt in den Speicherplatz,
der dem ersten Rasterpunkt entspricht.
2. Verfahren zum Laden einer Speichervorrichtung mit einer
Vielzahl adressierbarer Speicherplätze zur Wegnahme
verborgener Flächen auf einer Anzeige, wobei jeder dieser
Speicherplätze eindeutig durch ein Adreßwort mit einer
X- und einer Y-Komponente definierbar ist, wobei die
Speicherplätze jeweils Rasterpunkten in einem rechteckigen
Feld mit einem Rastermaß dX in X-Richtung und einem
Rastermaß dY in Y-Richtung entsprechen, wobei das Verfahren
folgendes umfaßt:
Erzeugen eines ersten Adreßwortes, welches einen
Speicherplatz definiert, der einem ersten Rasterpunkt
entspricht,
gekennzeichnet durch folgende Schritte:
Berechnen eines Tiefenwertes Z für den ersten
Rasterpunkt in Abhängigkeit von X und Y, und gleichzeitiges
Erzeugen eines zweiten Adreßwortes, das einen
Speicherplatz definiert, der einem zweiten Rasterpunkt
entspricht,
Vergleichen des Tiefenwertes Z für den ersten
Rasterpunkt mit einem früheren Tiefenwert Z für den ersten
Rasterpunkt und gleichzeitiges Erzeugen eines dritten
Adreßwortes, das einen Speicherplatz definiert, der einem
dritten Rasterpunkt entspricht, und Berechnen eines
Tiefenwertes Z für den zweiten Rasterpunkt in Abhängigkeit
von X und Y, und
wenn der Tiefenwert Z für den ersten Rasterpunkt in
einem vorbestimmten Verhältnis zu dem früheren
Tiefenpunkt Z für den ersten Rasterpunkt steht: Laden eines
Helligkeitswertes I für den ersten Rasterpunkt, der eine
Funktion von X und Y ist, in den Speicherplatz, der dem
ersten Rasterpunkt entspricht.
3. Verfahren nach Anspruch 2, bei dem der Helligkeitswert I
für den ersten Rasterpunkt gleichzeitig mit dem
Tiefenwert Z für den ersten Rasterpunkt berechnet wird.
4. Vorrichtung zum Erzeugen von Tiefenwerten Z für
festgelegte Rasterpunkte in einem rechteckigen Feld mit einem
Rastermaß dX in einer X-Richtung und einem Rastermaß dY
in einer Y-Richtung, die senkrecht zur X-Richtung ist,
wobei die festgelegten Rasterpunkte im wesentlichen auf
einer Linie von einem Punkt (X&sub0;, Y&sub0;) zu einem Punkt
(X&sub0;+p*dX, Y&sub0;+q*dY) liegen, wobei p und q rationale Zahlen
sind, und wobei die Vorrichtung das Verfahren nach
Anspruch 1 oder Anspruch 2 ausführt und folgendes umfaßt:
eine erste Speichervorrichtung zum Empfangen der
Werte X&sub0; und s, wobei s die größte ganze Zahl kleiner
gleich p/q ist,
eine zweite Speichervorrichtung zum Empfangen der
Werte von AErr&sub0;, PInc, NInc und Y&sub0;, wobei
PInc = p - sq - q
NInc = p - sq
AErr&sub0; = PInc,
eine dritte Speichervorrichtung zum Speichern von
Werten von DZy + sDZx, DZy + (s+1)DZx und Z&sub0;, wobei DZx
die Veränderung in Z bei einer Veränderung von dX in X
ist, DZy die Veränderung in Z bei einer Veränderung von
dY in Y darstellt, und Z&sub0; der Wert von Z am Punkt (X&sub0; +
vdX, Y&sub0;) ist, wobei v eine ganze Zahl ist,
einen mit der ersten Speichervorrichtung gekoppelten
Subtrahierer,
einen mit der zweiten Speichervorrichtung
gekoppelten ersten Addierer,
einen mit der dritten Speichervorrichtung
gekoppelten zweiten Addierer,
eine mit dem Addierer und dem Subtrahierer und den
drei Speichervorrichtungen gekoppelte Steuervorrichtung
zur Ausführung, für jeden Wert von i im Bereich von 0 bis
q-1,
eine Ausgabevorrichtung zur Bereitstellung der Werte
Xi+1, Yi+1 und Zi+1 vom zweiten Addierer.
5. Vorrichtung nach Anspruch 4, worin die dritte
Speichervorrichtung den Wert DZx empfängt, und die
Steuervorrichtung für jeden Wert von i des weiteren Ji Schritte
ausführt, so daß für jeden Wert von j im Bereich von 0 bis Ji
Xi+1,j = Xi+1,j-1 + k/(abs.k),
ist, worin k eine Konstante und Xi+1,0 gleich Xi+1 ist, und
in jedem Schritt die Steuervorrichtung folgendes
ausführt:
Zi+1,j = Zi+1,j-1 + DZx
wobei Zi+1,0 gleich Zi+1 ist.
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US07/113,045 US5084830A (en) | 1987-10-26 | 1987-10-26 | Method and apparatus for hidden surface removal |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| DE3854073D1 DE3854073D1 (de) | 1995-08-03 |
| DE3854073T2 true DE3854073T2 (de) | 1996-04-11 |
Family
ID=22347319
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| DE3854073T Expired - Fee Related DE3854073T2 (de) | 1987-10-26 | 1988-10-18 | Verfahren und Gerät zur Wegnahme von verborgenen Flächen. |
Country Status (4)
| Country | Link |
|---|---|
| US (1) | US5084830A (de) |
| EP (1) | EP0314368B1 (de) |
| JP (1) | JPH01134579A (de) |
| DE (1) | DE3854073T2 (de) |
Families Citing this family (8)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US4985854A (en) * | 1989-05-15 | 1991-01-15 | Honeywell Inc. | Method for rapid generation of photo-realistic imagery |
| JPH07118025B2 (ja) * | 1990-06-29 | 1995-12-18 | インターナショナル・ビジネス・マシーンズ・コーポレイション | コンピュータ・グラフィックス処理方法及びシステム |
| US5265199A (en) * | 1991-05-22 | 1993-11-23 | Silicon Graphics, Inc. | Method and apparatus for accomplishing Z-buffering by prediction |
| DE69233717T2 (de) * | 1991-06-28 | 2008-10-30 | Lim, Hong Lip, Darlington | Verbesserungen in sichtbarkeit-berechnungen fuer 3d-rechner |
| US6115047A (en) * | 1996-07-01 | 2000-09-05 | Sun Microsystems, Inc. | Method and apparatus for implementing efficient floating point Z-buffering |
| US6046746A (en) * | 1996-07-01 | 2000-04-04 | Sun Microsystems, Inc. | Method and apparatus implementing high resolution rendition of Z-buffered primitives |
| JP3427973B2 (ja) * | 1998-12-09 | 2003-07-22 | 日本電気株式会社 | オブジェクト表示記述文書変換装置及びブラウザ |
| US8356162B2 (en) * | 2008-03-18 | 2013-01-15 | International Business Machines Corporation | Execution unit with data dependent conditional write instructions |
Family Cites Families (11)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPS5952380A (ja) * | 1982-09-17 | 1984-03-26 | Victor Co Of Japan Ltd | 補間装置 |
| US4609917A (en) * | 1983-01-17 | 1986-09-02 | Lexidata Corporation | Three-dimensional display system |
| US4730261A (en) * | 1983-10-25 | 1988-03-08 | Ramtek Corporation | Solids modelling generator |
| US4697178A (en) * | 1984-06-29 | 1987-09-29 | Megatek Corporation | Computer graphics system for real-time calculation and display of the perspective view of three-dimensional scenes |
| US4625289A (en) * | 1985-01-09 | 1986-11-25 | Evans & Sutherland Computer Corp. | Computer graphics system of general surface rendering by exhaustive sampling |
| US4684990A (en) * | 1985-04-12 | 1987-08-04 | Ampex Corporation | Method and apparatus for combining multiple video images in three dimensions |
| US4679041A (en) * | 1985-06-13 | 1987-07-07 | Sun Microsystems, Inc. | High speed Z-buffer with dynamic random access memory |
| US4719585A (en) * | 1985-08-28 | 1988-01-12 | General Electric Company | Dividing cubes system and method for the display of surface structures contained within the interior region of a solid body |
| FR2586838B1 (fr) * | 1985-08-30 | 1989-07-28 | Labo Electronique Physique | Processeur d'elimination de faces cachees pour la synthese d'images a trois dimensions |
| FR2594980A1 (fr) * | 1986-02-21 | 1987-08-28 | Gen Electric | Processeur de visualisation pour un systeme de visualisation graphique |
| JPH0632041B2 (ja) * | 1987-03-30 | 1994-04-27 | 株式会社東芝 | 奥行き情報バツフア制御装置 |
-
1987
- 1987-10-26 US US07/113,045 patent/US5084830A/en not_active Expired - Lifetime
-
1988
- 1988-10-13 JP JP88258336A patent/JPH01134579A/ja active Pending
- 1988-10-18 DE DE3854073T patent/DE3854073T2/de not_active Expired - Fee Related
- 1988-10-18 EP EP88309761A patent/EP0314368B1/de not_active Expired - Lifetime
Also Published As
| Publication number | Publication date |
|---|---|
| JPH01134579A (ja) | 1989-05-26 |
| EP0314368B1 (de) | 1995-06-28 |
| EP0314368A3 (de) | 1991-02-06 |
| EP0314368A2 (de) | 1989-05-03 |
| DE3854073D1 (de) | 1995-08-03 |
| US5084830A (en) | 1992-01-28 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| DE68927471T2 (de) | Verfahren zur Schattierung eines graphischen Bildes | |
| DE69100140T2 (de) | Verfahren zur Anzeige eines Bildteiles einer physikalischen Struktur. | |
| DE3855231T2 (de) | Prioritätsauflösungssystem zwischen Polygonen mit Antialiasing | |
| DE69331031T2 (de) | Vorrichtung zur parallelen Bilderzeugung | |
| DE68919700T2 (de) | Steuerung eines seitenspeichers in einem rasterbildprozessor. | |
| DE69130123T2 (de) | Anzeigegerät und Verfahren zum Betreiben eines solchen Geräts | |
| DE3750784T2 (de) | Generation eines intrapolierten charakteristischen Wertes zur Anzeige. | |
| DE19709220B4 (de) | System und Verfahren für eine beschleunigte Verdeckungsauslese | |
| DE69032932T2 (de) | System und Verfahren zum unverfälschten Polygonenzeichnen | |
| DE3854223T2 (de) | Erzeugung und Anzeige von Rechnergraphiken. | |
| DE69122557T2 (de) | Bilderzeugung | |
| DE3854543T2 (de) | Prioritätsverwaltung eines Tiefendatenpuffers für Echtzeitrechnersysteme zur Bilderzeugung. | |
| DE68924389T2 (de) | Verfahren und Einrichtung zur Anzeige einer Vielzahl von graphischen Bildern. | |
| DE69127915T2 (de) | System und Verfahren von Prioritätsfarbabbildung | |
| DE69320746T2 (de) | Rasterbildverbesserung unter Verwendung eines reduzierten Schablonenspeichers | |
| DE3786866T2 (de) | Lithographisches Gerät. | |
| DE69609534T2 (de) | Rechnerbasierte 3D-Darstellungsverfahren und -System | |
| DE3619420A1 (de) | Computer-displayeinrichtung | |
| DE102005050846A1 (de) | Perspektiveneditierwerkzeuge für 2-D Bilder | |
| DE69631718T2 (de) | Verfahren und Gerät zur leistungsfähigen Graphikdarstellung dreidimensionaler Szenen | |
| DE68923191T2 (de) | Dreidimensionales graphisches Verarbeitungsgerät. | |
| DE3633454A1 (de) | Einrichtung zur erzeugung eines gerasterten musters | |
| DE69021939T2 (de) | Rechnergestützte Erzeugung beweglicher Bilder. | |
| DE3650332T2 (de) | Verfahren und Gerät zur Bilddatenverarbeitung. | |
| DE3854619T2 (de) | Quadratische interpolation zur schattierten bilderzeugung. |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| 8364 | No opposition during term of opposition | ||
| 8339 | Ceased/non-payment of the annual fee |