-
Die vorliegende Erfindung betrifft eine dreidimensionale
Computergraphikvorrichtung und insbesondere ein Steuergerät
zur Steuerung eines Tiefeninformationspuffers (im folgenden
als "Z-Puffer" bezeichnet), welcher zur Entfernung
unsichtbarer Ebenen in dreidimensionalen Computergraphiken dient.
-
Bei der dreidimensionalen Graphikverarbeitung unter
Verwendung eines Computers werden bei Überlappung einer Vielzahl
von Objekten unsichtbare Ebenen entfernt, um zu bestimmen,
welche Kanten und Ebenen welches Objekts sichtbar sind und um
nur sichtbare Ebenen zur Anzeige zu bringen.
Herkömmlicherweise bedient man sich verschiedener Algorithmen zur
Entfernung unsichtbarer Ebenen, wie in "Computer Graphics", J.P.
Foley/A. Vandam, S. 565-585, beschrieben. Zu diesen zählt ein
Z-Pufferalgorithmus, welcher einfach ist und in großem Umfang
verwendet wird. Beim Z-Pufferalgorithmus wird ein Z-Wert
(Tiefenwert) jedes Pixels bzw. Bildpunktes auf dem Bildschirm
im voraus in einem Speicher mit der Bezeichnung 'Z-Puffer'
gespeichert. Danach wird ein Z-Wert jedes Punktes (auf dem
Bildschirm durch x und y repräsentierte Koordinaten)
innerhalb eines Polygons berechnet, und das erhaltene
Berechnungsergebnis mit dem im Z-Puffer gespeicherten einem Punkt (x, y)
entsprechenden Z-Wert verglichen. Ist der erstgenannte Wert
kleiner als der letztgenannte, so wird ein Datum in einen
Auffrisch- bzw. Refresh-Puffer geschrieben; trifft dies nicht
zu, dann wird kein Datum eingetragen.
-
Die dem Stand der Technik zugehörige EP-A-0 215 510
beschreibt ein Steuergerät für Tiefeninformationen, welches
serielle und parallele Datenverarbeitung sowie Pipeline-
Verarbeitung umfaßt.
-
Die Fig. 1 zeigt ein Beispiel für den Aufbau eines
herkömmlichen Verarbeitungssystems mit einem Z-Puffer. Die Fig. 2
ist eine Impulsübersicht des zeitlichen Operationsablaufs
dieses Systems. In der Fig. 1 speichert ein I-Puffer
(Helligkeitsdatenpuffer) 31 einen I-Wert (Helligkeitswert) jedes
Punktes auf einem Bildschirm. Normalerweise wird ein Dual-
Port-(2-Port)-Speicher als I-Puffer 31 verwendet. Die im I-
Puffer gehaltenen Daten werden mit hoher Geschwindigkeit aus
seinem seriellen Anschluß bzw. Port ausgelesen. Die
Auslesedaten werden sequentiell in Videosignale gewandelt und auf
einem Bildanzeigegerät 32, z.B. einem CRT-Display bzw. einem
Bildschirmgerät, zur Anzeige gebracht. Eine Steuer-LSI 33
berechnet von jedem Punkt eines Objekts die Adresse (x, y)
(x, y) und Z (x, y). Die Adresse (x, y) wird sowohl an den I-
Puffer 31 als auch an den Z-Puffer 34 übergeben. Der I-Wert
wird in den I-Puffer eingegeben. Wird aufgrund des
Vergleichsergebnisses Z (x, y) (wird später beschrieben) eine
Einschreiboperation für notwendig erachtet, so wird ein neuer
Z-Wert in den Z-Puffer 34 eingetragen. Auf diese Weise
erfolgt für den I-Puffer 31 und den Z-Puffer 34 eine
Einschreibsteuerung. Die vom Steuer-LSI 33 durchgeführte
Verarbeitung umfaßt vier Grundzyklen. Im ersten Zyklus wird eine
Berechnung der Adresse I, Z eines gegebenen Punktes (xii,
yii) (i = 0, 1, ... ) auf dem Bildschirm ausgeführt. Im
zweiten Zyklus wird die Adresse an den Z-Puffer 34 übergeben und
ein Wert Z' (xi, yi) entsprechend dem obigen (xi, yi) wird
ausgelesen. Im dritten Zyklus wird der ausgelesene Wert Z'
(xi, yi) mit dem obigen berechneten Z-Wert Z (xi, yi)
verglichen. Falls Z' (xi, yi) > Z (xi, yi), wird angenommen, daß
Z (xi, yi) näher an der Frontseite liegt (d.h. daß seine
Tiefe geringer ist). Somit werden im vierten Zyklus der I-
und der Z-Wert des Punktes (xi, yi) in entsprechender Weise
in den I-Puffer 31 und den Z-Puffer 34 geschrieben.
-
Bei der obigen Verarbeitung ist jedoch ein Zyklus zum
Auslesen des Z-Wertes erforderlich, was einen Nachteil
dahingehend bedeutet, daß die Verarbeitungsgeschwindigkeit
verringert wird.
-
Die vorliegende Erfindung, wie beansprucht, hat sich zur
Aufgabe gemacht, das Problem der durch das Auslesen des Z-Werts
bedingten Verringerung dem Verarbeitungsgeschwindigkeit zu
lösen. Die Aufgabe der Erfindung ist die Bereitstellung eines
Steuergeräts für einen Tiefeninformationspuffer, welches die
durch das Auslesen des Z-Werts bedingte Verringerung der
Verarbeitungsgeschwindigkeit verhindern kann.
-
Das Steuergerät für einen Tiefeninformationspuffer setzt
eInen 2-Port-Speicher mit einem wahlfreien Port und einem,
seriellen Port als einen Tiefeninformationspuffer zum
Entfernen unsichtbarer Ebenen in dreidimensionalen
Computergraphiken ein. Ein Z-Wert wird aus dem seriellen Port
ausgelesen und in eine integrierte Steuerschaltung eingegeben,
wodurch eine Pipelineverarbeitung vorliegt. Wenn aufgrund der
Verarbeitung Einschreiben erforderlich ist, wird der intern
berechnete Z-Wert über den wahlfreien Port des
2-Port-Speichers eingeschrieben.
-
Demzufolge können bei dem 2-Port-Speicher Einschreiben und
Auslesen gleichzeitig erfolgen. Obwohl eine kurze
Einstellzeit für die serielle Eingabe des Z-Wertes in die integrierte
Steuerschaltung benötigt wird, kann die Entfernung
unsichtbarer Ebenen an entsprechenden Punktes des Bildschirms im
wesentlichen in einem einzigen Zyklus vorgenommen werden. Die
Verarbeitungsgeschwindigkeit kann deshalb deutlich verbessert
werden.
-
In den beiliegenden Zeichnungen zeigen:
-
Fig. 1 eine Ansicht zur Verdeutlichung des Aufbaus eines
herkömmlichen Steuergeräts für einen
Tiefeninformationspuffer;
-
Fig. 2 eine Impulsübersicht zur Verdeutlichung der
Funktionsweise des in der Fig. 1 dargestellten Geräts;
-
Fig. 3 eine Ansicht zur Verdeutlichung des Aufbaus eines
erfindungsgemäßen Ausführunggbeispiels eines
Steuergeräts für einen Tiefeninformationspuffer;
und
-
Fig. 4 eine Impulsübersicht zur Verdeutlichung der
Funktionsweise des in der Fig. 3 dargestellten Geräts.
-
Nunmehr wird eine Ausführungsform der voiliegenden Erfindung
unter Bezugnahme auf die beiliegenden Zeichnungen
beschrieben.
-
In einer in der Fig. 3 dargestellten dreidimensionalen
Graphikverarbeitungsvorrichtung speichert ein I-Puffer
(Helligkeitsinformationspuffer) 1 I-Werte (Helligkeitswerte)
entsprechender Punkte auf einem Bildschirm. Ein 2-Port-Speicher
mit einem wahlfreien Port 21 und einem seriellen Port 22 ist
als I-Puffer 1 eingesetzt. Ein Z-Puffer
(Tiefeninformationspuffer) 2 speichert Z-Werte entsprechender Punkte auf dem
Bildschirm. Ein 2-Port-Speicher mit einem wahlfreien Port 23
und einem seriellen Port 24 ist als Z-Puffer 2 eingesetzt. Es
ist wünschenswert, dar die wahlfreien Ports 21 und 23 jedes
2-Port-Speichers einen schnellen Zugriff (schnellen
Seitenzugriff) gestatten, da im Normalfall die Verarbeitung eines
Vollbildschirms mit dreidimensionaler Graphik in horizontaler
Richtung auf dem Bildschirm und der Speicherzugriff
sequentiell spaltenweise in einer Zeile erfolgt. Eine Steuer-LSI 3
liefert verschiedene Steuersignale an die Puffer 1 und 2 und
berechnet die Adresse (x, y), I (x, y) und Z (x, y) jedes
Punktes eines Objekts. Die Steuer-LSI 3 liefert die Adresse
über ein Register 4 sowohl an den I-Puffer 1 als auch an den
Z-Puffer 2 und I (x, y) über ein Register 5 an den wahlfreien
Port 21 des I-Puffers 1. In der Steuer-LSI 3 wird Z (x, y)
über einen Selektor 12 an einen Eingangsanschluß eines
Komparators 13 gelegt und mit dem anderen Eingang verglichen
(an späterer Stelle beschrieben). Wenn das Vergleichsergebnis
des Komparators 13 ein notwendiges Einschreiben bedeutet, so
wird der intern berechnete Z-Wert über ein Register 6 an den
wahlfreien Port 23 des Z-Puffers 2 gelegt. Außerdem liefert
die Steuer-LSI 3 ein Einschreib-Steuersignal über ein
Register 7 an den I-Puffer 1 und den Z-Puffer 2. Ein aus dem
seriellen Port 24 des Z-Puffers 2 ausgelesener Z-Wert wird
seriell in die LSI 3 eingegeben, und der Z-Wert wird über
interne zweistufige Register 8 und 9 an den obigen anderen
Eingang des Komparators 13 geliefert, wodurch der Z-Wert um
eine vorgegebene Zeitspanne verzögert an den Komparator 13
geliefert wird. Im folgenden wird die durch die beiden
Register 8 und 9 ausgeführte Verzögerungsoperation als Pipeline-
Operation bezeichnet. Der Komparator 13 vergleicht die Z-
Werte der entsprechenden Bildschirmpunkte, welche zuerst im
Z-Puffer 2 abgelegt waren, und die von der Steuer-LSI 3
berechneten Z-Werte sequentiell. Wenn ein Z-Wert des ersten
Punktes auf dem Bildschirm vom Komparator 13 verglichen wird,
wählt der Selektor 12 einen über das Register 6 eingegebenen
Z-Wert und übergibt ihn dem Komparator 13. Wenn die Z-Werte
der nachfolgenden Punkte vom Komparator 13 verglichen werden,
wählt der Selektor 12 Z-Werte, welche in der LSI 3 berechnet
und nicht über das Register 6 eingegeben sind, und schickt
sie sequentiell an den Komparator 13.
-
Eine Videosignalwandlerschaltung 10 wandelt den vom seriellen
Port der I-Puffers 1 ausgelesenen I-Wert in ein Videosignal
und schickt dieses an ein Bildanzeigegerät (z.B. CRT-Display
bzw. Bildschirmgerät) 11.
-
Im Fall des 2-Port-Speichers erfordert das Auslesen aus dem
seriellen Port einen sog. internen Datenübertragungszyklus,
in welchem einer Zeile entsprechende Daten von einer
Speicherzellenmatrix an ein serielles
Konvertierungs-Schieberegister übertragen werden. Nach der Datenübertragung werden
die Daten aus dem seriellen Port seriell in inkrementaler
Weise von der vorgegebenen Adresse synchron mit einem
seriellen Port ausgelesen.
-
Die Funktionsweise der obenbeschriebenen dreidimensionalen
Verarbeitungsvorrichtung wird nunmehr anhand der
Impulsübersicht gemäß Fig. 4 erläutert.
-
Die LSI 3 liefert ein - (row address strobe -
Zeilenadreßtakt)- und ein - (column address strobe -
Spaltenadreßtakt)-Signal (beide in der Fig. 3 nicht dargestellt) an die
Puffer 1 und 2. Wenn das -Signal auf einem aktiven Pegel
(niedrigen Pegel) und ein / - (data transfer
control/output enable - Datenübertragungssteuer-/Ausgangsfreigabe)-
Signal auf einem aktiven Pegel (niedrigen Pegel) liegen, wird
die Operation der seriellen Lieferung eines seriellen
Ausgangs vom Z-Puffer 2 an die LSI 3 gestartet. Präziser
ausgedrückt, innerhalb des Z-Puffers 2 wird eine interne
Übertragungsoperation abgewickelt. Das Datum der Adresse A0
(welches real sowohl die Zeilen- als auch die Spaltenadresse
enthält), befindet sich an der vordersten Vordergrund-
Position.
Nachdem das / -Signal in den nichtaktiven Zustand
gesetzt worden ist, werden Daten vom Z-Puffer 2 seriell immer
dann an die LSI 3 geliefert, wenn die Spaltenadresse synchron
mit dem seriellen Steuertakt SC hochgezählt wird. Das
serielle Eingangsdatum ZH , welches die zweistufigen Register
8 und 9 durchlaufen hat, wird in der LSI 3 mit dem intern
berechneten Wert Z verglichen. Ist ZH größer als Z, wird ein
WE- (write enable - Schreibfreigabe)-Signal in den aktiven
Zustand gesetzt und der I-Wert Iout, welcher intern
berechnet worden ist und im Register 5 gehalten wird, sowie der
Z-Wert Zout, welcher im Register 6 gehalten wird, werden im
nächsten Zyklus nach Adresse A0 des I-Puffers 1 und des Z-
Puffers 2 geschrieben. Ist ZH kleiner als Z, wird die
Schreiboperation nicht ausgeführt.
-
Eine Reihe von aus dem seriellen Port 24 des Z-Puffers 2
ausgelesenen Z-Werten wird in die LSI 3 eingegeben und der erste
Vergleich der Z-Werte in der LST 3 ausgeführt. Bevor die
Einschreiboperation der Z-Werte auf Basis eines
Vergleichsergebnis im Z-Puffer 2 nicht abgeschlossen ist, führt die LSI 3
keine Berechnung der nächsten Adresse, der I- oder der Z-
Werte aus. Nach Abschluß der ersten Schreiboperation beginnt
die interne Berechnung, und die Operationen der
Z-Werteingabe, des Vergleichs und Schreibens werden auf Pipelineart
abgewickelt. Die seriellen Daten werden aus dem seriellen
Port 24 des Z-Puffers 2 ausgelesen, und dann erfolgt im Z-
Puffer 2 eine Vorbereitung zum Auslesen der nächsten Daten
aus dem seriellen Port 24, bevor der erste Z-Wert von der LSI
3 ausgegeben wird.
-
Bei Änderung der Ausleseseite im Z-Puffer 2 und Rücksetzen
der Zeilen- und Spaltenadresse werden die obengenannten
pipelineartigen Operationen in den Wartezustand versetzt. Die
Änderung der Ausleseseite und das Rücksetzen der Zeilen- und
Spaltenadresse erfordern einige Zyklen. Der durch das
Rücksetzen bedingte Zeitverlust ist im Falle der Daten in einer
in Querrichtung erstreckten Zone (z.B. im Falle des Zugriffs
auf Gaanzseitendaten) vernachlässigbar, und man geht davon
aus, daß die allgemeine Verarbeitung auf Basis der
Grundtaktzyklen der LSI abgewickelt wird.
-
Die obige Ausführungsform kann mit dem Stand der Technik wie
folgt verglichen werden.
-
Eine für das einmalige Lesen/Schreiben von Daten aus bzw. in
einen Speicher (Puffer) erforderliche Zyklusdauer deckt sich
nicht immer mit einer Zyklusdauer für eine
Verarbeitungsoperation (Berechnung, Einschreiben) einer LSI. So ist
beispielsweise eine für einen Pufferzyklus erforderliche
Zeitspanne etwa um das Dreifache länger als eine für einen LSI-
Zyklus erforderliche Zeitspanne. Unter der Annahme. daß diese
Zeitspannen, ausgedrückt als Grundzyklen der LSI, bei der
herkömmlichen Vorrichtung in etwa gleich sind, ist eine Dauer
von acht Zyklen beim Vergleichen und erneutem Einschreiben
des Z-Wertes eines Punkts erforderlich. Demgegenüber sind
zwar beim obigen Ausführungsbeispiel mehrere Zyklen in einer
Vorbereitungsphase erforderlich, in der Daten aus dem
seriellen Port 24 im Z-Puffer 2 ausgelesen werden, der Vergleich
der Z-Werte entsprechender Punkte erfolgt jedoch durch den
Komparator 13 auf Basis des Grundzyklus der LSI. Aus diesem
Grund ist die Betriebsgeschwindigkeit der Vorrichtung gemäß
der obigen Ausführungsform maximal etwa acht mal und im
Normalzustand etwa 4 oder 5 mal zu hoch wie die der
herkömmlichen Vorrichtung.
-
Wie oben beschrieben, kann mit dem Steuergerät zur Steuerung
eines Tiefeninformationspuffers die Verringerung der
Verarbeitungsgeschwindigkeit aufgrund des Auslesens der Z-Werte
verhindert und die Entfernung unsichtbarer Ebenen in
dreidimensionalen Computergraphiken mit hoher Geschwindigkeit bei
verbessertem Echtzeitverhalten ausgeführt werden.