-
Die
vorliegende Erfindung bezieht sich allgemein auf ein System und
ein Verfahren zur Verdeckungsauslese (auch "Occlusion Culling" genannt) und insbesondere auf ein System
und ein Verfahren zum Beschleunigen der Verdeckungsauslese bei einem
Graphikcomputer.
-
Ein
Graphikcomputer wird üblicherweise
verwendet, um dreidimensionale Darstellungen eines Objekts auf einem
zweidimensionalen Anzeigebildschirm darzustellen. Bei einem typischen
Graphikcomputer wird ein aufzubereitendes Objekt in eine Vielzahl
von Graphikgrundelementen aufgeteilt. Die Graphikgrundelemente sind
Grundkomponenten eines Graphikbildes und können durch Geometrien eines
Punktes, einer Linie, eines Vektors oder eines Polygons, wie z.
B. eines Dreiecks, definiert sein. Die Graphikgrundelemente werden
durch eine Graphikpipeline gespeist, wo verschiedene Verarbeitungstypen
auftreten, wonach sie auf einer Anzeige aufbereitet werden.
-
Ein
Beispiel einer typischen Graphikpipeline 10 ist in 1 gezeigt und umfaßt eine
Transformationseinheit 12 zum Umwandeln von Eingabegrundelementdaten
von einem Koordinatenraum zu einem anderen Koordinatenraum. Eine
Licht/Schatten-Einheit 13 legt
eine Beleuchtung und eine flache oder weiche Schattierung an die
transformierten Graphikgrundelemente an, und dieselbe kann zusätzlich eine Texturabbildungsfähigkeit
für den
Graphikcomputer schaffen. Eine Abschneideeinheit schneidet Grundelemente
auf ein Betrachtungsvolumen zu und kann ferner die Grundelemente
bezüglich
einer oder mehrerer beliebiger Abschneideebenen zuschneiden. An der
Abschneideeinheit 14 werden die Grundelementdaten derart
modifiziert, daß nur
der Abschnitt des Grundelements, welcher innerhalb des Betrachtungsvolumens
liegt, sichtbar wird. Eine Perspek tiventeilungseinheit 15 teilt
alle Koordinaten durch w, um die Daten von homogenen zu dreidimensionalen Koordinaten
zu transformieren. Um eine perspektivische Projektion zu schaffen,
werden die Koordinaten ferner an der Perspektiventeilungseinheit 15 durch die
Tiefenkomponente geteilt, derart, daß Objekte, die weiter weg sind,
kleiner erscheinen. Bei einer Abtastumwandlungseinheit 15 werden
Scheitel-Koordinaten und -Attribute in Pixelfarben und Tiefen umgewandelt.
Die Datenausgabe aus der Graphikpipeline 10 umfaßt solche
Dinge, wie Pixel-Koordinaten oder Adressen x und y, eine Pixeltiefe
z und eine Farbe r, g, b und a oder einen Farbindex. Es sollte offensichtlich
sein, daß die
Graphikpipeline 10 lediglich beispielhaft die Operationen
zeigt, die von einem typischen Graphikcomputer durchgeführt werden,
und daß die
Operationen eines speziellen Graphikcomputers von den beschriebenen
abweichen können.
-
Die
Ausgabe der Graphikpipeline 10 wird typischerweise zu einem
Rahmenpuffer geleitet, welcher einen Farbpuffer und einen Tiefenpuffer
aufweist. Eine Steuerung, die dem Rahmenpuffer zugeordnet ist, vergleicht
die ankommenden Pixeldaten mit den angezeigten Pixeldaten und steuert
die Speicherung der ankommenden Pixeldaten dementsprechend. Genauer
gesagt wird die Tiefenkomponente z für jedes ankommende Pixel mit
der Tiefenkomponente z für
das gerade angezeigte Pixel bei der gleichen Adresse x und y verglichen.
Wenn die ankommenden Pixeldaten an dieser Adresse den Tiefentest gegen
die gegenwärtig
angezeigten Pixeldaten bestehen, dann wird die Steuerung den Farbpuffer
und den Tiefenpuffer freigeben, um die Daten für dieses ankommende Pixel zu
speichern. Der Vergleich der gegenwärtigen Tiefe und der ankommenden
Tiefe wird für
jedes Pixel durchgeführt,
derart, daß die
Daten, die den verdeckten Pixeln zugeordnet sind, nicht in dem Farbe-
und dem Tiefenpuffer gespeichert werden.
-
Die
herkömmlichen
Graphikcomputer haben den Nachteil, daß sie relativ langsam sind.
In dem Rahmenpuffer oder Bild speicher muß für jedes Pixel in einem Grundelement
sein Tiefenwert z mit dem Tiefenwert für das gegenwärtig angezeigte
Pixel verglichen werden. Da jedes Grundelement Tausende von Pixeln
haben kann, wird eine relativ große Menge an Verarbeitungszeit
aufgewendet, um die sichtbaren Pixel zu bestimmen, und um die Tiefen-
und Farb-Daten, die diesen Pixeln zugeordnet sind, zu speichern.
Es besteht in der Industrie daher ein Bedarf, die Geschwindigkeit
eines Graphikcomputers zu erhöhen.
-
Die
Geschwindigkeit eines Graphikcomputers wird ebenfalls sehr stark
beeinträchtigt,
da schließlich
nicht alle Grundelemente aufbereitet werden. So kann bezüglich eines
Beispiels eines Automobils das Automobil eine hierarchische Datenstruktur
haben, mit unterschiedlichen Gruppen für Dinge, wie z. B. Körperplatten,
den Motor, den Antriebszug, das Innere, die Elektrik, die Räder, usw.
Bestimmte dieser Datenstrukturen, wie z. B. der Motor, können komplex
sein und können
potentiell aus Tausenden oder Millionen von Graphikgrundelementen
bestehen, welche zusammengruppiert und aufbereitet werden. Wenn
das Automobil von oben bei geschlossener Motorhaube angezeigt wird,
könnte
ein typischer Graphikcomputer eine große Menge an Zeit zum Verarbeiten
der Vielzahl von Grundelementen für den Motor aufwenden, was
schließlich
darin resultiert, daß nicht
ein einziges Grundelement für
den Motor angezeigt wird. Auf ähnliche
Weise können
andere Abschnitte des Automobils, wie z. B. die Räder oder
der Antriebszug, vollständig
verdeckt sein. Die Menge an Zeit, die zum Verarbeiten aller dieser
verdeckten Grundelemente aufgewendet wird, verringert die Geschwindigkeit
und den Wirkungsgrad des Graphikcomputers stark. Es besteht daher
ein Bedarf nach einem Graphikcomputer, welcher schnell eine große Anzahl
von Graphikgrundelementen aufbereiten kann.
-
Die
EP 0606685 A beschreibt
ein Computergraphiksystem, welches die Anzahl von Belichtungsberechnungen
reduziert, die erforderlich sind, um eine Szene mit Objekten, die
durch Lichtquellen beleuchtet sind, aufzubereiten. Hier wird jedes
Graphikgrundelement individuell analysiert, wobei die individuelle
Prüfung,
ob ein Graphikgrundelement weiterverarbeitet werden soll, jeweils
vor der Analyse eines weiteren Graphikgrundelements erfolgt.
-
Die
EP 0255544 A beschreibt
eine Figurverarbeitungsvorrichtung, die eine dreidimensionale Figur
basierend auf dreidimensionalen Figurdaten auf einem Bildschirm
darstellt, mit Ausnahme der verdeckten Abschnitte der Figur. Ein
Fenster ist vorgesehen, um einen vorbestimmten Bereich auf dem Bildschirm
festzulegen, wobei diejenigen dreidimensionalen Figurdaten abgeschnitten
werden, die außerhalb
des Fensters liegen.
-
Foley,
u.a. beschreibt in "Computer
Graphics Principles and Practice, Addison-Wesley, 1990, Seiten 660–663 die
Bestimmung von sichtbaren Oberflächen
bei Graphikelementen, wobei hier basierend auf Projektionen der
Graphikelemente in eine gemeinsame Ebene eine Überdeckung festgestellt wird.
-
Ausgehend
von diesem Stand der Technik liegt der vorliegenden Erfindung die
Aufgabe zugrunde, eine verbesserte Verdeckungsausleseschaltung zu
schaffen, die bestimmt, ob ein Graphikgrundelement vollständig verdeckt
ist, um so eine Verarbeitungszeit eines Graphikcomputers zu reduzieren.
-
Diese
Aufgabe wird durch eine Verdeckungsausleseschaltung gemäß Anspruch
1 gelöst.
-
Ein
Vorteil der vorliegenden Erfindung besteht darin, daß sie ein
System zur Verwendung in einem Graphikcomputer schafft, welcher
schnell Graphikgrundelemente aufbereiten und anzeigen kann.
-
Zusätzliche
Vorteile und neue Merkmale der Erfindung werden in der nachfolgenden
Beschreibung dargelegt und werden Fachleuten beim Lesen dieser Beschreibung
und beim Ausführen
der Erfindung offensichtlich werden.
-
Um
die vorhergehenden und weitere Ziele zu erreichen, umfaßt eine
Verdeckungsausleseschaltung zur Verwendung bei einem Graphikcomputer und
gemäß einem
bevorzugten Ausführungsbeispiel der
vorliegenden Erfindung einen Zentralprozessor, eine Tiefenvergleichsschaltung,
eine Logikschaltung, einen Tiefenpuffer und einen Farbpuffer. Der
Zentralprozessor liefert die Graphikgrundelemente, die aufbereitet
werden sollen, und verwaltet bestimmte Operationen der Verdeckungsausleseschaltung.
Die Tiefenvergleichsschaltung ist konfiguriert, um ein Graphikgrundelement
von dem Zentralprozessor zu empfangen, und um einen ankommenden
Tiefenwert für
jede Adresse in dem Graphikgrundelement mit einem gegenwärtigen Tiefenwert
für ein
aufbereitetes Pixel bei einer entsprechenden Adresse zu vergleichen.
Basierend auf dem Vergleich erzeugt die Tiefenvergleichsschaltung
ein Ergebnissignal mit einem ersten logischen Wert, wenn der ankommende
Tiefenwert sichtbar ist, und mit einem zweiten logischen Wert, wenn
der ankommende Tiefenwert durch das aufbereitete Pixel verdeckt
ist. Die Logikschaltung ist konfiguriert, um das Ergebnissignal
der Tiefenvergleichsschaltung zu empfangen, und um ein Tiefenvergleichssignal
zu erzeugen. Die Logikschaltung wird das Tiefenvergleichssignal
auf dem ersten logischen Wert beim Empfang eines Ergebnissignals
mit dem ersten logischen Wert zwischenspeichern. Wenn der erste
logische Pegel von der Logikschaltung nach der Verarbeitung eines
Satzes von Graphikgrundelementen nicht zwischengespeichert ist, dann
zeigt dies an, daß alle
Grundelemente dieser Gruppe durch vorher aufbereitete Grundelemente vollständig verdeckt
sind. Schließlich
ist der Tiefenpuffer vorgesehen, um Tiefenwerte der Graphikgrundelemente
zu speichern, während
der Farbpuffer vorgesehen ist, um Farbwerte der Graphikgrundelemente
zu speichern.
-
Demgemäß speichert
der Zentralprozessor Farbwerte und Tiefenwerte eines Pixel, wenn
die Logikschaltung den ersten logischen Wert für das Pixel zwischenspeichert.
Andererseits speichert der Zentralprozessor nicht die Tiefenwerte
in dem Tiefenpuffer oder die Farbwerte in dem Farbpuffer, wenn die Logikschaltung
den ersten logischen Wert für
das Pixel nicht zwischenspeichert, da das Pixel in diesem Fall verdeckt
ist.
-
Bevorzugte
Ausführungsbeispiele
der vorliegenden Erfindung werden nachfolgend bezugnehmend auf die
beiliegenden Zeichnungen detaillierter erläutert. Es zeigen:
-
1 ein Blockdiagramm einer
Graphikpipeline;
-
2 ein Blockdiagramm eines
Graphikcomputers;
-
3 ein schematisches Diagramm
einer Verdeckungsausleseschaltung gemäß einem bevorzugten Ausführungsbeispiel
der vorliegenden Erfindung; und
-
4 ein Flußdiagramm
eines Verfahrens zum Verdeckungsauslesen gemäß einem bevorzugten Ausführungsbeispiel
der vorliegenden Erfindung.
-
In 2 ist ein Graphikcomputer 20 gemäß einem
bevorzugten Ausführungsbeispiel
der vorliegenden Erfindung gezeigt, wobei derselbe einen Hostcomputer 22 aufweist,
der mit einer Graphikbeschleunigungsplatine 24 verbunden
ist. Der Haupt computer 22 liefert der Graphikbeschleunigungsplatine 24 Graphikgrundelemente,
und, wie es aus der nachfolgenden Beschreibung ersichtlich ist,
steuert derselbe ferner bestimmte Operationen innerhalb der Graphikbeschleunigungsplatine 24.
-
Die
Graphikbeschleunigungsplatine 24 führt die Funktionen einer typischen
Graphikpipeline, wie z. B. der Graphikpipeline 10 in 1, durch und umfaßt im allgemeinen
eine Geometriebeschleunigungsplatine 26 und eine Rasterisierungsplatine 28. Der
Betrieb der Geometriebeschleunigungsplatine 26 bildet keinen
Teil der vorliegenden Erfindung, und es kann jede geeignete Geometriebeschleunigungsplatine 26 verwendet
werden. Die Rasterisierungsplatine 28 umfaßt einen
Rahmenpuffer, welcher sowohl einen Farbpuffer als auch einen Tiefenpuffer aufweist.
Die Rasterisierungsplatine 28 führt die Funktion des Umwandelns
von Graphikgrundelementen in einzelne Pixel zur Anzeige auf einem
Anzeigegerät
durch. Dieser Prozeß ist
in der Industrie als Abtastumwandlung oder Rasterisierung bekannt. Es
sollte offensichtlich sein, daß der
Graphikcomputer 20 nicht auf das in der Zeichnung gezeigte
Beispiel begrenzt ist, sondern daß derselbe zusätzlich andere
Elemente, wie z. B. eine Texturabbildungsplatine, enthalten kann.
-
Eine
Verdeckungsausleseschaltung 30 gemäß einem bevorzugten Ausführungsbeispiel
der Erfindung ist in 3 gezeigt.
Im allgemeinen empfängt
die Verdeckungsausleseschaltung 30 Pixeldaten, die Pixelkoordinaten
x und y, Tiefenwerte z und Farbdaten r, b, g und a oder einen Farbindex
aufweisen, wobei dieselbe bei den Pixeln, die nicht vollständig verdeckt
sind, die Tiefenwerte z in einem Tiefenpuffer 39 und die
Farbdaten r, b, g und a oder einen Farbindex in einem Farbpuffer 38 speichert.
-
Insbesondere
werden die Eingangsdaten zu einer Tiefenvergleichsschaltung 33 geleitet.
Die Tiefenvergleichsschaltung 33 vergleicht den Wert z
der ankommenden Pixeldaten mit dem Wert z des gegenwärtigen Pixels,
der in dem Tiefenpuffer 39 gespeichert ist. Die Ausgabe
der Tiefenvergleichsschaltung 33 ist ein logischer Wert
von 1, wenn der ankommende Pixelwert z den Tiefenvergleich gegenüber dem
Wert z des gegenwärtigen
Pixels besteht, und derselbe ist sonst ein logischer Wert von 0.
Die Ausgabe der Tiefenvergleichsschaltung 33 wird zu einem Eingang
einer ODER-Schaltung 34 geleitet, wobei die Ausgabe der
ODER-Schaltung 34 in einem Tiefenvergleichsergebnisregister 35 gespeichert
wird. Der in dem Tiefenvergleichsergebnisregister 35 gespeicherte
Wert wird zurück
in einen zweiten Eingang der ODER-Schaltung 34 geleitet.
-
Die
Eingangspixeldaten werden ebenfalls einer Farbmaske 36 und
sowohl dem Tiefenpuffer 39 als auch dem Farbpuffer 38 zugeführt. Die
Koordinaten x und y der ankommenden Pixeldaten werden einem Adreßeingang
sowohl des Tiefenpuffers 39 als auch des Farbpuffers 38 zugeführt. Wenn
ein Tiefenmaskenschalter 37 geschlossen ist, werden die
Werte z für
die ankommenden Pixeldaten dem Tiefenpuffer 39 zugeführt. Wenn
die Farbmaskenschaltung 36 freigegeben ist, werden auf ähnliche
Weise die Farbdaten einem Eingang des Farbpuffers 38 zugeführt. An
dieser Stelle ist es der Anmerkung wert, daß die Farbmaskenschaltung 36 beliebige
oder alle der Farbdaten r, g, b und a oder der Farbindexdaten unabhängig freigeben
oder sperren kann, die als eine Eingabe in den Farbpuffer 38 zugeführt werden.
-
Eine
Steuerleitung erstreckt sich von dem Ausgang der Tiefenvergleichsschaltung 33 zu
den Schreiben-Freigabe-Eingängen des
Tiefenpuffers 39 und des Farbpuffers 38. Wenn
das Ausgangssignal der Tiefenvergleichsschaltung 33 ein
logischer Wert von 1 ist, wird die logische 1 den Schreiben-Freigabe-Eingängen des
Tiefenpuffers 39 und des Farbpuffers 38 zugeführt, um
ein Schreiben von Daten in den Tiefen- und den Farbpuffer 39, 38 zu
ermöglichen. Wenn
das Ausgangssignal der Tiefenvergleichsschaltung 33 ein
logischer Wert von 0 ist, bleiben die Schreiben-Freigabe-Eingänge des
Tiefenpuffers 39 und des Farbpuffers 38 gesperrt.
-
Die
Schaltung 33 kann beispielsweise in einer Schnittstelle
OpenGL (OpenGL ist eine eingetragene Marke) betrieben werden, wodurch
Softwarebefehle auf eine bekannte Art und Weise verwendet werden,
um Hardwareschalter zu schließen
oder zu öffnen,
indem spezifische Bits gesetzt oder gelöscht werden. Wie es in 3 gezeigt ist, verwendet
die Schaltung 30 einen Schnittstellenbefehl DepthMask, um
die Position des Schalters 37 zu steuern, und um somit
das Schreiben von Pixeldaten z in dem Tiefenpuffer 39 zu
steuern, und dieselbe verwendet einen Schnittstellenbefehl ColorMask,
um das Schreiben von Farbdaten in den Farbpuffer 38 zu
steuern. Die Schaltung 30 umfaßt zusätzlich einen Schnittstellenbefehl
DepthFunc, welcher den Betriebsmodus für die Tiefenvergleichsschaltung 33 steuert.
Während die
Schaltung 33 typischerweise die ankommenden Pixeldaten
z mit den gegenwärtigen
Pixeldaten z unter Verwendung einer Funktion, die wahr ist, wenn
die ankommenden Pixeldaten z vor den gegenwärtigen Pixeldaten z sind, vergleicht,
kann der Befehl DepthFunc den Vergleich ändern, um Funktionen, wie z.
B. "hinter", "gleich zu" "niemals bestehen" "immer
bestehen" usw. durchzuführen. In
der Tat existieren viel mehr Funktionen für DepthFunc, die zum Ausführen bei
der vorliegenden Erfindung geeignet sein werden. Ferner sollte offensichtlich
sein, daß die
Erfindung nicht durch diese spezielle Softwareimplementation begrenzt
ist, sondern daß sie,
wie es für
Fachleute offensichtlich ist, in anderer Software oder in Hardware
implementiert sein kann.
-
Die
Verdeckungsausleseschaltung 30 ist vorzugsweise in einer
Kombination von Hardware und Software implementiert. Bestimmte Merkmale der
Schaltung 30 sind andererseits vorzugsweise in Hardware
implementiert. Die logische ODER-Schaltung 24 umfaßt beispielsweise
eine Halbleiterschaltung, das Tiefenvergleichsergebnisregister 35 umfaßt ein Halbleiterregister,
und der Tiefen- und der Farbpuffer 39 und 38 umfassen
eine herkömmliche Tiefen-
und eine Farbpufferspeicherschaltung. Es sollte offensichtlich sein,
daß nicht
alle der ge nannten Komponenten in Hardware, sondern alternativ ebenfalls
in Software implementiert sein können.
-
Nachfolgend
wird der Betrieb der Verdeckungsausleseschaltung 30 bezugnehmend
auf ein Flußdiagramm 40,
das in 4 gezeigt ist,
beschrieben. In einem Schritt 41 wird das Tiefenvergleichsergebnisregister 35 gelöscht, derart,
daß es
einen logischen Wert von 0 speichert. Der Hostcomputer 22 tastet
in einem Schritt 42 die Graphikgrundelementdaten eines
Objekts, das aufbereitet werden soll, ab und bestimmt ein Begrenzungsvolumen
für das
Objekt, das Graphikgrundelemente aufweist, die das Objekt umgeben.
Die Art und Weise, auf die der Hostcomputer 22 das Begrenzungsvolumen
bestimmt, bildet keinen Teil der vorliegenden Erfindung, weshalb
jede beliebige Art und Weise verwendet werden kann. Der Hostcomputer 22 kann
beispielsweise die Graphikgrundelementdaten für den maximalen und minimalen
Wert entlang der x-Achse, den maximalen und minimalen Wert entlang
der y-Achse und den maximalen und den minimalen Wert entlang der z-Achse
abtasten. Diese sechs Werte können
dann verwendet werden, um einen Würfel. zu bilden, welcher das
Graphikgrundelement vollständig
umgibt. da ein Würfel
nicht das minimale Begrenzungsvolumen ist, kann der Hostcomputer 22 alternativ
ein Begrenzungsvolumen mit einer anderen Form oder ein Begrenzungsvolumen,
das durch mehr als eine Form definiert ist, verwenden.
-
Anschließend werden
in einem Schritt 43 die Graphikgrundelementdaten der Grundelemente,
die das begrenzte Volumen definieren, von dem Hostcomputer 22 in
die Verdeckungsausleseschaltung 30 eingegeben. In einem
Schritt 44 wird das Schreiben für sowohl den Farbpuffer 38 als
auch den Tiefenpuffer 39 gesperrt, derart, daß keine
Daten zu entweder dem Farbpuffer 38 oder dem Tiefenpuffer 39 geschrieben
werden können,
bis die Tiefenvergleichsschaltung 33 einen logischen Wert
von 1 zu den Schreiben-Freigabe-Eingängen des Farbpuffers 38 oder
des Tiefenpuffers 39 gemäß der vorliegenden Erfindung
liefert.
-
Die
Verdeckungsausleseschaltung 30 vergleicht in einem Schritt 45 die
Tiefe jedes Pixels der Graphikgrundelemente, die das Begrenzungsvolumen
definieren, mit den bereits aufbereiteten Grundelementen. In diesem
Schritt ist der Tiefenmaskenschalter 37 offen, um das Speichern
irgendwelcher z-Pixeldaten
in dem Tiefenpuffer 39 zu sperren, wobei die Farbmaskenschaltung 36 deaktiviert
ist, um das Speichern beliebiger Farbdaten in dem Farbpuffer 38 zu
sperren. Die Werte z für
die ankommenden Pixeldaten werden der Tiefenvergleichsschaltung 33 zugeführt, wobei
ihre zugeordneten Koordinaten x und y dem Tiefenpuffer 39,
um die gegenwärtigen
Pixeldaten zu adressieren, zugeführt
werden. Der Wert z für
jedes ankommende Pixel wird gegenüber dem gegenwärtigen Wert
z an der gleichen Adresse x und y in dem Tiefenpuffer verglichen.
Wenn die ankommenden Pixel nicht die gegenwärtige Tiefenvergleichsfunktion
bestehen, dann wird die Tiefenvergleichsschaltung 33 eine
logische 0 ausgeben, welche in die ODER-Schaltung 34 eingespeist
wird. Wenn andererseits das ankommende Pixel die gegenwärtige Tiefenvergleichsfunktion
besteht, dann wird die Tiefenvergleichs schaltung 33 eine
logische 1 ausgeben, welche in die ODER-Schaltung 34 eingespeist
wird. Aufgrund der Rückkopplung
von dem Tiefenvergleichsergebnisregister 35 zu der ODER-Schaltung 34 wird
der in dem Tiefenvergleichsergebnisregister 35 gespeicherte
Wert ein logischer Wert von 1 bleiben, und zwar nach dem erstmaligen Auftreten
eines Pixels, welches nicht verdeckt ist.
-
In
einem Schritt 46 liest, nachdem die Pixelwerte z für die Graphikgrundelemente,
die das gesamte Begrenzungsvolumen definieren, mit den gegenwärtigen Pixelwerten
z verglichen worden sind, der Hostcomputer 22 als nächstes den
Wert, der in dem Tiefenvergleichsergebnisregister 35 gespeichert
ist. In einem Schritt 47 bestimmt der Hostcomputer 22,
ob der gespeicherte Wert ein logischer Wert von 1 ist.
-
Wenn
der in dem Register 35 gespeicherte Wert einen logi schen
Wert von 1 aufweist, dann zeigt dies an, daß zumindest ein Pixel aus den
Grundelementen, die das begrenzte Volumen bilden, die Tiefenvergleichsfunktion
besteht. Somit werden in einem Schritt 48 alle Grundelemente,
die von dem begrenzten Volumen umgeben werden, aufbereitet.
-
Der
Schritt 48 stellt das herkömmliche Verfahren zum Vergleichen
jedes Pixels in dem Grundelement mit dem gegenwärtigen Pixel bei der gleichen Adresse
und zum Bestimmen, ob dieses Pixel sichtbar ist, dar. Während des
Schritts 48 läßt die Farbmaskenschaltung 36 die
Farbdaten zu dem Farbpuffer 38, wobei der Tiefenschalter 37 geschlossen
ist, derart, daß die
Tiefenwerte z zu dem Tiefenpuffer 39 gelangen. Für jedes
Pixel, das sichtbar ist, weist das Ausgangssignal der Tiefenvergleichsschaltung 33 einen
logischen Wert von 1 auf, und dasselbe wird zu den Schreiben-Freigabe-Eingängen des
Farb- und des Tiefenpuffers 38 und 39 geleitet,
um das Schreiben der Farbdaten bzw. der Tiefendaten zu erlauben. Nachdem
die Daten für
jedes Pixel in dem ankommenden Graphikgrundelement durch die Verdeckungsausleseschaltung 30 verarbeitet
worden ist, wiederholt das Verfahren 40 den Prozeß durch
Rücksprung
zu dem Schritt 41 und durch Löschen des Ergebnisregisters 35,
wie es gezeigt wurde. Nach dem Schritt 48 bereitet der
Hostcomputer 22 in einem Schritt 49 die r-, g-,
b- und a- oder die Index-Farbdaten und den Tiefenwert z für jedes
sichtbare Pixel auf.
-
Wenn
andererseits der in dem Register 35 gespeicherte Wert kein
logischer Wert von 1 ist, sondern ein logischer Wert von 0 ist,
dann bestimmt der Hostcomputer 22 in einem Schritt 47,
daß jedes
Pixel von den Grundelementen, die das begrenzte Volumen definieren,
verdeckt ist, und daß kein
einziges Pixel des Objekts sichtbar sein wird. In einer solchen Situation
können
alle Grundelemente, die von dem Begrenzungsvolumen begrenzt (oder
umgeben) sind, auf triviale Art und Weise zurückgewiesen werden, und es ist
keine weitere Verarbeitung für
dieselben erforderlich. Somit wird die Leistung des Graphikcomputers 20 gesteigert,
da derselbe nicht die Grundelemente eines Objekts aufbereiten muß, das vollständig verdeckt
ist, wie es durch die Verdeckungsausleseschaltung 30 bestimmt
wird.
-
Somit
kann die Geschwindigkeit des Graphikcomputers 20 mittels
der vorliegenden Erfindung wesentlich erhöht werden. Während früher die
Speicherung in dem Farb- und dem Tiefenpuffer 38 und 39 für jedes
Pixel in jedem Graphikgrundelement freigegeben oder gesperrt worden
ist, vermeidet die vorliegende Erfindung diese unnütze Verarbeitungszeit durch
schnelles Bestimmen, ob eine ganze Gruppe von Graphikgrundelementen
durch die gegenwärtig aufbereiteten
Grundelemente verdeckt sein wird. Die Bestimmung eines Begrenzungsvolumens
für ein
ankommendes Graphikgrundelement und der Vergleich der Graphikgrundelemente,
die das Begrenzungsvolumen definieren, mit den gegenwärtig aufbereiteten Grundelementen
können
viel schneller als das herkömmliche
Verfahren des Aufbereitens jedes Pixels in den ankommenden Graphikgrundelementen durchgeführt werden.
Der Wirkungsgrad und die Geschwindigkeit eines Graphikcomputers
werden daher wesentlich verbessert.
-
Der
Wirkungsgrad und die Geschwindigkeit eines Graphikcomputers werden
ebenfalls verbessert, da die Verdeckungsausleseschaltung 30 bestimmen
kann, ob eine gesamte Gruppierung von Graphikgrundelementen verdeckt
ist. Bei dem Beispiel des Automobils können die Graphikgrundelemente
derart gruppiert sein, daß die
Körperplatten die
erste anzuzeigende Gruppe ist. Da jedes Pixel in jedem der Vielzahl
von Graphikgrundelementen für den
Motor verarbeitet wird, kann der Hostcomputer 22 ein Begrenzungsvolumen
für den
Motor bestimmen und dieses Begrenzungsvolumen durch die Verdeckungsausleseschaltung 30 leiten.
Wenn der in dem Ergebnisregister 35 gespeicherte Wert eine
logische 0 ist, dann bestimmt der Hostcomputer 22, daß der ganze
Motor verdeckt ist, und daß der
Motor nicht aufbereitet werden muß. Durch Vermeiden einer sehr komplexen
Graphikgruppierung von möglicherweise Tausenden
von Grundelementen kann der Graphikcomputer 20 gemäß der Erfindung
die Menge an Verarbeitung wesentlich reduzieren und somit die Geschwindigkeit
und den Wirkungsgrad des Graphikcomputers 20 wesentlich
verbessern.