DE19620858B4 - Computergraphiksystem mit Pixel-Tiefenhinweisgebung - Google Patents

Computergraphiksystem mit Pixel-Tiefenhinweisgebung Download PDF

Info

Publication number
DE19620858B4
DE19620858B4 DE19620858A DE19620858A DE19620858B4 DE 19620858 B4 DE19620858 B4 DE 19620858B4 DE 19620858 A DE19620858 A DE 19620858A DE 19620858 A DE19620858 A DE 19620858A DE 19620858 B4 DE19620858 B4 DE 19620858B4
Authority
DE
Germany
Prior art keywords
depth
pixel
per
vertex
hint
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
DE19620858A
Other languages
English (en)
Other versions
DE19620858A1 (de
Inventor
Kyle R. Fort Collins Berry
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hewlett Packard Development Co LP
Original Assignee
Hewlett Packard Co
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hewlett Packard Co filed Critical Hewlett Packard Co
Publication of DE19620858A1 publication Critical patent/DE19620858A1/de
Application granted granted Critical
Publication of DE19620858B4 publication Critical patent/DE19620858B4/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/50Lighting effects
    • G06T15/80Shading

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Graphics (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Image Generation (AREA)

Abstract

Vorrichtung zum Versehen von Farben mit Tiefenhinweisen in einem Computergraphiksystem mit folgenden Merkmalen:
einer ersten Schaltung (110), die auf eine Tiefenhinweis-Skalierfaktorfunktion und Scheitelpunktparameter eines Graphik-Grundelements, das als eine Mehrzahl von Pixeln angezeigt werden soll, anspricht, um einen Pro-Scheitelpunkt-Tiefenhinweis-Skalierfaktorwert für jeden Scheitelpunkt des Graphik-Grundelements zu bestimmen;
einer zweiten Schaltung (110), die auf den Pro-Scheitelpunkt-Tiefenhinweis-Skalierfaktorwert und die Scheitelpunktparameter des Graphik-Grundelements anspricht, um Tiefenhinweis-Aufbereitungsparameter des Graphik-Grundelements zu bestimmen;
einer dritten Schaltung (135), die auf den Pro-Scheitelpunkt-Tiefenhinweis-Skalierfaktorwert für einen ausgewählten Scheitelpunkt des Graphik-Grundelements und die Tiefenhinweis-Aufbereitungsparameter anspricht, um einen Pro-Pixel-Tiefenhinweis-Skalierfaktorwert für jedes der Pixel in dem Graphik-Grundelement zu bestimmen;
einer vierten Schaltung (131, 132, 133, 134, 136, 137, 138), die auf die Scheitelpunktparameter des Graphik-Grundelements anspricht, um Pro-Pixel-Farbwerte für jedes der Pixel in dem Graphik-Grundelement zu bestimmen; und
einer fünften Schaltung (116), die auf den Pro-Pixel-Tiefenhinweis-Skalierfaktorwert, die Pro-Pixel-Farbwerte und eine Tiefenhinweisfarbe anspricht, um mit Tiefenhinweisen versehene Pro-Pixel-Farbwerte für jedes...

Description

  • Diese Erfindung bezieht sich auf eine Farbaufbereitung in Computergraphiksystemen und insbesondere auf Verfahren und Vorrichtungen zum Durchführen einer Tiefenhinweisgebung auf einer Pro-Pixel-Basis.
  • Computergraphiksysteme werden üblicherweise verwendet, um graphische Darstellungen von Objekten auf einem zweidimensionalen Anzeigeschirm anzuzeigen. Gegenwärtige Computergraphiksysteme können hochdetaillierte Darstellungen liefern und werden in einer Vielzahl von Anwendungen verwendet.
  • Bei typischen Computergraphiksystemen wird ein Objekt, das auf dem Anzeigebildschirm dargestellt werden soll, in eine Mehrzahl von Graphik-Grundelementen zerlegt. Grundelemente sind elementare Komponenten eines Graphikbildes und können Punkte, Linien, Vektoren und Vielecke, beispielsweise Dreiecke, einschließen. Typischerweise ist ein Hardware/Software-Schema implementiert, um die Graphik-Grundelemente, die die Ansicht eines oder mehrerer Objekte, die auf dem Bildschirm dargestellt werden, darstellen, aufzubereiten, oder zu zeichnen.
  • Typischerweise werden die Grundelemente des dreidimensionalen Objekt, das aufbereitet werden soll, von einem Hostcomputer in Form von Grundelementdaten definiert. Wenn das Grundelement beispielsweise ein Dreieck ist, kann der Hostcomputer das Grundelement in der Form der X-, Y-, Z-Koordinaten seiner Scheitelpunkte ebenso wie der R-, G-, B-Farbwerte jedes Scheitelpunkts definieren. Eine Aufbereitungshardware interpoliert die Grundelementdaten, um die Anzeigebildschirmpixel zu berechnen, die eingeschaltet werden, um jedes Grundelement und die R-, G-, B-Werte für jedes Pixel darzustellen.
  • Frühe Graphiksysteme waren nicht in der Lage, Bilder auf eine ausreichend realistische Art und Weise anzuzeigen, um komplexe dreidimensionale Objekte darzustellen oder zu modellieren. Die Bilder, die durch derartige Systeme angezeigt werden, zeigten extrem glatte Oberflächen ohne Texturen, Hügel, Kratzer, Schatten und andere Oberflächendetails, die bei dem Objekt, das modelliert wird, vorliegen.
  • Folglich wurden Verfahren entwickelt, um Bilder mit verbesserten Oberflächendetails anzuzeigen. Die Texturabbildung ist ein solches Verfahren, das das Abbilden eines Quellenbilds, das als eine Textur bezeichnet wird, auf einer Oberfläche eines dreidimensionalen Objekts und nachfolgend das Abbilden des mit einer Texturabbildung versehenen, dreidimensionalen Objekts auf dem zweidimensionalen Graphikanzeigebildschirm, um das resultierende Bild anzuzeigen, einschließt. Mit Texturabbildungen versehene Oberflächendetail-Merkmale schließen die Farbe, die Spiegelreflexion, die Vektorperturbation, das Spiegelvermögen (specularity), die Lichtdurchlässigkeit, Schatten, Oberflächenunregelmäßigkeiten und die Körnung ein.
  • Die Texturabbildung umfaßt das Anwenden eines oder mehrerer Punktelemente (Texel) einer Textur auf jedes Punktelement (Pixel) des angezeigten Abschnitts des Objekts, auf das die Textur abgebildet wird. Die Texturabbildungshardware ist üblicherweise mit Informationen versehen, die die Art und Weise anzeigen, auf die die Texel in einer Texturtabelle den Pixeln auf dem Anzeigebildschirm, der das Objekt darstellt, entsprechen. Jedes Texel in einer Texturtabelle ist durch S- und T-Koordinaten definiert, die den Standort desselben in der zweidimensionalen Texturtabelle identifizieren. Für jedes Pixel wird auf das entsprechende Texel oder die Texel, die auf dasselbe abbilden, aus der Texturtabelle zugegriffen und werden in die endgültigen R-, G-, B-Werte, die für das Pixel erzeugt werden, eingearbeitet, um das mit einer Textur versehene Objekt auf dem Anzeigebildschirm darzustellen.
  • Die Tiefenhinweisgebung (depth cueing) ist eine weitere Technik zum Erzeugen einer realistischeren Bildanzeige. Bei der Tiefenhinweisgebung wird die Farbe eines Objekts allmählich in die Hintergrundfarbe (die auch als die Tiefenhinweisfarbe bekannt ist) gemischt, basierend auf dem Abstand des Betrachters von dem Objekt. Dieser Abstand wird üblicherweise durch die Tiefe, oder den Z-Wert, des Objekts approximiert. Die Tiefenhinweisgebung kann verwendet werden, um die atmosphärische Dämpfung der Lichtintensität zu simulieren. Folglich erscheinen Objekte schwächer, wenn sie weiter von dem Betrachter entfernt sind. Eine beliebige Farbe kann als die Tiefenhinweisfarbe verwendet werden, wobei jedoch am häufigsten schwarz verwendet ist.
  • Bekannte Graphiksysteme mit Hardware-Geometriebeschleunigern verwendeten typischerweise ein konzentriertes Modell zur Berechnung eines Tiefenhinweises. Die Tiefenhinweisgebung wurde auf einer Pro-Scheitelpunkt-Basis durchgeführt. Ein Tiefenhinweis-Skalierfaktor wurde für jeden Scheitelpunkt basierend auf dem Wert seiner Z-Koordinate bestimmt. Dann wurden Farbwerte für jeden Scheitelpunkt basierend auf Beleuchtungsgleichungen und dem Tiefenhinweis-Skalierfaktor berechnet. Die Farbwerte wurden als Aufbereitungsparameter zu einer Hardware-Rasterungsvorrichtung oder einem Abtastwandler geliefert.
  • Das Erscheinen der Texturabbildung, die Hardware-mäßig implementiert ist, hat den Tiefenhinweisgebungs-Prozeß kompliziert gemacht. Wie oben beschrieben wurde, ist die Texturabbildung eine Technik zum Färben des Inneren eines dreidimensionalen Polygons mit dem Inhalt einer zweidimensionalen Pixeltabelle (oder Textur). Die Texturabbildungshardware liefert typischerweise Texturfarben oder Texel auf einer Pro-Pixel-Basis. Die Texel werden auf einer Pro-Pixel-Basis mit den Farbwerten, die durch die Rasterungsvorrichtung erzeugt werden, kombiniert, um resultierende Pixelfarbwerte für die Anzeige zu erzeugen.
  • Eine Tiefenhinweisgebung kann auf schattierte Polygone ebenso wie auf mit Texturabbildungen versehene Polygone angewendet werden. Jedoch arbeitet das konzentrierte Modell für die Tiefenhinweisgebung auf einer Scheitelpunktbasis nicht für Systeme, deren Texturabbildung hardwaremäßig implementiert ist. Die mit Tiefenhinweisen versehenen Scheitelpunktparameter werden in der Rasterungsvorrichtung interpoliert, um einzelne Pixelparameter zu erzeugen. Die Pixelparameter werden dann mit den entsprechenden Texeln aus der Texturabbildungshardware gemischt, um resultierende Pixelfarbwerte zu liefern. Es kann jedoch gezeigt werden, daß die Tiefenhinweisgebung, die auf die Farbwerte, die durch die Rasterungsvorrichtung verwendet werden, angewendet wird, die mit Texturabbildungen versehene Werte nicht ordnungsgemäß beeinflussen und falsche resultierende Farbwerte liefern.
  • Foley, J. D., u.a. beschreibt in "Computer Graphics, Principles and Practice", Addison-Wesley, 1990, Seiten 721–728, 734–744 und 882–885, auf Seiten 727 und 728 die Tiefenhinweisgebung und auf Seiten 882 bis 885 bekannte Rastertechniken, um Pixelwerte aus Scheitelpunkt-Parametern zu bestimmen. Eine Pro-Pixel-Tiefenhinweisgebung wird nicht beschrieben.
  • Die US-A-5,063,375 beschreibt Techniken zum Schattieren von Bildern, einschließlich der Tiefenhinweisgebung. Eine Beschreibung einer Pro-Pixel-Tiefenhinweisgebung ist jedoch nicht enthalten.
  • Die EP 0 454 129 A beschreibt Techniken, die die Tiefenhinweisgebung beschreiben, jedoch keine Pro-Pixel-Tiefenhinweisgebung.
  • Es ist die Aufgabe der vorliegenden Erfindung, eine Vorrichtung zum Versehen von Farben mit Tiefenhinweisen zu schaffen, die eine genauere Tiefenhinweisgebung pro Pixel ermöglicht.
  • Diese Aufgabe wird durch eine Vorrichtung gemäß Anspruch 1 gelöst.
  • Die vorliegende Erfindung bezieht sich auf Computergraphiksysteme. Verfahren und Vorrichtungen zur Tiefenhinweisgebung auf einer Pro-Pixel-Basis sind geschaffen. Eine erste Schaltung, die auf eine Tiefenhinweis-Skalierfunktion und Scheitelpunktparameter eines Dreiecks, das angezeigt werden soll, anspricht, bestimmt einen Pro-Scheitelpunkt-Tiefenhinweis-Skalierfaktorwert für jeden Scheitelpunkt des Dreiecks. Eine zweite Schaltung, die auf die Scheitelpunkt-Tiefenhinweis-Skalierfaktorwerte und die Scheitelpunktparameter des Dreiecks anspricht, bestimmt Tiefenhinweis-Aufbereitungsparameter des Dreiecks. Eine dritte Schaltung, die auf den Pro-Scheitelpunkt-Tiefenhinweis-Skalierfaktorwert für einen aus gewählten Scheitelpunkt des Dreiecks und die Tiefenhinweis-Aufbereitungsparameter anspricht, bestimmt einen Pro-Pixel-Tiefenhinweis-Skalierfaktor für jedes der Pixel in dem Dreieck. Eine vierte Schaltung, die auf die Scheitelpunktparameter des Dreiecks anspricht, bestimmt Pro-Pixel-Farbwerte für jedes der Pixel in dem Dreieck. Eine fünfte Schaltung, die auf den Pro-Pixel-Tiefenhinweis-Skalierfaktorwert, die Pro-Pixel-Farbwerte und eine Tiefenhinweisfarbe anspricht, bestimmt mit Tiefenhinweisen versehene Pro-Pixel-Farbwerte für jedes der Pixel in dem Dreieck.
  • Bei einem bevorzugten Ausführungsbeispiel weist das Computergraphiksystem eine Texturabbildungshardware zum Erzeugen von mit Texturabbildungen versehenen Farbwerten auf. In diesem Fall weist die Vorrichtung ferner eine Schaltung zum Mischen der Pro-Pixel-Farbwerte und der mit Texturabbildungen versehenen Farbwerte auf, um resultierende Pro-Pixel-Farbwerte zu liefern. Der Pro-Pixel-Tiefenhinweis-Skalierfaktorwert, die resultierenden Pro-Pixel-Farbwerte und die Tiefenhinweisfarbe werden durch die fünfte Schaltung verwendet, um mit Tiefenhinweisen versehene Pro-Pixel-Farbwerte für jedes der Pixel in dem Dreieck zu bestimmen.
  • Die vorliegende Erfindung liefert Verfahren und Vorrichtungen zur Tiefenhinweisgebung auf einer Pro-Pixel-Basis. Die Tiefenhinweisgebung wird auf resultierenden Pro-Pixel-Farbwerten für ein Dreieck, typischerweise nach dem Mischen mit Texturabbildungen versehenen Farbwerten, durchgeführt. Die Technik liefert eine genaue Tiefenhinweisgebung mit oder ohne Texturabbildung.
  • Bevorzugte Ausführungsbeispiele der vorliegenden Erfindung werden nachfolgend bezugnehmend auf die beiliegenden Zeichnungen näher erläutert. Es zeigen:
  • 1 ein Blockdiagramm eines ersten Ausführungsbeispiels eines Computergraphiksystems, das die vorliegende Erfindung einschließt;
  • 2 ein Blockdiagramm eines zweiten Ausführungsbeispiels eines Computergraphiksystems, das die vorliegende Erfindung einschließt;
  • 3 ein Blockdiagramm eines Abtastwandlers, der eine Pro-Pixel-Tiefenhinweisgebung gemäß der Erfindung einschließt;
  • 4 ein Blockdiagramm des Pixelgenerators, der in 3 gezeigt ist;
  • 5 ein Blockdiagramm, das darstellend für jeden Parameterinterpolator, der in 4 gezeigt ist, ist;
  • 6 ein Graph eines Tiefenhinweis-Skalierfaktors als eine Funktion der Tiefe entlang der Z-Achse; und
  • 7 eine Darstellung des Dreieckaufbereitungsverfahrens.
  • 1 ist ein Blockdiagramm eines ersten Ausführungsbeispiels eines Computergraphiksystems, das zum Einschluß einer Tiefenhinweisgebung auf einer Pro-Pixel-Basis gemäß der vorliegenden Erfindung geeignet ist. Es sollte offensichtlich sein, daß die veranschaulichende Implementierung nur exemplarisch bezüglich der Anzahl von Platinen und Chips, der Art und Weise, auf die dieselben partitioniert sind, der Busbreiten und der Datenübertragungsraten gezeigt ist. Zahlreiche andere Implementierungen können verwendet werden. Wie gezeigt ist, weist das System eine Eingangsplatine 10, eine Texturabbildungsplatine 12 und eine Rahmenpufferplatine 14 auf. Die Eingangsplatine steht über einen 52-Bit-Bus 16 mit einem Hostcomputer 15 in Verbindung. Die Eingangsplatine empfängt Grundelemente, die aufbereitet werden sollen, über den Bus 16 von dem Hostcomputer. Die Grundelemente sind durch X-, Y-, Z-Vektorkoordinatendaten, R-, G-, B-Farbdaten und Texturkoordinaten S, T, alle für Abschnitte der Grund elemente, beispielsweise für die Scheitelpunkte, wenn das Grundelement ein Dreieck ist, spezifiziert.
  • Daten, die die Grundelemente in drei Dimensionen darstellen, werden dann durch die Eingangsplatine 10 über einen 64-Bit-Bus 18 zu der Texturabbildungsplatine 12 und der Rahmenpufferplatine 14 geliefert. Die Texturabbildungsplatine interpoliert die empfangenen Grundelementdaten, um die Bildschirmanzeigepixel zu berechnen, die das Grundelement darstellen werden, und bestimmt die entsprechenden resultierenden Texturdaten für jedes Grundelementpixel. Die resultierenden Texturdaten werden über fünf 55-Bit-Busse 28, die in 1 für eine Klarheit der Darstellung als ein einzelner Bus gezeigt sind, zu der Rahmenpufferplatine geliefert.
  • Die Rahmenpufferplatine 14 interpoliert die Grundelementdaten, die von der Eingangsplatine 10 empfangen werden, ebenfalls, um die Pixel auf dem Anzeigebildschirm zu berechnen, die jedes Grundelement darstellen werden, und um die Objektfarbwerte für jedes Pixel zu bestimmen. Die Rahmenpufferplatine kombiniert dann auf einer Basis Pixel um Pixel die Objektfarbwerte mit den resultierenden Texturdaten, die von der Texturabbildungsplatine geliefert werden, um resultierende Werte R, G, B des Bilds für jedes Pixel zu erzeugen. R-, G-, B-Farb-Steuersignale für jedes Pixel werden jeweils über R-, G-, B-Leitungen 29 geliefert, um die Pixel des Anzeigebildschirms (nicht gezeigt) zu steuern, um auf dem Anzeigebildschirm ein resultierendes Bild anzuzeigen, das das mit Texturabbildungen versehene Grundelement darstellt.
  • Die Eingangsplatine 10, die Texturabbildungsplatine 12 und die Rahmenpufferplatine 14 sind jeweils pipelineartig aufgebaut und arbeiten auf mehreren Grundelementen gleichzeitig. Während die Texturabbildungs- und Rahmenpuffer-Platinen auf Grundelementen arbeiten, die vorher durch die Eingangsplatine geliefert werden, fährt die Eingangsplatine fort, auf neuen Grundelementen zu arbeiten und dieselben zu liefern, bis die Pipelines in den Platinen 12 und 14 voll werden.
  • Die Eingangsplatine 10 weist einen Verteilerchip 30, drei Dreidimensionalgeometrie-Beschleunigerchips (3-D-Geometrie-Beschleunigerchips) 32A, 32B und 32C, einen Zweidimensionalgeometrie-Beschleunigerchip (2-D-Geometrie-Beschleunigerchip) 34 und einen Konzentratorchip 36 auf. Der Verteilerchip 30 empfängt die X-, Y-, Z-Koordinaten- und Farb-Grundelementdaten über einen Bus 16 von dem Hostcomputer und verteilt 3-D-Grundelementdaten gleichmäßig unter den 3-D-Geometrie-Beschleunigerchips 32A, 32B und 32C. Auf diese Art und Weise ist die Systembandbreite erhöht, da gleichzeitig drei Gruppen von Grundelementen bearbeitet werden. Daten werden über einen 40-Bit-Bus 38A zu den 3-D-Geometrie-Beschleunigerchips 32A und 32B und über einen 40-Bit-Bus 38B zu dem Chip 32C geliefert. Beide Busse 38A und 38B übertragen Daten mit einer Rate von 60 MHz und liefern eine ausreichende Bandbreite, um zwei 3-D-Geometrie-Beschleunigerchips zu versorgen. 2-D-Grundelementdaten werden mit einer Rate von 40 MHz über einen 44-Bit-Bus 40 zu dem 2-D-Geometrie-Beschleunigerchip 34 geliefert.
  • Jeder 3-D-Geometrie-Beschleunigerchip transformiert die X-, Y-, Z-Koordinaten, die die empfangenen Grundelemente definieren, in entsprechende Bildschirmraumkoordinaten, bestimmt die R-, G-, B-Werte des Objekts und die S-, T-Werte der Textur für die Bildschirmraumkoordinaten, zerlegt Grundelementvierecke in Dreiecke und berechnet eine Dreieckflächengleichung, um jedes Dreieck zu definieren. Jeder 3-D-Geometrie-Beschleunigerchip führt ferner Sichtausschnittoperationen durch, um eine genaue Bildschirmanzeige des resultierenden Bilds sicherzustellen, wenn mehrere Fenster angezeigt werden, oder wenn sich ein Abschnitt eines Grundelements über das Sichtvolumen, das auf dem Anzeigebildschirm dargestellt ist, hinaus erstreckt. Die relevanten Operationen, die von jedem 3-D-Geometrie-Beschleunigerchip durchgeführt werden, werden nachfolgend detaillierter beschrieben. Ausgangsdaten von den 3-D-Geometrie-Beschleunigerchips 32A, 32B bzw. 32C werden mit einer Rate von 60 MHz jeweils über 44-Bit-Busse 42A und 42B zu dem Konzentratorchip 36 geliefert. Der Zweidimensionalgeometrie-Beschleunigerchip 34 liefert ferner Ausgangsdaten über einen 46-Bit-Bus 44 mit einer Rate von 45 MHz zu dem Konzentratorchip 36. Der Konzentratorchip 36 kombiniert die 3-D-Grundelementausgangsdaten, die von den 3-D-Beschleunigerchips 32A bis C empfangen werden, sortiert die Grundelemente in die ursprüngliche Reihenfolge, die dieselben vor der Verteilung durch den Verteilerchip 30 hatten, um und liefert die kombinierten Grundelementausgangsdaten über den Bus 18 zu der Texturabbildungs- und der Rahmenpuffer-Platine.
  • Die Texturabbildungsplatine 12 weist einen Texturabbildungschip 46 und eine Lokalspeicher 48 auf, der vorzugsweise als ein Cache-Speicher ausgebildet ist. Bei einem bevorzugten Ausführungsbeispiel der Erfindung ist der Lokalspeicher aus Gründen, die nachfolgend erläutert werden, aus einer Mehrzahl von SDRAM-Chips (SDRAM = synchronous dynamic random access memory = synchroner dynamischer Direktzugriffsspeicher) gebildet. Der Cache-Speicher 48 speichert Textur-MIP-Tabellendaten, die den Grundelementen zugeordnet sind, welche in der Rahmenpufferplatine aufbereitet werden. Die Textur-MIP-Tabellendaten werden über den Bus 40, durch den 2-D-Geometrie-Beschleunigerchip 34 und über einen 24-Bit-Bus 24 aus einem Hauptspeicher 17 des Hostcomputers 15 heruntergeladen.
  • Der Texturabbildungschip 46 empfängt nacheinander Grundelementdaten über den Bus 18, welche die Grundelemente darstellen, die auf dem Anzeigebildschirm aufbereitet werden sollen. Wie oben erläutert wurde, weisen die Grundelemente, die von den 3-D-Geometrie-Beschleunigerchips 32A bis 32C geliefert werden, Punkte, Linien und Dreiecke auf. Die Texturabbildungsplatine führt keine Texturabbildung von Punkten oder Linien durch und bearbeitet nur Dreieck-Grundelemente. Die Daten, die die Dreieck-Grundelemente darstellen, enthalten die X-, Y-, Z-Pixelkoordinaten des Objekts für einen Scheitelpunkt, die R-, G-, B-Farbwerte des Objekts von dem glei chen Scheitelpunkt, die Koordinaten S, T der Abschnitte der Texturtabelle, die dem zumindest einem Scheitelpunkt entsprechen, und die Flächengleichung des Dreiecks. Der Texturabbildungschip 46 ignoriert die Z-Koordinate des Objektpixels und die R-, G-, B-Farbwerte des Objekts. Der Chip 46 interpoliert die X-, Y-Pixelkoordinaten und interpoliert die S- und T-Koordinaten, die jedem X-, Y-Bildschirmanzeigepixel, das das Grundelement darstellt, entsprechen. Für jedes Pixel greift der Texturabbildungschip auf den Abschnitt der Textur-MIP-Tabelle, der demselben entspricht, aus dem Cache-Speicher zu und berechnet resultierende Texturdaten für das Pixel, welche einen gewichteten Durchschnitt mehrerer Texel einschließen können.
  • Die resultierenden Texturdaten für jedes Pixel werden über die fünf Busse 28 durch den Texturabbildungschip 46 zu der Rahmenpufferplatine geliefert. Die fünf Busse 28 sind jeweils mit fünf Rahmenpuffer-Steuerchips 50A, 50B, 50C, 50D und 50E, die auf der Rahmenpufferplatine vorgesehen sind, gekoppelt und liefern parallel resultierende Texturdaten zu den Rahmenpuffer-Steuerchips. Die Rahmenpuffer-Steuerchips 50A, 50B, 50C, 50D und 50E sind jeweils mit Gruppen von zugeordneten VRAM-Chips 51A bis 51E (VRAM = video random access memory = Video-Direktzugriffsspeicher) gekoppelt. Die Rahmenpufferplatine kann ferner vier Videoformatchips 52A, 52B, 52C und 52D und einen RAMDAW 54 aufweisen (RAMDAW = Direktzugriffsspeicher-Digital/Analog-Wandler). Die Rahmenpuffer-Steuerchips steuern unterschiedliche, nicht überlappende Segmente des Anzeigebildschirms. Jeder Rahmenpuffer-Steuerchip empfängt Grundelementdaten über den Bus 18 von der Eingangsplatine und resultierende Texturabbildungsdaten über den Bus 28 von der Texturabbildungsplatine. Die Rahmenpuffer-Steuerchips interpolieren die Grundelementdaten, um die Bildschirmanzeige-Pixelkoordinaten in den jeweiligen Segmenten derselben, die das Grundelement darstellen, und die entsprechenden R-, G-, B-Farbwerte des Objekts für jede Pixelkoordinate zu berechnen. Für diejenigen Grundelemente (d.h. Dreiecke), für die resultierende Texturdaten von der Textur abbildungsplatine geliefert werden, kombinieren die Rahmenpuffer-Steuerchips auf einer Basis Pixel um Pixel die Objektfarbwerte und die resultierenden Texturdaten, um endgültige R-, G-, B-Werte für jedes Pixel, das auf dem Anzeigebildschirm angezeigt werden soll, zu erzeugen. Ein Mischmodus, der die Art und Weise definiert, auf die die Objekt- und Textur-Farbwerte kombiniert werden, wird durch ein Aufbereitungsmodus-Steuerwort gesteuert, das über den Bus 18 durch die Eingangsplatine 10 geliefert wird.
  • Die resultierenden Bildvideodaten, die durch die Rahmenpuffer-Steuerchips 50A bis 50E erzeugt werden, einschließlich der R-, G-, B-Werte für jedes Pixel, werden in den entsprechenden VRAM-Chips 51A bis 51E gespeichert. Jede Gruppe von VRAM-Chips 51A bis 51E weist acht VRAM-Chips auf, derart, daß 40 VRAM-Chips auf der Rahmenpufferplatine angeordnet sind. Jeder der Videoformatchips 52A bis 52D ist mit einem unterschiedlichen Satz von zehn VRAM-Chips verbunden und empfängt Daten von demselben. Die Videodaten werden seriell aus den VRAM-Chips geschoben und jeweils über 64-Bit-Busse 58A, 58B, 58C und 58D mit einer Rate von 27 MHz zu den vier Videoformatchips 52A, 52B, 52C und 52D geliefert. Die Videoformatchips formatieren die Videodaten, so daß dieselben durch den RAMDAW gehandhabt werden können, und liefern die formatierten Daten über 32-Bit-Busse 60A, 60B, 60C und 60D mit einer Rate von 33 MHz zu dem RAMDAW 54. Der RAMDAW 54 wandelt die digitalen Farbdaten wiederum in analoge R-, G-, B-Farbsteuersignale um und liefert die R-, G-, B-Steuersignale für jedes Pixel entlang R-, G-, B-Steuerleitungen 29 zu einer Bildschirmanzeige (nicht gezeigt).
  • Bei einem Ausführungsbeispiel der Erfindung ist die Hardware auf der Texturabbildungsplatine 12 und der Rahmenpufferplatine 14 dupliziert, derart, daß bestimmte Grundelement-Aufbereitungsaufgaben auf mehreren Grundelementen parallel durchgeführt werden können, wodurch die Bandbreite des Systems erhöht wird. Ein Beispiel eines solchen alternativen Ausführungsbeispiels der vorliegenden Erfindung ist in 2 gezeigt, welche ein Blockdiagramm eines Computergrafiksystems der vorliegenden Erfindung ist, bei dem ein bestimmter Teil der Hardware dupliziert ist. Das System von 2 weist vier 3-D-Geometrie-Beschleunigerchips 32A, 32B, 32C und 32D, zwei Texturabbildungschips 46A und 46B, denen jeweils Cache-Speicher 48A und 48B zugeordnet sind, und zehn Rahmenpufferchips 50A bis 50J auf, denen jeweils eine Gruppe von VRAM-Chips zugeordnet ist. Der Betrieb des Systems von 2 ist gleichartig dem des Systems von 1, der oben beschrieben ist. Die Duplizierung der Hardware bei dem Ausführungsbeispiel von 2 ermöglicht eine erhöhte Systembandbreite, da bestimmte Grundelement-Aufbereitungsoperationen parallel auf mehreren Grundelementen durchgeführt werden können.
  • Eine Pro-Pixel-Tiefenhinweisgebung gemäß der vorliegenden Erfindung ist bezugnehmend auf 3 beschrieben. Der linke Abschnitt von 3, der mit "Geometriebeschleuniger" bezeichnet ist, stellt den Schaltungsaufbau in den 3-D-Geometriebeschleunigerchips 32A, 32B und 32C (1) dar. Der rechte Abschnitt von 3, der mit "Abtastwandler" bezeichnet ist, stellt den Schaltungsaufbau in den Rahmenpuffersteuerungs-Chips 50A, 50B, 50C, 50D und 50E dar. Obwohl das Graphiksystem Objekte, die angezeigt werden sollen, in Dreiecke, Vektoren und Punkte zerlegt, wird die Tiefenhinweisgebung nur auf Dreiecke angewendet. Eine Kantenberechnungseinheit 110 in dem Geometriebeschleuniger empfängt Scheitelpunktparameter von dem Hostcomputer. Die Scheitelpunktparameter können für jeden Scheitelpunkt Koordinaten X, Y und Z, Normalkoordinaten (NX, NY, NZ), Farbwerte (R, G, B und α) und Texturabbildungswerte (S und T) aufweisen. Die Kantenberechnungseinheit 110 empfängt ferner Tiefenhinweisparameter, wie nachfolgend erläutert wird. Die Kantenberechnungseinheit berechnet im allgemeinen alle Aufbereitungsparameter, die von dem Abtastwandler zum Aufbereiten des Dreiecks benötigt werden. Diese Parameter weisen die Anfangsfarbwerte R, G, B und α auf. Die Aufbereitungsparameter weisen ferner die partiellen Ableitungen jedes Farbparameters bezüglich X und bezüglich einer Kante E1 des Dreiecks mit der größten Abmessung in Y auf. Außerdem liefert die Kantenberechnungseinheit 110 Tiefenhinweis-Aufbereitungsparameter zu dem Abtastwandler, die einen Tiefenhinweis-Skalierfaktorwert für den obersten Scheitelpunkt in dem Dreieck und partielle Ableitungen des Tiefenhinweis-Skalierfaktors bezüglich X und der Kante E1 aufweisen.
  • Ein Pixelgenerator 112 in dem Abtastwandler interpoliert jeden der Aufbereitungsparameter unabhängig, um X- und Y-Koordinaten und Farbwerte für jedes Pixel in dem Dreieck zu berechnen. Die Pro-Pixel-Farben weisen Diffusfarbwerte R, G, B und α auf, und können Spiegelfarbwerte Rs, Gs, Bs und αs aufweisen. Außerdem berechnet der Pixelgenerator 112 einen Tiefenhinweis-Skalierfaktor auf einer Pro-Pixel-Basis. Die Pro-Pixel-Werte, die durch den Pixelgenerator 112 berechnet werden, werden einen Texturmischeinheit 114 geliefert. Die Texturmischeinheit 114 empfängt ferner Texel von dem Texturabbildungschip 46 (1). Die Texel sind Texturfarbwerte Rt, Gt, Bt und αt für jedes Pixel. Die Pro-Pixel-Farbwerte von dem Pixelgenerator 112 und die Texel von dem Texturabbildungschip werden gemäß einem vorausgewählten Mischalgorithmus kombiniert, um resultierende Farbwerte zu liefern. Die resultierenden Farbwerte werden einer Tiefenhinweis-Mischeinheit 116 zugeführt. Der Pixel-Tiefenhinweis-Skalierfaktor, der der Tiefenhinweis-Mischeinheit 116 zugeführt wird, läuft durch die Texturmischeinheit 114, wird jedoch nicht verwendet, um sicherzustellen, daß die pipelineartig verarbeiteten Daten synchronisiert bleiben. Die Tiefenhinweis-Mischeinheit 116 kombiniert den Pro-Pixel-Tiefenhinweis-Skalierfaktor und eine Tiefenhinweisfarbe mit den resultierenden Farbwerten für jedes Pixel, um mit Tiefenhinweisen versehene Farben für jedes Pixel zu liefern.
  • Eine Tiefenhinweisgebung pro Pixel ist genauer als eine Tiefenhinweisgebung pro Scheitelpunkt, da die zwei unabhängigen Interpolationen der Farbe und des Tiefenhinweis-Skalierfaktors lineare Näherungen sind. Die unabhängigen Interpolatio nen werden gemischt, um ein endgültiges Ergebnis zu erzeugen. Das Mischen schließt eine Multiplikation zweier Gleichungen erster Ordnung ein, was eine Gleichung zweiter Ordnung zur Folge hat. Gleichungen zweiter Ordnung können eine gewünschte Kurve besser annähern als Gleichungen erster Ordnung.
  • Die Operationen, die durch die Einheiten, die in 3 gezeigt sind, durchgeführt werden, werden nachfolgend detaillierter beschrieben. Wie oben angegeben wurde, bestimmt die Kantenberechnungseinheit 110 einen Anfangstiefenhinweis-Skalierfaktor und partielle Ableitungen des Skalierfaktors bezüglich der Kante E1 und X. Der Anfangswert des Tiefenhinweis-Skalierfaktors für jeden Scheitelpunkt hängt von dem Z-Wert des Scheitelpunkts ab. Eine Tiefenhinweisregion ist in dem Z-Raum mit einem minimalen Z-Wert und einem maximalen Z-Wert eingerichtet. Unterschiedliche Tiefenhinweis-Skalierfaktoren werden für Scheitelpunkte eingestellt, deren Z-Werte größer als Tiefenhinweis-Zmax oder kleiner als Tiefenhinweis-Zmin sind. Der Skalierfaktor zwischen den zwei Z-Grenzen wird als eine glatte Rampenfunktion zwischen dem Zmin-Skalierfaktor und dem Zmax-Skalierfaktor berechnet. Die Tiefenhinweis-Skalierfaktorfunktion ist in 6 dargestellt. Die Kantenberechnungseinheit empfängt die folgenden Parameter von dem Hostcomputer in Verbindung mit der Tiefenhinweis-Skalierfaktorfunktion, die in 6 gezeigt ist:
    • (1) Tiefenhinweis-Zmin,
    • (2) Tiefenhinweis-Zmax,
    • (3) Zmin-Skalierfaktor,
    • (4) Zmax-Skalierfaktor, und
    • (5) Tiefenhinweissteigung.
  • Der Tiefenhinweis-Skalierfaktor für jeden Scheitelpunkt wird wie folgt bestimmt:
    Wenn der Z-Scheitelpunkt kleiner als Tiefenhinweis-Zmin ist, dann Skalierfaktor = Zmin-Skalierfaktor;
    Wenn der Scheitelpunkt Z größer als der Tiefenhinweis-Zmax ist, dann Skalierfaktor = Zmax-Skalierfaktor;
    Andernfalls: Skalierfaktor = Zmin-Skalierfaktor + (Z-Scheitelpunkt – Zmin-Tiefenhinweis) × Tiefenhinweissteigung. Dies liefert den Tiefenhinweisskalierfaktor-Anfangswert am Scheitelpunkt 0 des Dreiecks.
  • Die Kantenberechnungseinheit 110 berechnet ferner Tiefenhinweissteigungen dDC/dX und dDC/dE1 gemäß den folgenden Gleichungen:
    Figure 00170001
    dDC/dE1 = (dDC/dX * int(E1-Steigung)) + dDC/dYwobei: Xi und Yi, i = 0, 1, 2, die Koordinaten des Scheitelpunkts i sind;
    DCi, i = 0, 1, 2, der Tiefenhinweis-Skalierfaktor des Scheitelpunkts i ist;
    int () der ganzzahlige Wert ist;
    Figure 00170002
  • Diese Werte werden durch den Pixelgenerator verwendet, um den Pro-Pixel-Tiefenhinweis-Skalierfaktor zu bestimmen.
  • Ein Blockdiagramm des Pixelgenerators 112 ist in 4 gezeigt. Die Aufbereitungsparameter von dem Geometriebeschleu niger werden in Aufbereitungsparameterregistern 130 plaziert. Die jeweiligen Aufbereitungsparameter werden von den Registern 130 zu einem Alpha-Interpolator 131, einem Rot-Interpolator 132, einem Grün-Interpolator 133, einem Blau-Interpolator 134, einem Tiefenhinweis-Skalierfaktorinterpolator 135, einem Rot-Spiegel-Interpolator 136, einem Grün-Spiegel-Interpolator 137 und einem Blau-Spiegel-Interpolator 138 geliefert. Die Interpolatoren 131 bis 138 weisen einen identischen Schaltungsaufbau auf und arbeiten für einen hohen Durchsatz unabhängig und gleichzeitig auf unterschiedlichen Parametern.
  • Im allgemeinen wird jeder Parameter für jedes Pixel in dem Dreieck berechnet. Ein Dreieck mit Scheitelpunkten V0, V1 und V2 ist in 7 gezeigt. Der Interpolator läuft zuerst schrittweise entlang der Kante E1 des Dreiecks von dem Scheitelpunkt V0 zu dem Scheitelpunkt V2 und bestimmt den Anfangswert des Parameters für jede Reihe von Pixeln in dem Dreieck. Die Pixelreihen 150, 152, 154 usw., sind in 7 gezeigt. Die Anfangswerte des Parameters werden für die Pixelreihen 150, 152, 154 an den Pixeln 160, 162 bzw. 164 bestimmt. Die Länge jeder Pixelreihe in dem Dreieck ist als ihre Spanne bekannt. Folglich weist beispielsweise bezugnehmend auf 7 die Pixelreihe 154 eine Spanne von dem Pixel 164 zu dem Pixel 168 auf. Die Anfangsparameterwerte für jede Pixelreihe werden aus dem Anfangswert des Parameters an dem Scheitelpunkt V0 und der Steigung des Parameters entlang der Kante E1 bestimmt. Nachdem die Anfangswerte für jede Pixelreihe bestimmt wurden, läuft der Interpolator schrittweise entlang jeder Pixelreihe in die X-Richtung und bestimmt den Parameterwert an jedem Pixel unter Verwendung des Anfangswertes für die Pixelreihe und der Steigung des Parameterwerts als einer Funktion von X. Die Parameterwerte für jedes Pixel in dem Dreieck werden zu der Texturmischeinheit 114 (3) geleitet.
  • Ein Blockdiagramm, das für jeden Interpolator in dem Pixelgenerator 112 darstellend ist, ist in 5 dargestellt.
  • Ein Kantenschrittgeber berechnet die Parameter entlang der Kanten jedes Dreiecks. Wie in 5 gezeigt ist, weist der Kantenschrittgeber zwei Stufen auf. Ein erster Kantenschrittgeber 180 erzeugt X- und Y-Werte jedes Pixels entlang der Kante E1, während ein zweiter Kantenschrittgeber 182 die Farb- und Z-Werte berechnet. Zwei Kantenschrittgeber sind für ein gutes Verhalten bevorzugt, da die Ergebnisse der X- und Y-Berechnungen für die Farb- und Z-Berechnungen erforderlich sind.
  • Ein Kachelschneider, der einen ersten Kachelschneider 184 und einen zweiten Kachelschneider 186 aufweist, beschränkt Pixel und Spannen, damit dieselben innerhalb des Bereichs des VRAM-Chips (1) der jedem Abtastwandler zugeordnet ist, liegen. Wie vorher gezeigt wurde, ist der Abtastwandler in getrennte Rahmenpuffersteuerungs-Chips geteilt, die für einen hohen Durchsatz parallel zu entsprechenden VRAM-Chips arbeiten. Jeder VRAM-Chip handhabt vorzugsweise eine Kachel das Anzeigebildschirms, die sechzehn Pixel in X-Richtung mal zwei Pixel in Y-Richtung aufweist. Der Kachelschneider beschränkt die Pixel, die durch den Interpolator verarbeitet werden, auf diejenigen in den 16×2-Pixelbereich des entsprechenden VRAM. Dies verbessert das Verhalten durch das Beseitigen unnötiger Zyklen für Pixel, die außerhalb des Bereichs des entsprechenden VRAM-Chips sind. Der Kachelschneider teilt jede Spanne des Dreiecks, das aufbereitet wird, in Unterspannen von maximal sechzehn Pixeln, die innerhalb des Bereichs des entsprechenden VRAM-Chips sind. Indem verhindert wird, daß unnötige Pixel in dem Spannenschrittgeber erzeugt werden, ist das Aufbereitungsverhalten signifikant verbessert.
  • Die Ausgabe des Kachelschneiders wird durch ein Spannen/Pixel-FIFO 190 zu einem Spannenschrittgeber 192 geliefert. Bei einem bevorzugten Ausführungsbeispiel ist der Spannen/Pixel-FIFO vierundsechzig Einträge tief. Der Spannenschrittgeber 192 erzeugt Pixelparameter basierend auf den Kanteninformationen für jede Spanne in dem Dreieck. Spannen weisen einen konstanten Y-Wert auf und können in entweder die positive oder die negative X-Richtung schrittweise durchlaufen werden, abhängig von dem Dreiecktyp. Die Ausgabe des Spannenschrittgebers 192 wird aus den Parameterwerten für jedes Pixel in dem Dreieck, das aufbereitet wird, eingestellt. Wie oben in Verbindung mit 4 erläutert wurde, liefert der Pixelgenerator 112 interpolierte Pro-Pixel-Parameterwerte für rot, grün, blau, α, den Tiefenhinweis-Skalierfaktor, Spiegel-rot, Spiegel-grün und Spiegel-blau. Interpolationsschaltungen zum Erzeugen von Pro-Pixel-Parameterwerten aus Aufbereitungsparametern durch eine Kantenschrittgebung und eine Spannenschrittgebung sind Fachleuten bekannt.
  • Wie vorher angezeigt wurde, mischt die Texturmischeinheit 114, die in 3 gezeigt ist, die Diffuswerte, die durch den Pixelgenerator 112 erzeugt werden, mit Texturfarbwerten, die von der Texturabbildungseinheit empfangen werden, um Zwischenfarbwerte zu liefern. Die Spiegelfarbwerte, die durch den Pixelgenerator 112 erzeugt werden, werden optional zu diesen Zwischenfarbwerten hinzugefügt, um resultierende Farbwerte zu liefern. Bei einem bevorzugten Ausführungsbeispiel weist die Texturmischeinheit 114 mehrere Texturmischmodi auf, von denen einer zur Verwendung bei der Aufbereitung jedes Dreiecks ausgewählt ist. In einem "Keine-Änderung"-Modus werden die Diffusfarbwerte ohne eine Modifikation durch die Texturfarben verwendet. Dies kann geeignet sein, wenn das Dreieck, das aufbereitet wird, keine Textur erfordert, oder wenn das Graphiksystem keine Texturabbildung aufweist. In diesem Fall werden die Diffusfarbwerte nicht modifiziert. In einem "Ersetzungs"-Modus werden die Diffusfarbwerte von dem Pixelgenerator durch die Texturtabellenfarbwerte ersetzt. Es sei bemerkt, daß die bekannte Pro-Scheitelpunkt-Tiefenhinweisgebung in dem Ersetzungsmodus absolut unwirksam wäre, da die Tiefenhinweisinformationen verloren sein würden. Bei einem "Modulations"-Modus werden die Diffusfarbwerte mit den Texturtabellenfarbwerten multipliziert. In einem "Abziehbild"-Modus werden die Diffusfarbwerte von dem Pixelgenerator mit den Texturtabellenfarbwerten gemäß einem Mischprozentsatz, der auf dem Texel-Alphawert basiert, gemischt. Nach dem Texturmischen werden die Spiegelfarbwerte optional hinzugefügt, um die resultierenden Farbwerte zu erzeugen. Die resultierenden Farbwerte, die durch die Texturmischeinheit 114 ausgegeben werden, werden der Tiefenhinweis-Mischeinheit 116 zugeführt.
  • Die Tiefenhinweis-Mischeinheit 116 führt eine Tiefenhinweisgebung jedes Farbwerts auf einer Pro-Pixel-Basis durch. Die Tiefenhinweis-Mischeinheit 116 implementiert die folgende Gleichung: Mit Tiefenhinweisen versehene Pixelfarbe = Pixelfarbe × Tiefenhinweis-Skalierfaktor + Tiefenhinweisfarbe × (1 – Tiefenhinweis-Skalierfaktor).
  • Die Pixelfarbe, die in der obigen Gleichung verwendet ist, ist der resultierende Farbwert, der von der Texturmischeinheit 114 empfangen wird. Der Tiefenhinweis-Skalierfaktor ist der Pro-Pixel-Wert, der durch den Pixelgenerator 112 berechnet wird. Die Tiefenhinweisfarbe wird durch den Hostcomputer spezifiziert und ist für jedes Dreieck festgelegt. Die Tiefenhinweisfarbe ist typischerweise schwarz, kann jedoch andere Farbwerte besitzen. Das Ergebnis ist ein mit Tiefenhinweisen versehener Pixelfarbwert für jedes Pixel in dem Dreieck.
  • Der Pro-Pixel-Lösungsansatz der Tiefenhinweisgebung liefert eine genauere Darstellung der Tiefenhinweisgebung als der Pro-Scheitelpunkt-Lösungsansatz. Dies ist eine Folge der Form der Gleichung für den mit Tiefenhinweisen versehenen Pixelfarbwert. Bei der Pro-Scheitelpunkt-Tiefenhinweisgebung, die in dem Abtastwandler linear interpoliert ist, ist die endgültige Pixelfarbe durch eine Gleichung erster Ordnung dargestellt. Bei der Pro-Pixel-Tiefenhinweisgebung, bei der sowohl die Farben als auch der Tiefenhinweis-Skalierfaktor linear interpoliert und dann gemischt werden, ist die endgültige Pixelfarbe durch eine Gleichung zweiter Ordnung dargestellt, die eine größere Genauigkeit liefert.
  • Der Pro-Pixel-Lösungsansatz für die Tiefenhinweisgebung ermöglicht die ordnungsgemäße Anwendung der Tiefenhinweisgebung auf mit Texturabbildungen versehene Polygone. Die Tiefenhinweisgebung muß durchgeführt werden, nachdem die Texturtabelle angewendet wurde. Andernfalls werden die Tiefenhinweisinformationen verzerrt oder gehen sogar verloren (beispielsweise in dem Ersetzungs-Texelmischmodus).
  • Der Schaltungsaufbau, der hierin beschrieben wurde, ist vorzugsweise in einer kundenspezifischen integrierten Schaltung großer Stückzahl unter Verwendung einer logischen Synthesesoftware, die kommerziell erhältlich ist, beispielsweise von Synopsys, implementiert. Die logische Synthesesoftware optimiert und übersetzt Schaltungsbeschreibungen, die in Hochpegelsprachen geschrieben sind, beispielsweise Verflog, in logische Gatter. Der Schaltungsaufbau kann unter Verwendung eines CMOS-Prozesses, der 1-Mikrometer-FETs erzeugt, die bei 5 Volt arbeiten, eines CMOS-Prozesses, der Bauelemente mit einer gezogenen Gatelänge von 0,6 Mikrometern erzeugt, die bei 3,3 Volt arbeiten, oder eines beliebigen anderen geeigneten Prozesses zum Implementieren digitaler Schaltungen implementiert sein. Da die Eingabe in die logische Synthesesoftware funktionell ist, und nicht strukturell, können sich die tatsächlichen Schaltungen, die durch die logische Synthesesoftware erzeugt werden, von den hierin beschriebenen unterscheiden.

Claims (6)

  1. Vorrichtung zum Versehen von Farben mit Tiefenhinweisen in einem Computergraphiksystem mit folgenden Merkmalen: einer ersten Schaltung (110), die auf eine Tiefenhinweis-Skalierfaktorfunktion und Scheitelpunktparameter eines Graphik-Grundelements, das als eine Mehrzahl von Pixeln angezeigt werden soll, anspricht, um einen Pro-Scheitelpunkt-Tiefenhinweis-Skalierfaktorwert für jeden Scheitelpunkt des Graphik-Grundelements zu bestimmen; einer zweiten Schaltung (110), die auf den Pro-Scheitelpunkt-Tiefenhinweis-Skalierfaktorwert und die Scheitelpunktparameter des Graphik-Grundelements anspricht, um Tiefenhinweis-Aufbereitungsparameter des Graphik-Grundelements zu bestimmen; einer dritten Schaltung (135), die auf den Pro-Scheitelpunkt-Tiefenhinweis-Skalierfaktorwert für einen ausgewählten Scheitelpunkt des Graphik-Grundelements und die Tiefenhinweis-Aufbereitungsparameter anspricht, um einen Pro-Pixel-Tiefenhinweis-Skalierfaktorwert für jedes der Pixel in dem Graphik-Grundelement zu bestimmen; einer vierten Schaltung (131, 132, 133, 134, 136, 137, 138), die auf die Scheitelpunktparameter des Graphik-Grundelements anspricht, um Pro-Pixel-Farbwerte für jedes der Pixel in dem Graphik-Grundelement zu bestimmen; und einer fünften Schaltung (116), die auf den Pro-Pixel-Tiefenhinweis-Skalierfaktorwert, die Pro-Pixel-Farbwerte und eine Tiefenhinweisfarbe anspricht, um mit Tiefenhinweisen versehene Pro-Pixel-Farbwerte für jedes der Pixel in dem Graphik-Grundelement zu bestimmen.
  2. Vorrichtung nach Anspruch 1, bei der die fünfte Schaltung (116) eine Einrichtung zum Bestimmen der mit Tiefenhinweisen versehenen Pro-Pixel-Farbwerte gemäß folgender Gleichung aufweist: mit Tiefenhinweisen versehene Pixelfarbe = Pixelfarbe × Tiefenhinweis-Skalierfaktor + Tiefenhinweisfarbe × (1 – Tiefenhinweis-Skalierfaktor).
  3. Vorrichtung nach Anspruch 1 oder 2, bei der das Computergraphiksystem eine Texturabbildungshardware zum Erzeugen von mit Texturabbildungen versehenen Farbwerten aufweist, wobei die Vorrichtung ferner eine weitere Schaltung (114) zwischen der vierten Schaltung (131, 132, 133, 134, 136, 137, 138) und der fünften Schaltung (116) aufweist, zum Mischen der Pro-Pixel-Farbwerte und der mit Texturabbildungen versehenen Farbwerte, um resultierende Pro-Pixel-Farbwerte zu liefern.
  4. Vorrichtung nach einem der Ansprüche 1 bis 3, bei der die zweite Schaltung (110) eine Einrichtung zum Bestimmen einer ersten Steigung des Tiefenhinweis-Skalierfaktors entlang einer Kante des Graphik-Grundelements, die an den ausgewählten Scheitelpunkt angrenzt, und einer zweiten Steigung des Tiefenhinweis-Skalierfaktors entlang einer Pixelreihenrichtung aufweist.
  5. Vorrichtung nach einem der Ansprüche 1 bis 4, bei der die dritte Schaltung (135) einen Kantenschrittgeber zum Bestimmen eines Tiefenhinweis-Skalierfaktorwerts an jeder Pixelreihe entlang der Kante und einen Spannenschrittgeber (192) zum Bestimmen des Pro-Pixel-Tiefenhinweis-Skalierfaktorwerts für jede Pixelreihe in dem Graphik-Grundelement aufweist.
  6. Vorrichtung nach einem der Ansprüche 1 bis 5, bei der das Graphik-Grundelement ein Dreieck ist.
DE19620858A 1995-06-08 1996-05-23 Computergraphiksystem mit Pixel-Tiefenhinweisgebung Expired - Fee Related DE19620858B4 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US488641 1995-06-08
US08/488,641 US5704025A (en) 1995-06-08 1995-06-08 Computer graphics system having per pixel depth cueing

Publications (2)

Publication Number Publication Date
DE19620858A1 DE19620858A1 (de) 1996-12-12
DE19620858B4 true DE19620858B4 (de) 2004-11-18

Family

ID=23940513

Family Applications (1)

Application Number Title Priority Date Filing Date
DE19620858A Expired - Fee Related DE19620858B4 (de) 1995-06-08 1996-05-23 Computergraphiksystem mit Pixel-Tiefenhinweisgebung

Country Status (5)

Country Link
US (1) US5704025A (de)
JP (1) JP3821880B2 (de)
DE (1) DE19620858B4 (de)
FR (1) FR2735259B1 (de)
GB (1) GB2302001B (de)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3226153B2 (ja) * 1996-03-18 2001-11-05 シャープ株式会社 マルチメディアデータ表示装置
JP3763136B2 (ja) * 1996-12-27 2006-04-05 ソニー株式会社 描画方法および描画装置
US5914724A (en) * 1997-06-30 1999-06-22 Sun Microsystems, Inc Lighting unit for a three-dimensional graphics accelerator with improved handling of incoming color values
US7796132B1 (en) * 1999-11-18 2010-09-14 Namco Bandai Games Inc. Image generation system and program
WO2003036566A2 (de) * 2001-10-22 2003-05-01 Leica Microsystems Wetzlar Gmbh Verfahren und vorrichtung zur erzeugung lichtmikroskopischer, dreidimensionaler bilder
DE10331231B4 (de) * 2003-07-10 2005-12-15 Eads Deutschland Gmbh Verfahren zur Übertragung von Tiefeninformationen in den Tiefenspeicher einer Grafikkarte für die Darstellung von 3D-Panoramabildern
JP2005100176A (ja) * 2003-09-25 2005-04-14 Sony Corp 画像処理装置およびその方法
EP1622393B1 (de) * 2004-07-30 2010-03-31 STMicroelectronics S.r.l. Farbinterpolation mit datenabhängiger Triangulation
US7312801B2 (en) * 2005-02-25 2007-12-25 Microsoft Corporation Hardware accelerated blend modes
US7545385B2 (en) * 2005-12-22 2009-06-09 Samsung Electronics Co., Ltd. Increased color depth, dynamic range and temporal response on electronic displays
DE102007008767B3 (de) * 2007-02-22 2008-07-24 Tomtec Imaging Systems Gmbh Verfahren und Vorrichtung zur Darstellung von 3D Bilddatensätzen auf 2D Bildern

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0454129A2 (de) * 1990-04-26 1991-10-30 Honeywell Inc. System zur Erzeugung einer texturierten Perspektivsicht
US5063375A (en) * 1987-07-27 1991-11-05 Sun Microsystems, Inc. Method and apparatus for shading images

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2618951B2 (ja) * 1988-02-16 1997-06-11 株式会社東芝 三次元図形処理装置
US5237650A (en) * 1989-07-26 1993-08-17 Sun Microsystems, Inc. Method and apparatus for spatial anti-aliased depth cueing
CA2038412C (en) * 1990-04-26 2001-10-16 Glenn M. Courtright Polygon sort engine

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5063375A (en) * 1987-07-27 1991-11-05 Sun Microsystems, Inc. Method and apparatus for shading images
EP0454129A2 (de) * 1990-04-26 1991-10-30 Honeywell Inc. System zur Erzeugung einer texturierten Perspektivsicht

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
FOLEY, J.D. u.a.: Computer Graphics, Principles and practise, Addison-Wesley 1990, S. 721-728, 734-744, 882-885
FOLEY, J.D. u.a.: Computer Graphics, Principles and practise, Addison-Wesley 1990, S. 721-728, 734-744, 882-885 *

Also Published As

Publication number Publication date
FR2735259A1 (fr) 1996-12-13
JP3821880B2 (ja) 2006-09-13
GB2302001A (en) 1996-12-18
JPH096988A (ja) 1997-01-10
GB2302001B (en) 1999-09-22
GB9611672D0 (en) 1996-08-07
DE19620858A1 (de) 1996-12-12
FR2735259B1 (fr) 1999-09-03
US5704025A (en) 1997-12-30

Similar Documents

Publication Publication Date Title
DE69839277T2 (de) Verfahren und anordnung zur ausführung von farbschlüsseln, transparenz und nebelfunktionen
DE60120474T2 (de) Rasterung von dreidimensionalen bildern
DE10296401B4 (de) Verbund-Rendering von 3-D-Graphikobjekten
DE19646194B4 (de) Echtzeit-Wiedergabeverfahren zum wahlweisen Ausführen von Bump-Mapping- und Phong-Schattierungs-Prozessen und zugehörige Vorrichtung
EP0984397B1 (de) Verfahren und Vorrichtung zum Eliminieren unerwünschter Stufungen an Kanten bei Bilddarstellungen im Zeilenraster
DE69919497T2 (de) Verfahren und Gerät zur Volumendarstellung mit mehreren Tiefenpuffern
DE19620263B4 (de) Datensynchronisation zwischen einer Mehrzahl von asynchronen Datenaufbereitungen
DE69333508T2 (de) Vorrichtung und Verfahren zur Verarbeitung von Videosignalen
EP0927496B1 (de) Vorrichtung und verfahren zur erzeugung eines kompositbildes
DE19807013B4 (de) Volumetrisches Vorabschneidungsverfahren, das eine minimale Anzahl von Abtastpunkten durch ein Volumen gewährleistet
EP0789328A2 (de) Bildverarbeitungsverfahren zur Darstellung von spiegelnden Objekten und zugehörige Vorrichtung
DE19709220A1 (de) System und Verfahren für eine beschleunigte Verdeckungsauslese
DE19619288A1 (de) System und Verfahren zur Dreieck-Rasterung mit in zwei Dimensionen verschachtelten Rahmenpuffern
DE69735181T2 (de) Verfahren und Vorrichtung für virtuelle Architektur
DE19620858B4 (de) Computergraphiksystem mit Pixel-Tiefenhinweisgebung
EP0862141A2 (de) Bilddarstellungsverfahren und Vorrichtung zur Durchführung des Verfahrens
DE60118222T2 (de) Skalieren von bildern
US6184893B1 (en) Method and system for filtering texture map data for improved image quality in a graphics computer system
DE60024117T2 (de) Tiefenbasierte mischung mit 3d aufrasterungsgerät
DE60033589T2 (de) Bildverarbeitung
DE112011105126T5 (de) Texturkartierungsvorrichtung
DE602005003575T2 (de) Vorwärts-texturabbildungs-3d-graphiksystem
DE69813992T2 (de) Bilderzeugungsgerät, -Verfahren und -Programaufzeichnungsmedium, Bildkompositionsgerät, -Verfahren und -Programmaufzeichnungsmedium
DE4100691B4 (de) Verfahren zur Darstellung eines dreidimensionalen Modells
DE69817152T2 (de) Computergraphisches bump-mapping-verfahren und geraet

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
8127 New person/name/address of the applicant

Owner name: HEWLETT-PACKARD CO. (N.D.GES.D.STAATES DELAWARE),

8364 No opposition during term of opposition
8327 Change in the person/name/address of the patent owner

Owner name: HEWLETT-PACKARD DEVELOPMENT CO., L.P., HOUSTON, TE

8339 Ceased/non-payment of the annual fee