-
HINTERGRUND DER ERFINDUNG
-
1. Gebiet der Erfindung
-
Diese
Erfindung bezieht sich allgemein auf Computergraphik und insbesondere
auf computergenerierte Anzeigebilder mit verbessertem Realismus.
-
2. Beschreibung des Standes
der Technik
-
Computer
werden dazu verwendet, Welten mit „virtueller Realität" darzustellen, die
nirgendwo sonst existieren, als in einem dreidimensionalen Raum,
der im Computer gespeichert ist. Objekte können in der Welt der virtuellen
Realität „existieren" und sich im Koordinatenraum
der virtuellen Realität
bewegen. Solche Welten sind für
Simulationen von Ereignissen in der realen Welt äußerst nützlich, wenn es nicht praktikabel
ist, reale Objekte zu verwenden, wie z.B. bei Laboruntersuchungen
und Simulationen von Ereignissen, und sind zu Unterhaltungszwecken, wie
z.B. für
Computerspiele und kinematographische Werke (Animation), nutzbar.
Auf dem Gebiet der Computergraphik wird danach gestrebt, Bilder
bereitzustellen, welche die Welt der virtuellen Realität eines
Computers mit größerem Realismus
darstellen.
-
Ein
Computeranzeigebild ist als eine Kombination von Bildelementen spezifiziert,
die jeweils als Pixel bezeichnet werden. Die Pixel in einem Anzeigebild
spezifizieren eine Kombination von roter, blauer und grüner Farbinformation,
in ganz ähnlicher
Weise, wie ein herkömmliches
Fernsehbild spezifiziert wird. Jedes Pixel ist Daten zugeordnet,
welche die Farbintensitätsinformation
für jedes
rote, blaue und grüne Pixel
des Bildes spezifizieren. Die Farbintensitätsdaten werden typischerweise
mit einem 8-Bit-Datenwort
dargestellt. Die meisten Simulationen virtueller Realität stellen
Objekte in einer Szene als Datenobjekte dar, die ihnen zugewiesene
Merkmale aufweisen, wie z.B. Form, Größe, Position und Farbe. Wenn ein
Objekt auf dem Computerbildschirm gezeichnet oder gerendert werden
soll, bestimmt ein Graphikprozessor eine geeignete Mischung von
roter, blauer und grüner
Pixelinformation zur Darstellung des Bildes und erzeugt Videoinformation
für die
korrekte Mischung aus roter, blauer und grüner Farbe für jedes Pixel. Anzeigegeräte können unterschiedlich
große Pixel
aufweisen, mit denen Bilder erzeugt werden. Beispielsweise können viele
Computer-Flachbildschirme einzelne kreisförmige Pixel aufweisen, die jeweils
einen Durchmesser von etwa 0,29 mm (0,0116 Inch) haben.
-
Ein
Computer-Graphikprozessor oder -Anzeigeprozessor stellt eine Verarbeitung
zum Rendern von Bildern für
ein Rechengerät
bereit, so dass Bilder, die von einem Computeranwendungsprogramm oder
einer anderen Quelle computergenerierter Bilder erzeugt werden,
richtig dargestellt werden. Die Computergraphik umfasst die Erzeugung,
Speicherung und Manipulation von Modellen und Bildern von Objekten
auf der Grundlage einer Bildsynthese der Objekte aus Computer-basierenden
Modellen. Die Erzeugung, Speicherung und Manipulation der Objekte
kann in Echtzeit erfolgen und ein interaktiver Prozess sein, der
einen Computerbenutzer mit einem Eingabegerät, wie z.B. einer Tastatur,
einer Bildschirmmaus, einem Controller oder einem Touch-Screen-Anzeigefeld,
involviert. Ein wichtiger Teil des Prozesses zum Rendern von Bildern
umfasst die Bildverarbeitung, bei der die Position und die Bewegung
von Objekten in den Bildern im zweidimensionalen und dreidimensionalen
Raum sorgfältig
reproduziert werden.
-
Beispielsweise
speichert ein Graphikprozessor Positionsinformation für alle Pixel
in einer Szene, welche die Punkte eines Objektes in der computergezeichneten
Szene darstellen, um zu bestimmen, welche Objekte dargestellt werden
und was im gerenderten oder gezeichneten Bild zu sehen sein wird.
Ein Teil der Positionsinformation ist in Form eines Z-Puffers für das Bild
abgelegt. Der Z-Puffer für
ein Bild oder einen Frame (Rasterbild) einer Szene ist eine Gruppe
von Datenwerten, nämlich
einem Datenwert für
jedes Pixel des Bildes, ausgehend von Koordinaten, welche die Position
eines Objektes in der Szene bestimmen. Dies bedeutet, dass die Z-Pufferdaten dazu
verwendet werden, vorzugeben, wie weit ein Pixel eines Objektes
von der Kameraperspektive entfernt ist. Somit gibt es einen Z-Pufferdateneintrag
für jedes
Pixel einer Bildanzeige, und der Graphikprozessor speichert die
Daten, welche die Position des Pixels im Computermodell angeben.
-
Jeder
Z-Pufferdatenpunkt kann durch ein Datenwort, wie z.B. ein 32-Bit-Datenwort, dargestellt werden,
siehe z.B. Abschnitt 1.5, „Hidden
surface removal algorithm" auf
S. 22 in Advanced Animation and Rendering Techniques von A. Watt
und M. Watt (ACM Press 1992). Die Wiedergabetreue und Genauigkeit
des Computerbildes hängen
teilweise von der Fähigkeit
des Graphikprozessors ab, die notwendigen mathematischen Berechnungen
bezüglich
der im Z-Puffer eingebetteten Objektpositionsinformation durchzuführen, und
kommerziell erhältliche
Graphikprozessoren werden hinsichtlich ihrer mathematischen Rechenfähigkeiten
und anderer Bildverarbeitungsleistungen stetig verbessert.
-
Computergezeichnete
Bilder virtueller Realität
haben typischerweise ein anderes Aussehen als reale Bilder (wie
z.B. Fotografien oder Videobilder) von tatsächlichen Objekten. Einer der
Gründe
für die Diskrepanz
zwischen Computerbildern virtueller Realität und Bildern von tatsächlichen
physikalischen Objekten besteht darin, dass Bilder virtueller Realität die erwartete
Feldtiefeninformation nicht realistisch zeigen. Im Allgemeinen bezieht
sich die Feldtiefe auf den Grad der Veränderung von Einzelheiten, den
das menschliche Auge für
Objekte in einem Bild wahrzunehmen erwartet, abhängig davon, ob sich ein Objekt aus
der Perspektive des Betrachters in der Nähe oder in großer Entfernung
befindet. Beispielsweise werden Objekte in einer Fotografie, die
aus der Perspektive des Betrachters weiter entfernt sind, weniger
erkennbare Bilddetails aufweisen und weniger deutlich sein, als
Objekte, die dem Betrachter näher sind.
Somit haben weiter entfernte Objekte ein „verschwommenes" Aussehen und sind
nicht so scharf und klar wie nahe Objekte.
-
Einer
der Gründe
für das „cartoonartige" Aussehen der meisten
Bilder virtueller Realität
besteht darin, dass nahe Objekte in den Bildern typischerweise nicht
schärfer
sind und keine weiteren Einzelheiten aufweisen, als weiter entfernte
Objekte, und dass weiter entfernte Objekte nicht verschwommener
aussehen als nahe Objekte. Mit anderen Worten, die Feldtiefe ist
im gesamten Bild virtueller Realität konstant. Dies steht im Gegensatz
zur Erscheinung von Bildern der „realen Welt". Somit entsteht
ein Cartoon-Aussehen, wenn erkennbare Einzelheiten eines Objektes
sich nicht in der erwarteten Weise verändern, wenn das Objekt im Bild
näher oder
weiter weg ist. Ein realistischeres Aussehen würde es erfordern, dass nahe
Objekte in mehr Einzelheiten und schärfer zu sehen sind, als entferntere
Objekte.
-
Es
wurden einige Techniken verwendet, um verbesserte Feldtiefeninformation
in Computerbildanzeigen bereitzustellen. Beispielsweise wird ein
stochastisches Sampling-Verfahren beim diffusen Raytracing verwendet,
um Feldtiefeninformation in einem vorgerenderten, computergenerierten
Bild zu integrieren. Ein anderes Nachbearbeitungsverfahren verwendet
die Daten der Pixelintensität
und der Z-Pufferbildtiefe, um die Größe und Intensitätsverteilung
des Zerstreuungskreises für
jeden Bildpunkt zu bestimmen, wenn er sich auf seinen Z-Pufferwert
und die verwendete Linsenapertur bezieht. Die Intensität jedes
Punktes im Ausgabebild wird als gewichtetes Mittel der Intensitäten in den
Zerstreuungskreisen berechnet, die sich im jeweiligen Punkt überlappen. Dieses
Verfahren wird von Potmesil und Chakravarty beschrieben, worauf
Bezug genommen wird in Computer Graphics: Principles and Practice,
zweite Auflage in C, von J. Foley et al. (Addison-Wesley Publishing
Company, Inc., 1996) in Abschnitt 16.10 auf den Seiten 774–775. Diese
Verfahren sind jedoch Nachbearbeitungsverfahren und werden nicht
dazu verwendet, Bilder in einem Echtzeitprozess zu rendern. Damit
sind sie nicht zur interaktiven Verwendung geeignet.
-
Die
WO 9848381 beschreibt ein Verfahren, bei dem ein oder mehrere monokulare
Anhaltspunkte aus einem Originalbild extrahiert und kombiniert werden,
um die Tiefenwirkung zu verstärken.
Ein Originalbild wird gewonnen und in eines oder mehrere Objekte
segmentiert. Die Objekte werden als entweder im Vordergrund oder
im Hintergrund liegend identifiziert, und es wird ein Objekt von
Interesse identifiziert. Dann werden ein oder mehrere Tiefen-Anhaltspunkte, einschließlich Schattierung,
Helligkeit, Unschärfe
und Okklusion, aus dem Originalbild extrahiert. Die Tiefen-Anhaltspunkte
können
in Form eines oder mehrerer Zwischenbilder vorliegen, die eine verbesserte
Tiefenwirkung aufweisen. Die Tiefen-Anhaltspunkte werden dann kombiniert
oder angewandt, um ein Bild mit verbesserter Tiefenwirkung zu erzeugen.
-
Aus
der obigen Erörterung
sollte ersichtlich sein, dass ein Bedarf an realistischen, computergezeichneten
Bildern mit verbesserter Feldtiefeninformation besteht. Die vorliegende
Erfindung deckt diesen Bedarf.
-
ZUSAMMENFASSUNG
DER ERFINDUNG
-
Die
vorliegende Erfindung ist im beigefügten Verfahrensanspruch 1,
Systemanspruch 10 und Programmanspruch 20 dargelegt;
sie stellt ein Anzeigebild mit verbesserter Feldtiefendarstellung
einer dreidimensionalen Szene bereit, indem ein scharfes Bild der
Szene, das einer fokussierten Darstellung entspricht, mit einer
unscharfen Bilddarstellung der Szene kombiniert und dann eine Alpha-Mischung
zwischen den scharfen und unscharfen Bildern erzeugt wird, indem
das scharfe und das unscharfe Bild entsprechend den Z-Pufferdaten
kombiniert werden, die üblicherweise
von Graphikprozessoren zum Entfernen verdeckter Flächen verwendet
werden. Auf diese Weise werden die Bilddaten aus dem Z-Puffer als
Alphakanal verwendet und mit Farbkanaldaten des scharfen und des
unscharfen Bildes gemischt, um ein Alphakanaldatenbild (RGBA-Bild)
mit Feldtiefeninformation zu erzeugen. Dies ergibt eine realistischere Bilddarstellung
der Szene, die für
Objekte in einer Entfernung schärfer
und weniger deutlich für
Objekte in einer anderen Entfernung ist, und mit weniger Sättigung
in den Hintergrundbereichen des Bildes.
-
Andere
Merkmale und Vorteile der vorliegenden Erfindung ergeben sich aus
der nachfolgenden Beschreibung bevorzugter Ausführungsformen, die beispielshalber
die Prinzipien der Erfindung veranschaulichen.
-
KURZE BESCHREIBUNG DER
ZEICHNUNGEN
-
1 ist
ein Computeranzeigebild einer Szene, das ein unendlich scharfes
Bild zeigt, wie es durch einen Graphik-Rendering-Prozeß des Computers
erzeugt werden kann;
-
2 ist
ein Computeranzeigebild der Szene aus 1, welches
eine 8-Bit-Darstellung
von Z-Pufferdaten für
die Szene zeigt;
-
3 ist
ein Computeranzeigebild der Szene aus 1, welches
eine unscharfe Bildversion der unendlich scharfen Szene der 1 zeigt;
-
4 ist
Computeranzeigebild der unendlich scharfen Szene auf 1,
welches eine Alpha-Mischung des scharfen Bildes aus 1 und
des unscharfen Bildes aus 3 unter
Verwendung der Z-Pufterbilddaten aus 2 als Alphakanal
zeigt;
-
5 ist
eine graphische Darstellung der Mischung des unendlich scharfen
Bildes aus 1 und des unscharfen Bildes
aus 3 unter Verwendung der Z-Pufferbilddaten aus 2 zur
Alpha-Mischung;
-
6 ist
ein Computeranzeigebild der Szene aus 1, welches
ein entsprechendes Z-Puffer-Umkehrbild zeigt;
-
7 ist
ein Computeranzeigebild der Szene aus 1, welches
das Ergebnis der Kombination des unendlich scharfen Bildes aus 1 mit
dem unscharfen Bild aus 3 zeigt, wobei die Z-Puffer-Umkehrbilddaten
aus 6 als Alphakanal verwendet werden;
-
8 ist
ein 8-Bit-Z-Pufferbild, dass zwischen den Bildern aus 2 und 6 liegt;
-
9 ist
ein unscharfes Schwarzweiß-Bild (nichtfarbiges
Bild), das durch ein Farbkanal-Kopierverfahren erzeugt wird, bei
dem eine Farbe des unscharfen Bildes aus 3 auf sich
selbst kopiert wird, um das Bild aus 9 zu erzeugen;
-
10 ist
ein Bild mit verringerter Sättigung, das
durch Kombination von 1 mit 9 erzeugt wird;
-
11 ist
ein Blockdiagramm eines Computersystems und einer Computeranzeige,
mit denen die in den 1 bis 10 gezeigten
Bilder erzeugt werden können;
-
12 ist
ein detailliertes Blockdiagramm des in 11 dargestellten
Computersystems;
-
13 ist
ein detailliertes Blockdiagramm einer Ausführungsform eines Computersystems
zur Anzeige von gemäß der vorliegenden
Erfindung erzeugten Bildern;
-
14 ist
eine Darstellung eines beispielhaften Anzeigepixels eines Computersystems,
das gemäß der vorliegenden
Erfindung gebaut ist, wie z.B. die in den 11, 12 und 13 gezeigten Systeme;
-
15 ist
eine Darstellung eines einzigen Z-Puffer-Eintrags der in den 11, 12 und 13 dargestellten
Computersysteme;
-
16 ist
eine Darstellung der Frame-Buffer-Umgebung für die Anzeigegeräte der in
den 11, 12 und 13 dargestellten
Computersysteme, und
-
17 ist
ein Flussdiagramm, das die von den Computersystemen nach den 11 bis 13 durchgeführte Verarbeitung
zur Erzeugung der Bilder mit verbesserter Feldtiefeninformation
gemäß der vorliegenden
Erfindung darstellt.
-
DETAILLIERTE
BESCHREIBUNG
-
Die
vorliegende Erfindung wird im Zusammenhang mit einer beispielhaften
Anzeigeumgebung beschrieben, die herkömmliche Computeranzeige-Farbmodelle zur Darstellung
von Szenen verwendet. Die beispielhafte Umgebung wird lediglich
zu Beschreibungszwecken verwendet. Die Erfindung soll nicht auf
diese beispielhafte Umgebung beschränkt sein. Der Fachmann wird
verstehen, dass die Einzelheiten der Beispielsumgebung auf andere
Graphikverarbeitungsumgebungen angewandt werden können, ohne
von den Lehren dieser Erfindung abzuweichen.
-
1 ist
ein Computeranzeigebild einer computergenerierten Szene, das ein
unendlich scharfes Bild zeigt, wie es durch einen herkömmlichen
Computergraphik-Rendering-Prozess erzeugt werden kann. Es sei angemerkt,
dass 1 ein Bild einer Treppenszene zeigt, das unendlich
scharf und fokussiert ist, so dass die Treppen im Vordergrund (dem
Betrachter im Bild am nächsten)
genauso scharf sind, wie die Treppen im Hintergrund (weiter weg
vom Betrachter). Gleichermaßen
sind die Säulen
in der Szene von Nahem, d.h. im Vordergrund der Szene, genauso
scharf wie von weiter weg. Dies ist charakteristisch für viele
computergerenderte Bilder und führt
zu einem Aussehen, das als „cartoonartig" charakterisiert
ist.
-
Insbesondere
weist eine typische Animationsszene oder ein anderes computergezeichnetes Bild
eine unendliche Schärfe
auf, obwohl ein fotografisches Bild (und was mit der tatsächlichen
Sehkraft zu sehen ist) typischerweise keine unendliche Schärfe aufweist.
Die vorliegende Erfindung kann ein realistischeres Bild erzeugen,
wobei keine weitere visuelle Information als das ursprünglich unendlich
scharte Bild verwendet werden, so dass ein gemäß der Erfindung erzeugtes Bild
Feldtiefeninformation enthält und
einen sich verändernden
Fokus oder eine sich verändernde
Schärfe
von Objekten in der Szene zeigen kann, wobei die Veränderung
des Fokus vom Bildabstand von Objekten in der Szene zum Betrachter
abhängt.
Auf diese Weise können
einzelne Bilder aus einer Sequenz von Bildern verarbeitet werden, um
eine genaue Feldtiefen-Bildverarbeitung hinzuzufügen. Somit kann eine Sequenz
von Animationsszenen nacheinander so verarbeitet werden, dass eine gesamte
Animationssequenz ein realistischeres Aussehen bekommen kann. Zusätzlich kann
die erfindungsgemäße Bildverarbeitung,
wie weiter unten beschrieben, in einer Echtzeit-Rendering-Umgebung durchgeführt werden,
was die interaktive Graphikverarbeitung mit verbesserten Feldtiefen-Darstellungen unterstützt.
-
2 ist
ein Computeranzeigebild der Szene aus 1, das eine
8-Bit-Darstellung
von Z-Pufferdaten für
die Szene zeigt. Wie zuvor erwähnt,
werden die meisten Computergraphikanzeigen dreidimensionaler Objekte
in einer Welt virtueller Realität mittels
eines Z-Pufferdatenspeichers gerendert, der die Entfernung jedes
Objektes in der Welt virtueller Realität vom Betrachter oder die Kameraperspektive verfolgt.
Beispielsweise zeigt 2 Z-Pufferdaten, bei denen jedes
Pixel im Bild umso dunkler gemacht wird, je größer die Entfernung zum Benutzer
(Kameraperspektive) wird. Damit sind nahe Objekte heller und entfernte
Objekte dunkler. Die Z-Pufferdaten umfassen Positionsinformation
für Objekte
in der Szene. Solche Daten werden typischerweise mit einer Auflösung gespeichert,
die der Rechenleistung des Graphikprozessors entspricht, der oft
eine 64-Bit- oder sogar eine 128-Bit-Rechenleistung aufweist. Wie weiter
unten beschrieben, sieht die vorliegende Erfindung die Verwendung
der Z-Pufferdaten
zur Verarbeitung von Pixeldaten vor, die typischerweise mit einer
Videoanzeigeauflösung
von acht Bit pro Pixel gespeichert sind. Die vorliegende Erfindung
eignet sich zur Verwendung mit einer großen Vielzahl von Rechenplattformen,
einschließlich
Spielkonsolen, PCs und Workstations. Eine außerordentliche Menge an Rechenleistung
ist daher nicht notwendig, um die Erfindung auf einer Rechenplattform
zu implementieren.
-
3 ist
ein Computeranzeigebild der Szene aus 1, welches
ein unscharfes Bild der Szene aus 1 zeigt. 3 kann
lediglich ausgehend von Daten, welche die Szene aus 1 darstellen,
erzeugt werden. Das unscharfe Bild aus 3 kann z.B.
durch ein Verfahren, das als MIP-Mapping bezeichnet wird, oder durch
Verschieben des scharfen Bildes auf sich selbst mit einer vorbestimmten
Verschiebung erzeugt werden. Beispielsweise kann das unscharfe Bild
durch einen Oft-Screen-Kopierprozess erzeugt werden, der das scharfe
Bild mit einem Versatz von einem Pixel sowohl in der horizontalen als
auch in der vertikalen Richtung auf sich selbst kopiert. Andere
Mittel zum Bereitstellen eines unscharfen Bildes werden dem Fachmann
einfallen: Beispielsweise umfasst der MIP-Mapping-Vorgang ein Texture-Mapping-Verfahren, bei dem
ein Graphikprozessor mehrere Kopien (MIP-Maps) einer Original-Zeichnungsstruktur
für ein
Objekt in einer Szene mit verschiedenen Stufen von Detail erzeugt
und dann entsprechend der Entfernung des Betrachters zum Objekt
eine MIP-Map auswählt.
-
Nachdem
das scharfe Bild (1) und das unscharfe Bild (3)
für die
zu verarbeitende Szene erhalten wurden, werden die üblicherweise
vom Graphikprozessor des Computeranzeigesystems verwendeten Z-Pufferdaten
genutzt. Wie zuvor erwähnt,
wird der Z-Puffer üblicherweise
in einer Computer-Bildbearbeitungsumgebung
zum Entfernen verdeckter Flächen
verwendet, was auch als Bestimmung sichtbarer Flächen bezeichnet wird. Der Z-Puffer
enthält
Abstandsdaten für
jedes Pixel eines zu rendernden Bildes. Das Entfernen verdeckter
Flächen
umfasst beim Rendern eines Objektes in einer computergenerierten
Szene die Feststellung, ob ein Punkt auf dem Objekt relativ zum
Betrachter jeweils an einem Bildpixelort liegt, der weiter entfernt
ist, als der aktuelle Abstand für
dieses Pixel im Z-Puffer. Wenn ein Punkt auf dem Objekt weiter vom
aktuellen Z-Pufferwert für
diesen Pixelort entfernt ist, dann ist dieser Objekt-Pixelpunkt
im gerenderten Bild nicht sichtbar und wird vom Graphikprozessor
nicht gezeichnet.
-
Das
Z-Puffer-Verarbeitungsverfahren zum Entfernen verdeckter Flächen ist
beispielsweise in Computer Graphics: Principles and Practice, zweite Auflage
(1996) von J. Foley et al. (Addison-Wesley Publishing Company, Inc.)
in Abschnitt 15.4 („The Z-Buffer
Algorithm") auf
den Seiten 668 bis 672 beschrieben.
-
Die
vorliegende Erfindung verwendet die Z-Pufferpixelabstandsdaten und
erzeugt ein sogenanntes Alpha-Mischbild, welches das scharfe Bild und
das unscharfe Bild mit einem Bild kombiniert, das aus den Z-Pufferdaten
erzeugt wurde. Für
den Fachmann ist verständlich,
dass ein Computeranzeigebild typischerweise durch Kombinieren dreier
Farbinformationskanäle
mit einem Alpha-Informationskanal erzeugt wird. Die Farbkanäle umfassen
rote, grüne und
blaue Pixelbilddaten, welche die Farbinformation der Szene darstellen.
Der Alphakanal (α-Kanal)
der Daten stellt die Opazität
der Bildpixel dar, die von vollständig opak bis zu transparent
reicht. In den meisten Verarbeitungssystemen und Farbmodellen wird
jeder dieser vier Bilddatenkanäle
durch acht Informationsbits für
jedes Pixel dargestellt.
-
Der
Fachmann ist mit dem Verfahren zum Kombinieren eines Bildes durch
einen „Alpha-Misch"-Vorgang vertraut.
Die Alphakanal-Opazitätsdaten
werden dazu verwendet, das Mischen roter, grüner und blauer Bildanteile
so zu steuern, dass ein „alphagemischtes" Bild mit den richtigen
Lichtdurchlässigkeitswerten
erzeugt wird. In einem herkömmlichen
System werden dabei die roten, grünen und blauen Farbkanäle der Bildinformation
zusammen mit der Alphakanal-Opazitätsinformation kombiniert, wodurch
ein sogenanntes RGBA-Farbinformationsmodell erzeugt wird. Somit
ist eine Szene zum Zweck des Rendering durch einen Graphikprozessor vollständig beschrieben,
indem die rote, grüne
und blaue Farbinformation und die Alphakanalinformation für jedes
Pixel angegeben werden.
-
Das
Verfahren zur Kombination mittels Alpha-Mischung ist beispielsweise
in Computer Graphics: Principles and Practice, zweite Auflage (1996), von
J. Foley et al. (Addison-Wesley Publishing Company, Inc.) in Abschnitt
17.6 („Image
Compositing") auf
den Seiten 835 bis 843 beschrieben. Eine andere Beschreibung eines
Kombinationsverfahrens ist im US-Patent Nr. 5,379,129 von Othmer
et al., „Method for
Compositing a Source and Destination Image Using a Mask Image" beschrieben.
-
Die
vorliegende Erfindung bezieht sich auf ein Kombinationsverfahren
mit den Daten für
das scharfe Bild, für
das unscharfe Bild und den Z-Pufferdaten, wobei die Z-Pufferdaten
als Alphakanal verwendet werden, um das Mischen des scharfen Bildes und
des unscharfen Bildes zu steuern. Insbesondere werden die Z-Pufferdaten
dazu verwendet, die Lichtdurchlässigkeit
des unscharfen Bildes entsprechend dem Abstand jedes Pixels aus
der Perspektive des Betrachters zu bestimmen. Bei der bevorzugten
Ausführungsform
wird für
jedes schwarze (opake) Pixel im Z-Puffer der volle Wert (100%) der
Daten für
das unscharfe Bild zum Kombinieren mit dem scharfen Bild verwendet.
Für jedes
weiße
(transparente) Pixel des Z-Puffers wird kein (null Prozent) unscharfes
Bild mit dem scharten Bild kombiniert. Für Pixel in Grauschattierungen
zwischen 100% und 0% wird ein entsprechender proportionaler Prozentsatz
des scharfen und des unscharfen Bildes kombiniert. Somit wird eine
lineare Interpolation verwendet, um den Prozentsatz zu bestimmen,
zu dem das eine Bild mit dem anderen kombiniert werden soll. Auf
diese Weise werden die Z-Pufferdaten
des Szenenbildes als Feldtiefen-Alphakanal verwendet.
-
4 ist
ein Computeranzeigebild der Szene aus 1, welches
das Ergebnis des Alpha-Mischens des unendlich scharfen Bildes aus 1 mit dem
unscharfen Bild aus 3 unter Verwendung der Z-Pufferbilddaten
als Alphakanal gemäß der Erfindung
zeigt. Ein herkömmliches
Alpha-Mischverfahren
kann dazu eingesetzt werden, das gemischte Bild gemäß der Erfindung
durch Auswahl einer Kombination aus scharfem Bild, unscharfem Bild
und Z-Pufferdaten für
das Kombinationsverfahren zu erzeugen. Es ist anzumerken, dass 4 ein
Bild zeigt, bei dem die Treppen im Vordergrund scharf und deutlich
sind, während
die Treppen im Hintergrund (weiter vom Betrachter entfernt) nicht
so scharf und deutlich, sondern eher verschwommen sind. Dies ist
realistischer und der Feldtiefe ähnlicher,
die bei typischen Fotografien von realen Szenen zu beobachten ist.
-
5 ist
eine graphische Darstellung der Mischung des unendlich scharfen
Bildes aus 1 und des unscharfen Bildes
auf 3 unter Verwendung der Z-Pufferbilddaten aus 2 zum
Steuern der Mischung. 5 zeigt somit das unendlich
scharfe Bild 502 aus 1 und das
unscharfe Bild 504 aus 3, die mit
dem 8-Bit-Z-Pufferbild 506 aus 2 kombiniert
(zusammengesetzt) werden, wodurch das Bild 508 aus 4 mit
hinzugefügter
Feldtiefeninformation erzeugt wird.
-
Mit
dem gleichen Verfahren nach der vorliegenden Erfindung kann ohne
weiteres ein Feldtiefen-„Umkehrbild" erzeugt werden.
Unter einem Umkehrbild ist hier ein Bild zu verstehen, bei dem die Objekte
in einer Szene, die dem Betrachter näher sind, unschärfer und
weniger deutlich sind, während die
Objekte, die weiter vom Betrachter entfernt sind, schärfer und
deutlicher sind. Dies ist das Gegenteil von dem, was typischerweise
in Fotografien zu beobachten ist, und wird daher als Bild mit umgekehrter Feldtiefe
bezeichnet.
-
Ein
Bild mit umgekehrter Feldtiefe kann ohne weiteres unter Verwendung
eines Z-Puffer-Umkehrdatensatzes erzeugt werden. Dabei werden die Z-Puffer-Umkehrdaten erzeugt,
wenn Z-Pufferpixel, die schwarz (opak) sind, in weiße (transparente)
umgewandelt werden, und Z-Pufferpixel, die weiß sind, in schwarze umgewandelt
werden. Dazwischen liegende Grauschattierungen werden entsprechend verändert, um ähnlich umgekehrt
zu werden. Wenn die Daten für
die umgekehrte Feldtiefe mit dem scharten und dem unscharfen Bild
kombiniert werden, wird ein Umkehrbild der Szene erzeugt. Für den Fachmann
ist ersichtlich, dass die Zwischenwerte für das umgekehrte Bild durch
lineare Interpolation der Z-Pufferwerte bestimmt werden können, die
von schwarz nach weiß verändert werden.
-
6 ist
ein Computeranzeigebild der Szene aus 1, das die
invertierten 8-Bit-Z-Pufferdaten zeigt. In dieser Hinsicht ist 6 ein
Umkehrbild von 2. Es ist ersichtlich, dass
in 5 Objekte, die dem Betrachter näher sind,
schwarz (opak) gezeigt sind, während
weiter vom Betrachter entfernte Objekte weiß (transparent) dargestellt
sind. Die Umkehrfeldtiefendaten können nützlich sein, um einen veränderten
Fokuspunkt für
ein Bild zu zeigen und Übergangseffekte
zu erzeugen.
-
7 ist
ein Computeranzeigebild der Szene aus 1, welches
das Ergebnis der Kombination des scharfen Bildes aus 1 mit
dem unscharfen Bild aus 3 und der Verwendung der invertierten Z-Pufferbilddaten
aus 6 als Alphakanal zum Kombinieren, um einen veränderten
Fokuspunkt zu zeigen. 7 zeigt, dass Objekte im Vordergrund (näher am Betrachter)
unscharf und undeutlich sind, während
Objekte im Hintergrund (weiter vom Betrachter entfernt) scharf und
deutlicher sind. Im Sinne einer Fokusperspektive kann 7 als „Gegenteil" von 4 bezeichnet
werden.
-
Einer
der nützlichen
Effekte, die mit den Z-Pufferumkehrdaten erzeugt werden können, wird als „Schärfenänderungseftekt" bezeichnet, bei
dem aufeinander folgende Computerbilder einer Szene unter Verwendung
unterschiedlicher Z-Pufferdatensätze erzeugt
werden können,
um den Fokuspunkt in einem Szenenbild effektiv zu verändern. Beispielsweise
kann ein unendlich scharfes Bild einer Szene, wie 1,
in Echtzeit nacheinander mit Z-Pufferdaten, zuerst mit den Z-Pufferdaten
für 2 und
zuletzt mit den Z-Pufferdaten für 6,
sowie dazwischen mit dazwischen liegenden Z-Pufferdaten, kombiniert
werden.
-
8 zeigt
ein mit Z-Pufferdaten erzeugtes Z-Pufterzwischenbild, das zwischen 2 und 6 liegt. 8 erzeugt
wirksam ein Bild mit verringertem Kontrast. Wenn das scharfe und
das unscharfe Bild (1 bzw. 3) mit jedem
der aufeinander folgenden Z-Pufferbilder aus 2 bis 8 und
zuletzt mit 6 alphagemischt (kombiniert)
wird (oder umgekehrt), erscheint es jemandem, der die dadurch erzeugte
Sequenz von Bildern betrachtet, dass sich der Fokus verändert. Eine
Person, welche die aufeinander folgenden, kombinierten Bilder betrachtet,
wird somit einen Fokus „sehen", der sich vom Vordergrund
zum Hintergrund der Szene entsprechend den mit den Z-Pufferbildern
aus 2 bis 6 kombinierten Bildern verändert. Es
sollte ersichtlich sein, dass der Brennpunkt in jedem beliebigen
der aufeinander folgenden kombinierten Bilder dem Z-Puffer-Referenzbild
(Bildort) für
das jeweilige kombinierte Bild entspricht. Somit kann ein zwischen 4 und 7 liegender
Effekt erzeugt werden, indem dazwischen liegende Z-Pufterumkehrdatensätze verwendet
werden, wie sie in 8 dargestellt sind.
-
Somit
kann, wie oben beschrieben, eine Sequenz von kombinierten Szenenbildern
mit mehreren Zwischenbildern erzeugt werden, so dass die Sequenz
von Szenenbildern den Betrachterfokus sanft und allmählich vom
Vordergrund (4) zum Hintergrund (7)
und zu dazwischen liegenden Punkten „führt". Ein Startpunktbild (wie z.B. 4)
aus dem Z-Puffer und ein Endpunktbild (wie z.B. 7)
aus dem Z-Puffer können
zum Erzeugen der mehreren dazwischen liegenden, kombinierten Bilder
in regelmäßigen graphischen
Intervallen verwendet werden, um einen sanften Übergang für den Betrachter sicherzustellen.
Beispielsweise kann eine lineare Interpolation verwendet werden,
um die dazwischen liegenden Z-Pufferbilder in gleichmäßigen Intervallen zwischen
dem Startbild und dem Endbild zu erzeugen. Die Sequenz der dazwischen
liegenden Z-Pufferbilder wird abwechselnd mit den scharfen und unscharfen
Bildern kombiniert. Ein Zwischendatenspeicher kann verwendet werden,
um die Pixeldaten für die
mehreren Zwischenbilder im Prozessorspeicher zu speichern. Wie zuvor
angemerkt, können
solche Bilder mit herkömmlicher
Bildverarbeitungs-Hardware
in Echtzeit erzeugt werden. Andere visuelle Effekte können mit
den Lehren der vorliegenden Erfindung erzeugt werden.
-
Ein
anderer visueller Effekt, der mit dem Verfahren nach der vorliegenden
Erfindung erzeugt werden kann, ergibt ein Bild mit verringerter
Sättigung. Beispielsweise
kann der Farbton des blauen Kanals für das unscharfe Bild (wie z.B.
das in 3 gezeigte unscharfe Bild) durch eine Vertex-Farbmanipulation zum
blauen Farbspektrum hin oder zu jeder anderen Farbe verschoben werden,
um einen atmosphärischen
Nebeleffekt zu erzeugen. Für
den Fachmann ist ersichtlich, wie herkömmliche Graphikverarbeitungssysteme
eingesetzt werden können,
um eine solche Manipulation durchzuführen. Gleichermaßen können die
roten Kanaldaten des unscharfen Bildes in die grünen Kanaldaten und blauen Kanaldaten
des unscharfen Bildes kopiert werden, um ein unscharfes Schwarzweißbild zu
erzeugen. 9 ist ein Beispiel für ein unscharfes
Schwarzweißbild,
das mit einem solchem Verfahren erzeugt wurde. Das resultierende unscharfe
Schwarzweißbild
kann mit dem unendlich scharfen Bild alphagemischt werden, um ein
realistisches Bild zu erzeugen, das in den entfernten Bereichen
der Szene weniger gesättigt
ist. 10 ist ein Beispiel für ein Bild mit verringerter
Sättigung,
das durch Alpha-Mischen
eines unendlich scharfen Bildes, wie dem aus 1, mit einem
unscharfen Schwarzweißbild,
wie dem aus 9, erzeugt wurde.
-
Hardware-Konfiguration
-
Es
können
verschiedene Computer-Konfigurationen mit Graphikverarbeitungsfähigkeit
verwendet werden, um die verbesserten Graphikbilder der zuvor beschriebenen
Art in Echtzeit bereitzustellen. Solche Konfigurationen umfassen
Informationsverarbeitungssysteme, PCs, und Videospielsysteme.
-
Die
oben beschriebene Verarbeitung kann ohne weiteres verfügbare Hardware-Komponenten eines
Computergraphikprozessors verwenden, der Bilddaten kombiniert, um
RGBA-Daten zu erzeugen, und Z-Pufferdaten zur Entfernung verdeckter
Flächen
nutzt, wie dies oben beschrieben ist. Gemäß der Erfindung verwendet der
Graphikprozessorvorgang die Z-Pufferdaten als Alpha-Mischkanal und gestattet
dadurch die Durchführung
der zuvor beschriebenen Verarbeitung in Echtzeit. Die Echtzeitverarbeitung
ermöglicht
eine größere Flexibilität im Einsatz der
Bildverarbeitung, die hier beschrieben wird, wodurch sie für interaktive
Anwendungen, wie z.B. Spiele, geeignet wird. Alternativ dazu kann
die Verarbeitung nach der Erfindung in einer Kombination aus Hardware und
Software eingesetzt werden, die besonders zur Durchführung der
hier beschriebenen Bildverarbeitung geeignet ist.
-
11 ist
eine schematische Darstellung eines Datenverarbeitungs- oder Videospielsystems 1100,
das eine Graphikverarbeitung gemäß der vorliegenden
Erfindung bereitstellt. Das Videospielsystem 1100 umfasst
eine Videospiel-Haupteinheit 1110 und einen oder mehrere
Controller 1120, die über entsprechende
Controller-Schnittstellen 1125 an der Haupteinheit 1110 kommunikativ
mit der Haupteinheit 1110 gekoppelt sind. Die Controller 1120 umfassen
jeweils ein Eingabegerät
zum Empfangen von Benutzerbefehlen.
-
Das
Videospielsystem 1100 bildet eine Schnittstelle mit einem
audiovisuellen (AV)-Ausgabegerät 1135,
das kommunikativ mit der Haupteinheit 1110 gekoppelt ist.
Das AV-Ausgabegerät 1135 umfasst
einen Anzeigebildschirm 1140 zur Anzeige von Bilddaten
gemäß von der
Haupteinheit 1110 empfangenen Signalen. Das AV-Ausgabegerät 1135 umfasst auch
einen oder mehrere Lautsprecher 1145 zur Ausgabe von Audiodaten
gemäß von der
Haupteinheit 1110 empfangenen Signalen.
-
Die
Haupteinheit umfasst einen Programmleser 1150, der so konfiguriert
ist, dass er ein Spielprogramm-Speichermedium, wie z.B. eine magnetische
Floppydisk, eine optische CD-ROM, eine CD-R, eine CD-RW, eine DVD
oder dergleichen, aufnehmen kann. Das Spielprogramm-Speichermedium
ist ein Aufzeichnungsmedium, das der Haupteinheit 1110 ein
Anwendungsprogramm, wie z.B. ein Videospiel, bereitstellt. Die Haupteinheit 1110 ist
so konfiguriert, dass sie Daten verarbeitet und die Programmbefehle,
die auf dem Spielprogramm-Speichermedium vorhanden sind, ausführt. Die
Haupteinheit 1110 gibt gemäß den Programmbefehlen Bild-
und Tondaten an das AV-Ausgabegerät 1135 aus.
Die Haupteinheit empfängt über die
Controller 1120 Eingaben vom Benutzer, was nachfolgend
noch näher
beschrieben wird.
-
12 ist
ein Blockdiagramm einer beispielhaften Hardware-Konfiguration für das in 11 gezeigte
Videospiel-Unterhaltungssystem. Das Videospielsystem 1100 (11)
umfasst eine Zentralverarbeitungseinheit (CPU) 1200, die
einem Hauptspeicher 1205 zugeordnet ist. Die CPU 1200 arbeitet
mittels Steuerung durch Programmschritte, die im OS-ROM 1260 gespeichert
sind oder von einem Spielprogramm-Speichermedium an den Hauptspeicher 1205 übertragen
werden. Die CPU 1200 ist so konfiguriert, dass sie gemäß den Programmierschritten
Daten verarbeitet und Befehle ausführt.
-
Die
CPU 1200 ist über
einen reservierten Bus 1225 kommunikativ mit einem Eingabe/Ausgabe-Prozessor
(IOP) 1220 gekoppelt. Der IOP 1220 koppelt die
CPU 1200 mit dem OS-ROM 1260, der aus einem nicht
flüchtigen
Speicher besteht, welcher Programmbefehle, wie z.B. ein Betriebssystem,
speichert. Die Befehle werden vorzugsweise bei Inbetriebnahme der
Haupteinheit 1110 über
den IOP 1220 an die CPU übertragen (11).
-
Die
CPU 1200 ist über
einen reservierten Bus 1215 kommunikativ mit einer Graphikverarbeitungseinheit
(GPU) 1210 gekoppelt. Die GPU 1210 ist ein Bilderzeugungsprozessor,
der so konfiguriert ist, dass er Bilderzeugungsprozesse durchführt und Bilder
gemäß von der
CPU 1200 empfangenen Befehlen erzeugt. Beispielsweise kann
die GPU 1210 ein Graphikbild ausgehend von Anzeigelisten
rendern, die von der CPU 1200 erzeugt und empfangen werden.
Die GPU kann einen Puffer zum Speichern graphischer Daten aufweisen.
Die GPU 1210 gibt Bilder an das AV-Ausgabegerät 1135 (11)
aus.
-
Der
IOP 1220 steuert den Datenaustausch zwischen der CPU 1200 und
mehreren Peripheriekomponenten gemäß Befehlen, die in einem IOP-Speicher 1230 gespeichert
sind. Die Peripheriekomponenten können einen oder mehrere Controller 1120,
eine Speicherkarte 1240, eine USB-Schnittstelle 1245 und
einen IEEE 1394 Serial Bus 1250 umfassen. Zusätzlich ist
ein Bus 1255 kommunikativ mit dem IOP 1220 gekoppelt.
Der Bus 1255 ist mit mehreren zusätzlichen Komponenten, einschließlich dem
OS-ROM 1260, einer Klangprozessoreinheit (SPU) 1265,
einer Optical-Disc-Steuereinheit 1275 und einem Festplattenlaufwerk
(HDD) 1280 verknüpft.
-
Die
SPU 1265 ist zum Erzeugen von Klängen, wie z.B. Musik, Soundeffekten,
und Stimmen, gemäß Befehlen,
die sie von der CPU 1200 und vom IOP 1200 empfängt, konfiguriert.
Die SPU 1265 kann einen Klangpuffer umfassen, in dem Waveform-Daten
gespeichert sind. Die SPU 1265 erzeugt Klangsignale und überträgt diese
Signale an die Lautsprecher 1145 (11).
-
Die
Disc-Steuereinheit 1275 ist zur Steuerung des Programmlesers 1150 (11)
konfiguriert, der z.B. ein optisches Laufwerk umfassen kann, das Wechselspeichermedien,
wie z.B. eine magnetische Floppydisk, eine optische CD-ROM, eine
CD-R, eine CD-RW, eine DVD oder dergleichen, aufnimmt.
-
Die
Speicherkarte 1240 kann ein Speichermedium umfassen, auf
das die CPU 1200 Daten schreiben und speichern kann. Die
Speicherkarte 1240 kann vorzugsweise in den IOP 1220 eingesetzt und
aus diesem entfernt werden. Ein Benutzer kann mit der Speicherkarte 1240 Spieldaten
speichern oder sichern. Zusätzlich
ist das Videospielsystem 1100 vorzugsweise mit mindestens
einem Festplattenlaufwerk (HDD) 1280 versehen, auf das
Spieldaten geschrieben und gespeichert werden können. Eine Daten-I/O-Schnittstelle,
wie z.B. ein IEEE 1394 Serial Bus 1250 oder eine
Universal Serial Bus (USB)-Schnittstelle 1245, ist vorzugsweise
kommunikativ mit dem IOP 1220 gekoppelt, damit Daten in das
Videospielsystem 1100 hinein und aus diesem heraus übertragen
werden können.
-
Zum
besseren Verständnis
der bei der Erzeugung von Anzeigebildern gemäß der vorliegenden Erfindung
beteiligten Verarbeitung wird nun eine detailliertere Beschreibung
des Bildverarbeitungssystems gegeben.
-
13 zeigt
eine Anordnung des in einer Heimvideospielkonsole eingebauten Bildverarbeitungssystems.
Das Bildverarbeitungssystem ist im wesentlichen zur Verwendung in
einem Heimvideospielgerät,
einem Mikrocomputer oder einem graphischen Gerät für Computersysteme ausgelegt.
Das Bildverarbeitungssystem der Ausführungsform von 13 gestattet
es einem Benutzer das Spielen eines Spiels durch Steuern der relevanten
Daten (z.B. Spielprogramme), die von einem Speichermedium, wie z.B.
einer optischen Disc (z.B. einer CD-ROM), aufgerufen werden, das
auch entsprechend der vorliegenden Erfindung zum Speichern der Daten
in einem spezifischen Format ausgelegt ist.
-
Insbesondere
umfasst das Bildverarbeitungssystem der in 13 gezeigten
Ausführungsform
ein Hauptsteuermodul 1302 mit einer Zentralverarbeitungseinheit
(CPU) 1304 und deren Peripheriegeräten (einschließlich eines
Peripheriegeräte-Controllers 1306),
ein Graphikmodul 1320, das im wesentlichen aus einer Graphikverarbeitungseinheit (GPU) 1324 zum
Zeichnen eines Bildes in einem Frame Buffer 1326 besteht,
ein Klangmodul 1340, das aus einer Klangverarbeitungseinheit
(SPU) 1342 und anderen Geräten zur Ausgabe von Musik-
oder Effektklang besteht, ein Optical-Disc-Steuermodul 1360 zum Steuern
eines optischen (z.B. CD-ROM)-Laufwerks 1362,
das als zusätzliches Speichermittel
zum Decodieren wiedergegebener Daten dient, ein Kommunikationssteuermodul 1380 zum
Steuern der Eingabe von Befehlssignalen eines Controllers 1386,
Eingabe und Ausgabe von Daten bezüglich der Spielparametereinstellung
in einem Unterspeicher (oder einer Speicherkarte) 1384 und einen
Haupt-Bus 1399, der vom Haupt-Steuermodul 1302 bis
zum Kommunikationssteuermodul 1380 angeschlossen ist.
-
Das
Haupt-Steuermodul 1302 umfasst die CPU 1304, den
Peripheriegeräte-Controller 1306 zum
Steuern von Interruptvorgängen,
Zeitsequenzen, Speichervorgängen
und zur Übertragung
eines Signals für
den Direktspeicherzugrift (DMA), einen Hauptspeicher 1308,
der z.B. aus 2 Megabyte (2 MB) RAM besteht, und einen ROM 1310,
der z.B. 512 kByte Speicher umfasst, in dem Programme, einschließlich eines
Betriebssystems zum Betreiben des Hauptspeichers 1308,
des Graphikmoduls 1320 und des Klangmoduls 1340,
gespeichert sind. Die CPU 1304 kann ein 32-Bit-Computer
mit reduziertem Befehlssatz (RISC) zum Ausführen des im ROM 1310 gespeicherten
Betriebssystems zur Steuerung des gesamten Systems sein. Die CPU 1304 umfasst auch
einen Befehlscache- und einen Notizblockspeicher zum Steuern der
Realspeicherung.
-
Das
Graphikmodul 1320 umfasst ein GTE 1322 mit einem
arithmetischen Coprozessor zur Koordinatenberechnung, um ein Koordinatentransformationsverfahren
durchzuführen,
die GPU 1324 zum Erzeugen eines Bildes als Antwort auf
Befehlssignale von der CPU 1304, den Frame Buffer 1326,
der z.B. ein Megabyte (1 MB) Speicher zum Speichern von Graphikdaten,
die von der GPU 1324 bereitgestellt werden, und einen Bild-Decoder 1328 (nachfolgend als „MDEC" bezeichnet) zum
Decodieren codierter Bilddaten, die durch einen Orthogonaltransformationsprozess,
wie z.B. diskrete Cosinustransformation, komprimiert und codiert
sind. Das GTE 1322 kann einen parallelen Prozessor zur
parallelen Durchführung
einer Vielzahl arithmetischer Operationen aufweisen und dient als
Coprozessor für
die CPU 1304, um Hochgeschwindigkeitsaktionen zur Koordinatentransformation
und zur Berechnung von Lichtquelle, Vektor und Matrix einer Festkommanotierungsverarbeitung
auszuführen.
-
Insbesondere
ist das GTE 1322 in der Lage, die Koordinatenberechnung
von Polygonen mit typischerweise 1,5 Millionen pro Sekunde für das Flat Shading
durchzuführen,
bei dem jedes dreieckige Polygon in einer einzigen Farbe gezeichnet
wird. Dadurch kann das Bildverarbeitungssystem die Belastung der
CPU 1304 minimieren und somit die Koordinatenberechnungen
mit einer höheren
Geschwindigkeit durchführen.
Die GPU 1324 reagiert auf einen Polygon-Zeichenbefehl von
der CPU 1304 zum Zeichnen eines Polygons oder einer Graphik
an den Frame Buffer 1326. Die GPU 1324 kann bis
zu 360 000 Polygone pro Sekunde zeichnen und weist unabhängig von
der CPU 1304 einen zweidimensionalen Adressbereich zum
Mapping des Frame Buffer 1326 auf.
-
Der
Frame Buffer 1326 umfasst einen sogenannten Dual-Port-RAM,
der gleichzeitig eine Abfrage von Zeichendaten aus der CPU 1324 oder
einen Datentransfer vom Hauptspeicher 1308 und eine Freigabe
von Daten zur Anzeige durchführt.
Zudem kann der Frame Buffer 1326 einen Speicher mit einer Größe von einem
Megabyte aufweisen, der im 16-Bit-Format eine Pixelmatrix mit 1024 Werten
in horizontaler Richtung mal 512 Werten in vertikaler Richtung
bildet. Jeder beliebige Bereich in der Größe des Frame Buffer 1326 kann
an ein Videoausgabemittel 1330, wie z.B. eine Anzeige,
ausgegeben werden.
-
Zusätzlich zu
dem Bereich, der als Videoausgang geliefert wird, umfasst der Frame
Buffer 1326 einen Bereich mit einer Farbzuordnungstabelle
(die nachfolgend als „CLUT" bezeichnet wird)
zum Speichern einer CLUT, die während
des Zeichnens von Graphiken oder Polygonen mittels GPU 1324 als
Referenz verwendet wird, und einen Texturbereich zum Speichern von
Texturdaten, die einer Koordinatentransformation und einem Mapping
auf den Graphiken oder Polygonen, die von der GPU 1324 gezeichnet
werden, unterzogen werden sollen. Die Größe sowohl der CLUT als auch
der Texturbereiche kann abhängig
von Veränderungen
der Anzeigefläche
dynamisch variiert werden. Damit kann der Frame Buffer 1326 einen
Zeichenzugriff auf den Anzeigebereich und einen Hochgeschwindigkeits-DMA-Transfer zum Hauptspeicher 1308 und
von diesem ausführen.
Ebenso kann die GPU 1324 zusätzlich zum Flat Shading ein
Gouraud-Shading, bei dem die Farbe eines Polygons durch Interpolation
von Vertexfarbe bestimmt wird, und ein Texture Mapping, bei dem
eine Textur, die aus dem Texturbereich ausgewählt ist, mit einem Polygon
verknüpft
wird. Für
das Gouraud-Shading oder das Texture Mapping kann das GTE 1322 die
Koordinatenberechnung mit einer Rate von bis zu 500 000 Polygonen
pro Sekunde durchführen.
-
Die
MDEC 1328 reagiert auf ein Befehlssignal von der CPU 1304 zum
Decodieren von Unbewegt- oder Bewegtbild-Daten, die von einer CD-ROM aufgerufen
werden und im Hauptspeicher 1308 gespeichert sind, und
zu deren erneuter Speicherung im Hauptspeicher 1308. Insbesondere
führt die MDEC 1328 bei
einer hohen Geschwindigkeit einen Vorgang mit einer reversen, diskreten
Cosinustransformation (als reverse DCT bezeichnet) zum Expandieren
komprimierter Daten des Standards zur Komprimierung unbewegter Farbbilder
(bekannt als JPEG) oder des Standards zur Codierung bewegter Bilder
für Speichermedien
(als MPEG bekannt, bei dieser Ausführungsform jedoch für eine Komprimierung
innerhalb des Rasterbildes oder Frames) durch. Die reproduzierten
Bilddaten werden über
die GPU 1324 zum Frame Buffer 1326 übertragen
und können daher
als Hintergrund für
ein von der GPU 1324 gezeichnetes Bild verwendet werden.
Das Klangmodul 1340 umfasst die Klangprozessoreinheit (SPU) 1342, die
auf einen Befehl von der CPU 1304 zum Erzeugen eines Musik-
oder Effektklangs reagiert, einen Klangpuffer 1344, der
beispielshalber, ohne jedoch zwangsläufig darauf beschränkt zu sein,
512 Kilobyte Speicher für
Audiodaten von Stimm- oder Musikklang, Klangquelldaten, die von
einer CD-ROM aufgerufen werden, und einen Lautsprecher 1346,
der als Klangausgabemittel zur Ausgabe eines Musik- oder Effektklangs
dient, der mit der SPU 1342 erzeugt wurde.
-
Die
SPU 1342 hat eine adaptive, differenzielle Pulscodemodulations
(ADPCM)-Signaldecodierfunktion
zum Reproduzieren von Audiodaten im 4-Bit-ADPCM-Format, die aus 16-Bit-Audiodaten umgewandelt
wurden, eine Wiedergabefunktion zum Reproduzieren der Klangquelldaten,
die im Klangpuffer 1344 gespeichert sind, um einen Musik-
oder Effektklang auszugeben, und eine Modulationsfunktion zum Modulieren
der im Klangpuffer 1344 zur Wiedergabe gespeicherten Daten
auf. Insbesondere weist die SPU 1342 eine 24-stimmige ADPCM-Klangquelle auf,
bei der Bewegungsparameter von Looping- und Zeit-Koeffizienten automatisch
modifiziert werden, und die durch ein Signal von der CPU 1304 betätigt wird.
Die SPU 1342 steuert ihren mit dem Klangpuffer 1344 kartierten
Adressplatz und kann die Reproduktion von Audiodaten durch Direktübertragung
von ADPCM-Daten mit Key-On/Key-Off-Information
oder Modulationsinformation von der CPU 1304 an den Klangpuffer 1344 durchführen. Daher
wird das Klangmodul 1340 als Sampling-Klangquelle zum Erzeugen eines Musik-
oder Effektklangs, welcher den im Klangpuffer 1344 gespeicherten
Audiodaten entspricht, nach Empfang eines Befehlssignals von der CPU 1304 verwendet.
-
Das
Optical-Disc-Steuermodul 1360 umfasst das Laufwerk 1362 zum
Aufrufen eines Programms oder von Daten von einer optischen Disc
oder CD-ROM 1363, einen Plattendecoder 1364 zum
Decodieren eines codierten, gespeicherten Programms oder von Daten,
die von Fehlerkorrekturcodes (ECC) begleitet sind, und einen Laufwerkspuffer 1366,
mit z.B. 32 Kilobyte (32 KB) Speicher für von der optischen Disc aufgerufene
Daten, auf. Das Optical-Disc-Steuermodul 1360,
das aus dem Laufwerk 1362, dem Decoder 1364 und anderen
Bauteilen zum Datenlesen von einer Platte (und gegebenenfalls zum
Beschreiben der Platte) besteht, ist auch dazu eingerichtet, andere
Plattenformate, einschließlich
CD-DA und CD-ROM XA, zu unterstützen.
Der Decoder 1364 dient auch als Teil des Klangmoduls 1340.
Es können
auch andere Formate und Medien, wie z.B. DVD-ROM, Floppydisk und
dergleichen, vom Laufwerkuntersystem 1360 unterstützt werden.
-
Die über das
Laufwerk 1362 von der Platte aufgerufenen Audiodaten sind
nicht auf das ADPCM-Format (zum Speichern auf CD ROM XA-Discs) beschränkt, sondern
können
in einem üblichen PCM-Modus
vorliegen, der durch Analog-Digital-Wandlung
erzeugt wird. Die ADPCM-Daten können
in differenzieller 4-Bit-Form
aufgezeichnet werden, die aus 16-Bit-Digitaldaten berechnet wird,
und werden zunächst
einer Fehlerkorrektur und einer Decodierung im Decoder 1364 unterzogen,
an die SPU 1342 übertragen,
wo sie D/A-gewandelt werden, und werden dem Lautsprecher 1346 zur
Wiedergabe zugeführt.
Die PCM-Daten können in
16-Bit-Digitalsignalform aufgezeichnet werden und werden vom Decoder 1364 decodiert,
um den Lautsprecher 1346 anzusteuern. Ein Audio-Ausgangssignal
des Decoders 1364 wird zunächst an die SPU 1342 gesendet,
wo es mit einem SPU-Ausgangssignal gemischt und durch eine Halleinheit
zur Audiowiedergabe freigegeben wird.
-
Das
Kommunikationssteuermodul 1380 umfasst ein Kommunikationssteuergerät 1382 zum Steuern
der Kommunikationen auf dem Hauptbus 1399 mit der CPU 1304,
den Controller 1386 zur Eingabe von Befehlen durch einen
Bediener, und die Speicherkarte 1384 zum Speichern von
Daten zur Spieleinstellung. Der Controller 1386 stellt
eine Schnittstelle zum Übertragen
von Befehlen des Bedieners an eine Anwendungssoftware bereit und kann
Befehlstasten zur Eingabe der Befehle durch den Benutzer umfassen.
Den Befehlstasten zugewiesene Befehle, die durch das Kommunikationssteuergerät 1382 vorgegeben
sind, werden dem Kommunikationssteuergerät 1382 im Synchronmodus
mit einer Geschwindigkeit von 60mal pro Sekunde bereitgestellt.
Das Kommunikationssteuergerät 1382 überträgt die Tastenbefehle
dann an die CPU 1304.
-
Der
Controller 1386 weist zwei Anschlüsse auf, die auf diesem zum
Anschließen
mehrerer Steuergeräte
nacheinander über
Multitap-Anschlüsse
angeordnet sind. Entsprechend beginnt die CPU 1304 nach
Empfang des Befehls vom Bediener, einen entsprechenden Verfahrensschritt
auszuführen,
der durch ein Spielprogramm bestimmt wird. Wenn die Anfangseinstellung
eines zu spielenden Spiels aufgerufen wird, überträgt die CPU 1304 relevante
Daten an das Kommunikationssteuergerät 1382, das die Daten
wiederum auf der Speicherkarte 1384 speichert. Die Speicherkarte 1384 ist
vom Hauptbus 1399 getrennt und kann frei installiert oder
entfernt werden, während
der Hauptbus bestromt wird. Dadurch können Daten der Spieleinstellung
auf zwei oder mehreren der Speicherkarten 1384 gespeichert
werden.
-
Das
System gemäß dieser
Ausführungsform der
vorliegenden Erfindung ist ebenso mit einem parallelen 16-Bit-Ein-
und Ausgabe (I/O)-Port 1396 und mit einem asynchronen,
seriellen Ein- und Ausgabe (I/O)-Port 1398 versehen. Das
System kann am parallelen I/O-Port 1396 mit jedem anderen
Peripheriegerät
und am seriellen I/O-Port 1398 mit einem anderen Videospielgerät zur Kommunikation
angeschlossen werden.
-
Zwischen
Hauptspeicher 1308, GPU 1324, MDEC 1328 und
Decoder 1364 müssen
riesige Mengen der Bilddaten zum Lesen eines Programms, zur Darstellung
von Text oder zum Zeichnen einen Graphik mit einer hohen Geschwindigkeit
transferiert werden. Das Bildverarbeitungssystem dieser Ausführungsform
ist daher dazu eingerichtet, einen direkten Datentransfer oder einen
DMA-Transfer zwischen dem Hauptspeicher 1308, der GPU 1324,
dem MDEC 1328 und dem Decoder 1364 zu gestatten, ohne
die CPU 1304 zu verwenden. Stattdessen wird der Datentransfer
unter der Steuerung des Peripheriegeräte-Controllers 1306 durchgeführt. Dies
führt dazu,
dass die Belastung der CPU 1304 während des Datentransfers merklich
verringert wird, was Datentransfervorgänge mit hoher Geschwindigkeit
sicherstellt.
-
Das
gemäß der vorliegenden
Erfindung gebaute Videospielgerät
gestattet es der CPU 1304, das Betriebssystem, das auf
dem OS ROM 1310 gespeichert ist, bei Inbetriebnahme auszuführen. Bei der
Ausführung
des Betriebssystems werden die Aktionen des Graphikmoduls 1320 und
des Klangmoduls 1340 von der CPU 1304 korrekt
gesteuert. Zusätzlich
beginnt die CPU 1304 beim Aufrufen des Betriebssystems,
das gesamte System zu initialisieren, indem jede Aktion überprüft und dann
das Optical-Disc-Steuermodul 1360 zur Durchführung eines gewünschten
Spielprogramms, das auf einer optischen Disc gespeichert ist, aktiviert
wird. Während der
Ausführung
des Spielprogramms aktiviert die CPU 1304 das Graphikmodul 1320 und
das Klangmodul 1340 als Reaktion auf Befehlseingaben durch den
Bediener zur Steuerung der Bilddarstellung und der Wiedergabe von
Musik- oder Effektklängen.
Die Darstellung von Bilddaten auf der Anzeige über das Bilddaten-Verarbeitungsgerät gemäß der folgenden Erfindung
wird als nächstes
erläutert.
Die GPU 1324 zeigt den Bereich eines gewünschten
Graphikmodells an, das vom Frame Buffer 1326 auf dem Videoausgabemittel 1330 oder
der Anzeige, wie z.B. einem CRT- oder Flachbildschirmanzeigegerät, erzeugt wird.
Dieser Bereich wird nachfolgend als Anzeigebereich bezeichnet. Das
Graphikmodell entspricht dem Koordinatenraum oder der virtuellen
Welt, in dem/der die Objekte in der Szene angeordnet sind, und kann
durch ein Modellierungsprogramm, wie dem Produkt „Maya" von Alias|Wavefront,
Toronto, Ontario, Kanada, oder dem Produkt „3D Studio Max" von der Abteilung „Discreet" (Montreal, Quebec,
Kanada) der Firma Autodesk, Inc., oder einem anderen geeigneten
Zeichnungs- oder Graphikanwendungsprogramm zur Szenenerzeugung erzeugt
werden.
-
14 zeigt
Daten eines exemplarischen Pixels 1402 für eine multispektrale
RGBA-Farbmodellanzeige. Im Pixel 1402 sind Informationen
von vier verschiedenen Datenkanälen
gespeichert. Beim RGBA-Farbmodell umfassen diese vier Kanäle Rot 1404,
Grün 1406,
Blau 1408 und Alpha 1410. Die Darstellung jedes
Datenkanals gemäß 14 umfasst
die Beschriftung „[7,
6, 5, ..., 0]",
um anzuzeigen, dass jeder der vier Datenkanäle für ein Pixel aus 8 Informationsbits
besteht, wobei das signifikanteste Bit (Bit 7) auf der linken Seite
der Darstellung und das am wenigsten signifikante Bit (Bit 0) auf
der rechten Seite gezeigt sind. Andere Datenwortgrößen für die Pixelinformation
können
verwendet werden. Die Daten für
den roten Kanal 1404, den blauen Kanal 1406, den
grünen
Kanal 1408 und den Alphakanal 1410 jedes Pixels 1402 in
einer Anzeigeszene sind im Frame Buffer 1326 (13)
gespeichert.
-
Somit
stellen der rote 1404, der grüne 1406 und der blaue 1408 Kanal,
die jeweils 8 Bit umfassen, die Bildfarbinformation bereit. Jeder
Farbteil eines Pixelbildes kann durch die Kombination der Daten
des roten Kanals 1404, des grünen Kanals 1406 und
des blauen Kanals 1408 dargestellt werden. Der Alphakanal 1410,
der ebenfalls 8 Bit umfasst, stellt die Opazität des entsprechenden Pixelbildes
dar, die von opak bis transparent reicht. Entsprechend wird jedes Pixel 1402 im
Frame Buffer als Kombination dieser vier Kanäle für jedes RGBA-Farbmodellsystem
gespeichert.
-
15 ist
eine Darstellung eines einzigen Eintrags 1502 aus dem Z-Puffer.
Bei der bevorzugten Ausführungsform
ist der Z-Puffer Teil des Bildverarbeitunssystems, das alternativ
als Spielkonsole 1110 (11), Computerprozessorsystem
(12) oder Bildprozessor (13) dargestellt
ist. Der Z-Puffer wird zum Entfernen verdeckter Flächen verwendet und
entspricht dem Lageort für
ein Objekt, das in der Anzeigeszene dargestellt wird. Damit ist
die Datenwortgröße der Z-Puffer-Pixelinformation
typischerweise dieselbe Datenwortgröße, wie bei den Daten, die
für Positionsberechnungen
verwendet werden, welche vom Bildverarbeitungssystem durchgeführt werden.
Bei der bevorzugten Ausführungsform
enthält
der Z-Pufferdatenwörter
mit einer Größe von 32 Bit.
Dies ist im Z-Puffer 1502 von 15 durch
die Beschriftung „[31
30 29 28 27 26 25 24 23 22 21 ... 3 2 1 0]" veranschaulicht.
-
Wie
zuvor erwähnt,
ist jedes Pixel, das auf der Computeranzeige gezeichnet werden soll,
einem entsprechenden Dateneintrag im Z-Puffer zugeordnet. 15 ist
eine Darstellung des Z-Pufferdateneintrags für eines dieser Pixel. Erfindungsgemäß werden
Daten aus dem Z-Puffer mit der Farbpixelinformation aus dem Frame
Buffer Pixel für
Pixel alphagemischt (kombiniert). Da die Z-Pufferinformation eine 32-Bit-Wortgröße aufweist,
während
die Pixelinformation für
jeden Kanal eine Wortgröße von 8
Bit aufweist, wird bei der Verarbeitung gemäß der vorliegenden Erfindung
die Z-Pufferinformation so trunkiert, dass nur ein 8-Bit-Datenwort
aus dem Z-Puffer mit jedem der 8-Bit-Pixelwörter der RGBA-Bildinformation
aus dem Frame Buffer kombiniert wird. Bei der bevorzugten Ausführungsform
werden die acht signifikantesten Bits (MSB) aus jedem Z-Pufferpixel mit
jedem entsprechenden Pixel der Information aus dem Frame Buffer
kombiniert.
-
16 zeigt
eine beispielhafte Frame Buffer-Umgebung. Wie in 16 gezeigt,
speichert ein Frame Buffer (wie der in 13 dargestellte
Frame Buffer 1326) bei der bevorzugten Ausführungsform mehr
als ein Bilddatenbild. Insbesondere zeigt 16, dass
der Frame Buffer 1326 einen Datenspeicher für ein erstes
Bilddaten-Array 1602 und für ein zweites Bilddaten-Array 1604 umfasst.
Eine solche Anordnung wird typischerweise verwendet, um aufeinander
folgende Bilder zur Videoanzeige, wie bei Geräten zur Zeilensprungdarstellung,
anzuzeigen. Das erste Bild-Array 1602 umfasst zahlreiche Pixel,
von denen die Pixel 1612, 1614 und 1616 gezeigt
sind. Gleichermaßen
umfasst das zweite Bild Array 1604 Pixel 1622, 1624, 1626.
Jedes dieser Bild-Arrays kann zu einem vorgegebenen Zeitpunkt ein
gesamtes Bild speichern und eine Vielzahl von Speicherorten im Graphikprozessorgerät umfassen.
-
Die
Bild-Arrays 1602, 1604 des Frame Buffer 1326 sind
mit einem Hardware-Scan-Out-Gerät 1680,
wie z.B. einem Gerät,
das die GPU 1324 und die Videoausgabe 1330 umfasst,
die zuvor im Zusammenhang mit dem System gemäß 13 beschrieben
wurden, verbunden. Das Scan-Out-Gerät liest wahlweise die Pixelinformation
von einem der Frame Buffer-Arrays 1602, 1604 aus
und überträgt sie an
die Anzeige 1690 zur physischen Darstellung. Die Pixel,
welche das darzustellende Frame Buffer-Array umfassen, werden als
On-Screen-Bild bezeichnet,
während
die Pixel des nicht dargestellten Frame Buffer-Arrays als Oft-Screen-Bild
bezeichnet werden. Die Frame Buffer-Arrays 1602, 1604 können auch
Pixelinformation speichern, die aus anderen Speicherbereichen übertragen
wird, oder Pixelinformation in andere Speicherbereiche schreiben.
-
Verarbeitung
-
17 ist
ein Flussdiagramm, welches die Verarbeitung zeigt, die von den in
den 11 bis 13 dargestellten
Bildverarbeitungssystemen durchgeführt wird, um die Bilder mit
verbesserter Feldtiefeninformation zu erzeugen, wie dies oben veranschaulicht
ist. Beim ersten Verarbeitungsvorgang, der durch den Flussdiagrammkasten
mit der Nummer 1702 dargestellt ist, erzeugt das Bildverarbeitungssystem
die Daten des unendlich scharfen Bildes für die zu verarbeitende Szene,
wobei die Szene Objekte darstellt, die in einem Koordinatensystem (einem
räumlichen
System) angeordnet sind. Das scharfe Bild kann durch eine herkömmliche
Rendering Engine gerendert werden. Die Daten für das scharfe Bild der Szene
können
durch ein herkömmliches
Programm zum dreidimensionalen Modellieren (3-D-Modellieren), wie
z.B. dem Produkt „Maya" von Alias|Wavefront,
Toronto, Ontario, Kanada oder dem Produkt „3-D-Studio Max" von der Abteilung „Discreet" (Montreal, Quebec,
Kanada) der Firma Autodesk, Inc., erzeugt werden, oder werden auf
andere Weise im Graphikbildverarbeitungssystem empfangen. Die Rendering-Software
erzeugt inhärent
die Z-Pufferdaten für
die dargestellten Objekte.
-
Beim
nächsten
Verarbeitungsvorgang, der in 17 als
Kasten mit der Nummer 1704 gezeigt ist, erzeugt das System
die Daten für
das unscharfe Bild. Wie zuvor erwähnt, kann dieser Vorgang durch
Kopieren eines Rasterbildes auf sich selbst mit einem Versatz von
einem Pixel und einer Transparenz von 50% durchgeführt werden,
oder es können
nach Wunsch alternative Schemata verwendet werden. Die Daten für das unscharfe
Bild können
in einem Zwischendatenspeicher oder Registern des Graphikprozessors
oder zugeordneter Rechengeräte
gespeichert werden. Erfindungsgemäß wird das unscharfe Bild aus
dem scharfen Bild gewonnen. Wie zuvor beschrieben, kann das Bildverarbeitungssystem
als Eingabe die Daten für
das scharfe Bild empfangen und von diesem Ausgangspunkt das unscharfe
Bild mit einem Pixel-Verschiebevorgang erzeugen, bei dem das scharfe
Bild vorzugsweise mit einer Opazität von 50% auf sich selbst kopiert
wird, nachdem ein Pixel in horizontaler Richtung und ein Pixel in
vertikaler Richtung verschoben wurden. Das unscharfe Bild kann in
einem Speicher des Graphikverarbeitungssystems zwischengespeichert
werden. Beispielsweise kann in dem in 16 dargestellten
Zweifachbild-Frame Buffer ein Frame Buffer für das unscharfe Bild und der
andere Frame Buffer für
das scharfe Bild verwendet werden.
-
Der
nächste
Vorgang (Kasten 1706) besteht darin, die trunkierten Z-Pufterdaten zu gewinnen. Wie
zuvor erläutert,
erzeugen die meisten herkömmlichen
Graphikverarbeitungssysteme mit einer Rendering-Software routinemäßig Z-Pufferdaten
zum Zweck des Entfernens verdeckter Flächen mit einer Genauigkeit,
die der Positionsverarbeitung für
die Objekte in einer simulierten Szene angemessen ist. Daher sollten
die Z-Pufferdaten mit den meisten herkömmlichen Bildprozessoren, die
gemäß der vorliegenden
Erfindung verwendet werden könnten,
ohne weiteres verfügbar
sein. Insbesondere ist anzumerken, dass, wenn das Modellierprogramm
die Bilddaten erzeugt, das Programm das unendlich scharfe Bild und
notwendigerweise die Z-Pufferdaten erzeugt.
-
Die
Z-Pufferdaten werden verarbeitet, um sicherzustellen, dass sie präzise mit
den Pixeldaten im Frame Buffer kombiniert werden können. Bei
der bevorzugten Ausführungsform
werden die Z-Pufferdaten so trunkiert, dass die Anzahl der Datenbits
in jedem Pixel des Z-Puffers die gleiche Anzahl von Datenbits ist,
wie bei den Pixeln des Frame Buffer. Dabei werden bei den zuvor
beschriebenen Ausführungsformen
die roten, blauen und grünen
Pixel mit 8-Bit-Wörtern dargestellt,
während
die Z-Pufferdaten mit 32-Bit-Wörtern
für jedes
Pixel dargestellt werden. Daher werden nur die acht signifikantesten
Bits jedes Pixels im Z-Puffer mit den Daten für das scharfe und für das unscharfe
Bild kombiniert. Diese Trunkationsverarbeitung, die mit dem Kasten 1706 dargestellt
ist, kann durch Zwischenspeichern der trunkierten Daten im Speicher
des Graphikverarbeitungssystems durchgeführt werden.
-
Der
nächste
Vorgang besteht darin, dass das Computersystem einen Kombinationsprozess
durchführt,
der typischrweise als Alpha-Mischen bezeichnet wird, und das scharfe
Bild, das unscharfe Bild und die Z-Pufferdaten miteinander kombiniert,
um die RGBA-Bilddaten zu erzeugen, die nach dem Rendern ein Bild
mit Feldtiefeninformation erzeugt. Dieser Kombiniervorgang ist durch
den Flussdiagrammkasten mit der Ziffer 1708 dargestellt.
Wie zuvor erwähnt,
wird das Kombinieren der Bilddaten (Alpha-Mischen) routinemäßig mit herkömmlichen
Graphikverarbeitungscomputersystemen durchgeführt. Solche Systeme führen dieses
Kombinieren jedoch mit Farbbilddaten (z.B. rot, blau und grün) und Alphakanaldaten
durch, welche die Opazität
der Bildelemente angeben; sie kombinieren keine Daten für das scharfe
und das unscharfe Bild mit Z-Pufferdaten.
-
Zudem
arbeitet das herkömmliche
Alpha-Mischen mit Farbbilddaten und Alphakanalbilddaten mit gleicher
Datenwortgröße, typischerweise
der gleichen Wortgröße, wie
sie im Frame Buffer enthalten ist. Im Gegensatz dazu sind die Z-Pufferdaten
eines Graphikprozessorsystems mit einer Genauigkeit abgelegt, die
der Positionsverarbeitung für
Objekte in einer simulierten Szene angemessen ist. Daher arbeitet
bei der bevorzugten Ausführungsform
der Erfindung der Kombiniervorgang mit Daten aus dem Z-Puffer, die
auf eine kompatible Anzahl von Bits trunkiert wurden, wie dies für den Kasten 1706 beschrieben
ist. Mit der Lehre nach der vorliegenden Erfindung zur Durchführung einer
Frame Buffer-Kombination mit trunkierten Z-PufferDaten versteht
der Fachmann, wie er die richtige Verarbeitung zur Erzeugung der
RGBA-Bilddaten, welche die Feldtiefeninformation für einen
verbesserten Realismus nach dem Rendern ergeben, erreichen kann.
-
Im
nächsten
Vorgang führt
das System im Entscheidungskasten 1710 gegebenenfalls eine Überprüfung auf
wiederholte Verarbeitung durch, wie sie durchgeführt werden würde, um
Schärfenänderungseffekte,
atmosphärische
visuelle Effekte und dergleichen zu erzeugen. Die zusätzliche
Verarbeitung kann beispielsweise die Erzeugung eines Z-Puffer-Umkehrbildes
umfassen. Ebenso kann die zusätzliche
Verarbeitung eine Zwischenspeicherung von Bilddaten, wie z.B. eine
Zwischenspeicherung der Pixelinformation für Zwischenbilder, umfassen. Wenn
eine wiederholte Verarbeitung erwünscht ist, im Entscheidungskasten 1710 also
ein affirmatives Ergebnis vorliegt, kehrt die Systemverarbeitung
zum Kasten 1702 zurück,
um die nächste
erforderliche Reihe der Verarbeitung von scharfem Bild, unscharfem
Bild und Z-Puffer zu erzeugen. Wenn keine zusätzliche Bildverarbeitung für das RGBA-Bild
erforderlich ist, im Kasten 1710 also ein negatives Ergebnis
vorliegt, fährt
die Verarbeitung damit fort, das Anzeigebild bei Kasten 1712 zu
rendern. Der Rendering-Vorgang kann einen einfachen Rendering-Vorgang
umfassen, der ein Bild auf einem Computeranzeigegerät erzeugt,
oder kann einen der zusätzlichen,
zuvor beschriebenen Verarbeitungsvorgänge umfassen. Beispielsweise
kann die Rendering-Verarbeitung 1712 das Verändern des
Farbtons eines Farbkanals oder eine andere Verarbeitung für spezielle
visuelle Effekte umfassen. Alle diese Vorgänge können in Echtzeit durchgeführt werden,
so dass die hier beschriebenen Bilder mit verbessertem Realismus
mit Feldtiefeninformation aus Daten für ein scharfes Bild in Echtzeit
erzeugt werden können.
-
Die
vorliegende Erfindung wurde oben im Zusammenhang mit einer gegenwärtig bevorzugten Ausführungsform
beschrieben, so dass ein Verständnis
für die
vorliegende Erfindung vermittelt werden kann. Es gibt jedoch zahlreiche
Konfigurationen für Computergraphikverarbeitungssysteme,
die hier nicht näher
beschrieben sind, auf welche die vorliegende Erfindung jedoch anwendbar
ist. Die vorliegende Erfindung sollte daher nicht als auf die speziellen
Ausführungsformen,
die hier beschrieben sind, beschränkt gesehen werden, sondern
vielmehr sollte ersichtlich sein, dass die vorliegende Erfindung
eine breite Anwendbarkeit hinsichtlich Computergraphikverarbeitungs-systemen
im Allgemeinen aufweist. Alle Modifikationen, Veränderungen
oder äquivalenten
Anordnungen und Einrichtungen, die innerhalb des Umfangs der beigefügten Ansprüche liegen,
sollten daher als unter den Umfang der Erfindung fallend betrachtet
werden.