DE69130123T2 - Anzeigegerät und Verfahren zum Betreiben eines solchen Geräts - Google Patents

Anzeigegerät und Verfahren zum Betreiben eines solchen Geräts

Info

Publication number
DE69130123T2
DE69130123T2 DE69130123T DE69130123T DE69130123T2 DE 69130123 T2 DE69130123 T2 DE 69130123T2 DE 69130123 T DE69130123 T DE 69130123T DE 69130123 T DE69130123 T DE 69130123T DE 69130123 T2 DE69130123 T2 DE 69130123T2
Authority
DE
Germany
Prior art keywords
matrix
values
texture
memory
texture memory
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
DE69130123T
Other languages
English (en)
Other versions
DE69130123D1 (de
Inventor
Paul Anthony Redhill Surrey Rh1 5Ha Winser
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.)
Koninklijke Philips NV
Original Assignee
Koninklijke Philips Electronics NV
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 Koninklijke Philips Electronics NV filed Critical Koninklijke Philips Electronics NV
Publication of DE69130123D1 publication Critical patent/DE69130123D1/de
Application granted granted Critical
Publication of DE69130123T2 publication Critical patent/DE69130123T2/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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/14Digital output to display device ; Cooperation and interconnection of the display device with other functional units

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Graphics (AREA)
  • Human Computer Interaction (AREA)
  • General Engineering & Computer Science (AREA)
  • Image Generation (AREA)
  • Controls And Circuits For Display Device (AREA)
  • Image Input (AREA)
  • Digital Computer Display Output (AREA)

Description

  • Die Erfindung bezieht sich auf ein Anzeigegerät mit einem Anzeigeprozessor mit einem dazugehörigen Texturspeicher zum Speichern einer pyramidenförmigen oder teilweise pyramidenförmigen Wertematrix von Texturelementen ("Texel"), die eine Mehrzahl zweidimensionaler (2-D-)Matrizen umfaßt, die ein 2-D-Modulationsmuster auf mindestens zwei verschiedenen Auflösungsgraden darstellen, wobei der Anzeigeprozessor zudem mindestens eine Vorrichtung zum Empfangen der Beschreibung einer Grundform umfaßt, die die Angabe enthält, daß das gespeicherte Modulationsmuster zum Anzeigen auf eine Grundform abgebildet werden muß, und eine Vorrichtung zum Erzeugen von 2-D- Koordinatenpaaren, die Texelwerte in einer gespeicherten 2-D-Matrix adressieren, um die Abbildung des gespeicherten Modulationsmusters auf die Grundform auszuführen, und eine 2-D-Interpoliervorrichtung, die auf die Bruchteile der genannten 2-D- Koordinatenpaare reagiert und eine Anzahl Texelwerte aus der adressierten Matrix so kombiniert, daß ein interpolierter Texelwert erzeugt wird.
  • Die Erfindung bezieht sich außerdem auf ein Verfahren zum Betreiben eines solchen Anzeigegeräts.
  • In WO 85/00913 wird ein Gerät der im ersten Absatz beschriebenen Art dargestellt, das in Echtzeit Bilder synthetisiert und anzeigt, die Szenen einer dreidimensionalen Flugsimulation darstellen. Das Gerät verwendet ein in der Fachwelt als "Texturabbildung" bekanntes Verfahren, bei dem ein 2-D-Muster ("Textur") zuvor erzeugt und im Texturspeicher gespeichert wurde, worauf eine einzige Grundform mit der darauf abgebildeten Textur übertragen (vom "Objektraum" in den "Bildschirmraum" umgewandelt und in den Speicher des Anzeigegeräts eingelesen) wird. Diese Technik ermöglicht die Darstellung einer großen Anzahl Oberflächendetails ohne eine entsprechende Vermehrung der Grundformen, die zum Erzeugen des Bilds übertragen werden müssen. In einem einfachen Beispiel definiert das gespeicherte Muster die Farbe der Oberfläche eines Gegenstandes, so daß die Texelwerte die Farbwerte sind und direkt in den Speicher des Anzeigegeräts geschrieben werden können. Im allgemeinen können die Texelwerte weiter verarbeitet oder auf andere Weise zur Steuerung der Weiterverarbeitung verwendet werden, um zum Beispiel die schnelle Berechnung komplexer Beleuchtungseffekte zu ermöglichen.
  • Die Texturabbildung kann vollständig mittels Software erfolgen, aber diese Erfindung beschäftigt sich mit Hardwarelösungen auf dem Gebiet der Bildsynthese in Echtzeit. Die Texelwerte müssen beim Abbilden gefiltert werden, um Verfremdungseffekte zu vermeiden. Um das Berechnen gefilterter Werte zu vereinfachen, speichern herkömmliche Geräte die Texturen in sogenannten pyramidenförmigen Matrizen, die eine Reihe von 2-D-Matrizen umfassen, welche jeweils auf einen anderen Auflösungsgrad vorgefiltert sind. Dann ist eine einfache 2-D- Interpoliervorrichtung wie z. B. ein bilinearer Interpolierer ausreichend, da jeder einzelne interpolierte Wert aus einem kleinen und konstanten Ausschnitt von Texelwerten in der entsprechenden 2-D-Matrix erzeugt wird. Lance Williams beschreibt das Erzeugen und Speichern von pyramidenförmigen Texturmatrizen in seiner Publikation "Pyramidal Parametrics" in Computer Graphics, Band 17, Nr. 3 (Proc. SIGGRAPH 1983) auf Seite 1 bis 11.
  • Herkömmlicherweise werden vorgefilterte, pyramidenförmige Matrizen von Software erzeugt, die auf dem Zentralrechner läuft. Die aufeinanderfolgenden 2-D- Matrizen der Pyramide im Speicher des Zentralrechners werden aus einer großen, von einer Quelle, beispielsweise einer Kamera, empfangenen Matrix der höchsten Ebene erzeugt und so die Textur eines natürlichen Gegenstandes gewonnen, sie können aber auch durch Berechnen der Beleuchtung etc. unter Verwendung von Daten erzeugt werden, die den abgebildeten 3-D-Objektraum definieren. Dieses Vorfiltern mit Software kann sehr langsam sein, da das Erzeugen jedes gefilterten Werts aus einem Ausschnitt von Texelwerten mit höherer Auflösung eine große Zahl von Speicherzugriffen erfordert. Außerdem kann jeder Texelwert mehrere unabhängige Komponenten umfassen (wie z. B. R, G, B), die im herkömmlichen Zentralrechner getrennt interpoliert werden müssen.
  • Diese geringe Geschwindigkeit bedeutet, daß die Texturpyramiden nicht nur dann erzeugt werden können, wenn sie für die Anzeige in Echtzeit benötigt werden: Alle Ebenen aller möglicherweise benötigten Texturpyramiden müssen vor Beginn der Bildsynthese in Echtzeit erzeugt werden. Dies kann dazu führen, daß ein großer Teil des Hauptspeichers von Texturmatrizen eingenommen wird, die niemals gebraucht werden. Es schließt auch die Verwendung von Texturen aus, die von der Entwicklung des 3-D-Modells abhängen. Es sind beispielsweise Texturabbildungen bekannt, die für die Definition von Spiegelungen mit einer "Umgebungsabbildung" genannten Technik verwendet werden. Wenn sich ein Gegenstand im Rahmen einer Simulation in eine Umgebung hinein bewegt, sollte sich die Umgebungsabbildung im Idealfall entsprechend ändern.
  • Es wäre also ein Vorteil, wenn pyramidenförmige oder teilweise pyramidenförmige Matrizen schneller als heute aus einzelnen 2-D-Matrizen erzeugt werden könnten, aber der Preis von 2-D-Filter-Hardware, die für diesen Zweck bestimmt ist, wäre häufig prohibitiv.
  • Diese Erfindung liefert ein Anzeigegerät wie das im ersten Absatz beschriebene Gerät, dadurch gekennzeichnet, daß das Gerät außerdem eine Rückführvorrichtung umfaßt, mit der die von der 2-D-Interpoliervorrichtung aus einer 2-D-Matrix erzeugten, interpolierten Texelwerte in den Texturspeicher zurückgeführt werden und eine weitere 2-D-Matrix der pyramidenförmigen oder teilweise pyramidenförmigen Matrix bilden.
  • Die Erfindung liefert auch ein Verfahren zum Betreiben eines Anzeigegeräts, das in Übereinstimmung mit der im vorangegangenen Absatz beschriebenen Erfindung gebaut wurde, wobei das Verfahren folgende Schritte umfaßt:
  • (a) Übertragen einer ersten 2-D-Matrix mit Texturwerten, die ein 2-D- Modulationsmuster eines ersten Auflösungsgrads darstellt, vom Hauptspeicher in den Texturspeicher;
  • (b) Veranlassen der Vorrichtung im Anzeigeprozessor, 2-D- Koordinatenpaare zu erzeugen, die systematisch die Texelwerte der ersten 2-D-Matrix adressieren, so daß die Anzahl der von der Interpoliervorrichtung erzeugten interpolierten Werte kleiner ist als die Anzahl in der ersten 2-D-Matrix und sie das besagte Modulationsmuster in einem zweiten Auflösungsgrad darstellen, der niedriger ist als der erste Grad; und
  • (c) Aktivieren der Rückführvorrichtung, und so die interpolierten Werte in Form einer zweiten, kleineren 2-D-Matrix von Texturwerten im Texturspeicher speichern, wobei die 2-D-Matrix zusammen mit der ersten 2-D-Matrix Teil einer pyramidenförmigen Matrix ist. Die zweite 2-D-Matrix kann beispielsweise im Speicher in einer oder in beiden Dimensionen halb so viel Texelwerte enthalten wie die erste Matrix.
  • Die Erfindung macht von der Erkenntnis Gebrauch, daß, wenn die Vorrichtung im Anzeigeprozessor die gespeicherte 2-D-Matrix systematisch, aber mit geringer Dichte abtastet und 2-D-Koordinatenpaare mit entsprechenden Abständen erzeugt, dann die Reihe der vom Interpolierer erzeugten Werte, die gewöhnlich zum Bestimmen von Pixelwerten im Speicher des Anzeigegeräts verwendet würden, so eingestellt werden kann, daß sie die Werte annehmen, die zur Bildung einer 2-D-Matrix benötigt werden, die das selbe Muster mit geringerer Auflösung darstellt. Die Schritte (b) und (c) des Verfahrens können wiederholt werden oder nicht, um so viele oder so wenige Pyramidenebenen zu erzeugen, wie benötigt.
  • Die Erfindung spart Speicherplatz im Hauptspeicher, in dem dann nur die höchste Ebene einer Pyramide gespeichert werden muß (und vielleicht eine weitere Matrix auf einer mittleren Ebene, wenn nur niedrige Auflösung benötigt wird). Außerdem wird die Pyramide im allgemeinen viel schneller erzeugt, wenn sie von der Hardware im Anzeigeprozessor erzeugt wird und nicht vom Zentralrechner. Es wird z. B. im Anzeigeprozessor spezielle Adressierhardware bereitgestellt, und die Interpoliervorrichtung umfaßt oft drei parallele Interpolierer, jeweils einen für die Werte der roten, grünen und blauen Komponente, während der Zentralrechner diese Komponenten seriell bearbeitet.
  • Der Texturspeicher kann getrennte erste und zweite parallel adressierte Texturspeicherbänke umfassen, während die Rückführvorrichtung so eingerichtet wird, daß sie die andere 2-D-Matrix in einer der besagten Texturspeicherbänke speichert, die von derjenigen Speicherbank verschieden ist, in der die eine 2-D-Matrix gespeichert ist, wodurch es möglich wird, daß Texelwerte der einen 2-D-Matrix gelesen und an die Interpoliervorrichtung geliefert werden, und parallel die interpolierten Werte gespeichert werden, die die andere 2-D-Matrix bilden. Dadurch ergibt sich ein weiterer Geschwindigkeitsvorteil gegenüber dem Zentralrechner, da der Hauptspeicher gewöhnlich nicht zwei Ein- und Ausgänge hat.
  • In einer solchen Ausführung mit nur der ersten und der zweiten Texturspeicherbank werden die Vorrichtung zum Erzeugen von 2-D-Koordinaten und die Rückführvorrichtung so eingerichtet, daß sie aufeinanderfolgende Ebenen geringerer Auflösung der pyramidenförmigen Matrix erzeugen und abwechselnd in der ersten und der zweiten Texturspeicherbank speichern.
  • Der Texturspeicher kann in mindestens drei parallel adressierte Speicher unterteilt (oder weiter unterteilt) werden, während die Speichervorrichtung für 2-D- Matrizen so eingerichtet wird, daß die Texelwerte jeder 2-D-Matrix auf verschachtelte Weise angeordnet werden, so daß die Texelwerte eines 2-D-Ausschnitts parallel aus dem Texturspeicher (oder gegebenenfalls aus der ersten und der zweiten Texturspeicherbank) gelesen werden können, und die Interpoliervorrichtung so eingerichtet wird, daß sie die 2-D-Interpolation innerhalb jedes Ausschnitts mit der Interpolation zwischen den Ebenen kombiniert und so aus zwei Ausschnitten mit mindestens sechs Texelwerten einen einzigen 3-D-interpolierten Wert erzeugt. Dies ermöglicht ein sehr schnelles Lesen von Texelwerten für die Anzeige und erfordert nicht mehr Lesezyklen im Speicher, als für einfache Punktabtastung erforderlich wären.
  • Es kann jedoch auch die 2-D-Adressierung von Ausschnitten dazu verwendet werden, um das Erzeugen pyramidenförmiger Matrizen in Übereinstimmung mit dieser Erfindung zu beschleunigen. Dementsprechend kann die Interpoliervorrichtung einen ersten und einen zweiten 2-D-Interpolierer umfassen, die dem Durchführen der 2-D-Interpolation zwischen den Werten in den 2-D-Ausschnitten dienen, die in der ersten bzw. der zweiten Texturspeicherbank gespeichert sind, während die Rückführvorrichtung es ermöglicht, daß Texelwerte, die aus einer in der einen Texturspeicherbank gespeicherten 2-D-Matrix gelesen und vom ersten 2-D- Interpolierer interpoliert wurden, in eine andere 2-D-Matrix in einer anderen Texturspeicherbank geschrieben werden.
  • Der Texturspeicher kann einen linear adressierten Speicher umfassen, wobei der Anzeigeprozessor außerdem eine Vorrichtung zum Erzeugen physikalischer Adressen umfaßt, die ein 2-D-Koordinatenpaar empfängt und daraus eine lineare physikalische Adresse für die Verwendung im Texturspeicher erzeugt. In Übereinstimmung mit einer anderen, hier beschriebenen Erfindung ermöglicht die Verwendung eines linearen Texturadreßraums eine effizientere Verwendung des verfügbaren Texturspeichers.
  • Es folgt eine Beschreibung von Ausführungsformen der Erfindung anhand von Beispielen mit bezug auf die beigefügten Zeichnungen, von denen:
  • Fig. 1 das Blockdiagramm eines Anzeigegeräts mit einer herkömmlichen Texturabbildungshardware ist;
  • Fig. 2 eine in einem Texturspeicher gespeicherte 2-D-Matrix von Texelwerten zeigt;
  • Fig. 3 ein schematisches Blockdiagramm neuartiger
  • Texturabbildungshardware entsprechend dieser Erfindung ist;
  • Fig. 4 die Speicherung von drei pyramidenförmigen Texturabbildungen in zwei linearen Texturspeichern in der Hardware von Fig. 3 zeigt;
  • Fig. 5 den Inhalt eines Seitentabellenspeichers in der Hardware von Fig. 3 zeigt;
  • Fig. 6 ein Flußdiagramm ist, das die Erzeugung gefilterter 2-D-Matrizen mit Hilfe der Rückführleitungen in der Hardware von Fig. 3 bis 5 in Übereinstimmung mit dieser Erfindung darstellt; und
  • Fig. 7 die Speicherung von zwei pyramidenförmigen Texturabbildungen in zwei zweidimensionalen Texturspeichern zeigt, die der herkömmlichen Hardware ähnelt.
  • Fig. 1 ist das Blockdiagramm eines Anzeigegeräts mit herkömmlicher Texturabbildungshardware. Eine Tastatur 10 und eine Rollkugel 12 ermöglichen einem Anwender die Eingabe in einen Zentralprozessor (CPU) 14. Die Rollkugel kann zum Zeichnen dreidimensionaler Objekte verwendet werden, die vom System auf herkömmliche Weise manipuliert werden. Es können selbstverständlich auch andere Eingabegeräte wie Joystick, Digitalisiertafel oder eine "Maus" verwendet werden. Solche Geräte können auch zum Manipulieren der erzeugten Bilder durch Drehen, Zoomen usw. verwendet werden. Im allgemeinen können solche Geräte intuitiver und effektiver eingesetzt werden als eine herkömmliche Tastatur. Gegenstände und fotografische Bilder, die mit Hilfe von Texturabbildung auf die Oberfläche von Gegenständen aufgebracht werden sollen, können auch von einer Bildquelle wie z. B. einer Kamera 16 eingegeben werden.
  • Die CPU 14 ist über einen Bus 18 (beispielsweise ein VME-Bus) mit dem Plattenspeicher 20, einem ROM 22 und einem Hauptspeicher (MRAM) 24 verbunden. Der Plattenspeicher, der magnetische Disketten, Festplatten und/oder optische Speicherplatten umfassen kann, wird dazu verwendet, Daten (beispielsweise von Bildern oder 3-D-Modellen) zu speichern, die zurückgeholt und manipuliert werden können, und durch Manipulation können nach Wunsch neue Bilder erzeugt werden. Zu diesen Daten können die Ergebnisse der Arbeit des Anwenders in früheren Arbeitssitzungen und/oder kommerziell, z. B. für die Anwendung in interaktivem CAD oder für Computersimulationen in Bildung und Unterhaltung, erzeugte Daten gehören. Um das Modellieren solcher 3-D-Objekte zu ermöglichen werden solche Daten im allgemeinen als polygonale Modelldaten gespeichert, und nicht in zweidimensionalen Bildern. In diesem Fall entsprechen die Daten einem 3-D-Modell, das Objekte enthält, die typischerweise in Gruppen polygonaler (z. B. dreieckiger oder viereckiger) Oberflächen (Grundformen) in einem 3-D-"Objekt"-Raum zerlegt sind. Zu den Daten jedes Objekts im Modell gehören die Position und die Art aller Polygone, die das Objekt ausmachen, einschließlich der relativen Positionen ihrer Ecken und die Farbe oder die Transparenz der Polygonoberfläche. In anderen, dem Fachmann bekannten Systemen können gekrümmte Oberflächenausschnitte zu den Grundformen gehören. Bekanntlich läßt sich eine "Textur" für die Abbildung auf die Oberfläche beschreiben, so daß Einzelheiten dargestellt werden können, ohne die Zahl der Grundformen des Bildes zu erhöhen. Eine Texturabbildung wird in einer zweidimensionalen Matrix mit Texturelementwerten ("Texelwerten") gespeichert, die ein 2-D-Modulationsmuster definieren, das beispielsweise die Farbe der Pixel auf die weiter unten beschriebene Weise beschreibt. Die Textur kann, wie dem Fachmann bekannt ist, auch andere Größen wie Reflexionsvermögen und Oberflächennormale modulieren. Auch diese Texturabbildungen können im Plattenspeicher 20 gespeichert und bei Bedarf abgerufen werden.
  • Die CPU 14 und die anderen Komponenten des Systems übertragen dann mit Hilfe von geometrischen Transformationen, welche Translationen, Rotationen und perspektivische Projektionen im allgemeinen durch Matrizenmultiplikation der Eckkoordinaten ausführen, die 3-D-"Modellwelt" im Objektraum in eine zweidimensionale Ansicht (im "Anwenderraum") für den Anwender von einem beliebigen, vom Anwender gewählten Standpunkt. Die CPU 14 kann auch auf die Grundformen oder die Ecken bezogene Berechnungen von Ausschnitten und Beleuchtung ausführen.
  • Die ROM 22 und die MRAM 24 liefern Programmspeicher und Arbeitsspeicher für die CPU 14, die einen Mikroprozessor wie etwa einen Motorola MC68020 umfassen kann. Es kann spezielle Verarbeitungshardware 26 zur Unterstützung der CPU 14 zur Verfügung gestellt werden, die die große Zahl von Rechenoperationen ausführt, die für die Umwandlung auch nur der einfachsten Modelle in ein zweidimensionales Bild benötigt werden. Die Hardware 26 kann Standard- Rechenschaltungen umfassen oder auch leistungsfähigere, auf Bestellung angefertigte oder programmierbare integrierte Schaltkreise für digitale Signalverarbeitung (DSP), und sie kann mit der CPU 14 beispielsweise über einen VME-Bus verbunden sein. Die Art der Hardware 26 wird von den Anforderungen an das System beispielsweise bezüglich Geschwindigkeit, Auflösung, Anzahl der Grundformen je Bild etc. abhängen.
  • Zwischen die Ausgänge der CPU 14 (dem Bus 18) und den Eingängen eines Anzeigespeichers (VRAM) 30 wird eine Bildverarbeitungsvorrichtung (DPU) 28 geschaltet. Der Anzeigespeicher 30 speichert die Pixeldaten COL ( = Farbe) im Rasterabtastungsformat. Die Pixeldaten COL umfassen typischerweise für jedes Pixel drei 8-Bit-Werte (insgesamt 24 Bit), die der roten (R), grünen (G) und blauen (B) Komponente des gewünschten Bildes entsprechen. Dem Fachmann wird bekannt sein, daß in anderen Ausführungen mehr oder weniger Bits verwendet werden, oder daß die Farbbits andere Komponenten ausdrücken.
  • In der DPU 28 erfolgt eine "Abtastumwandlung" der Grundformen, so daß diese in den Anzeigespeicher 30 geschrieben werden können. Abtastumwandlung ist ein Vorgang, bei dem die von einer Grundform abgedeckten Pixel zeilenweise und pixelweise so geschrieben werden, wie das gesamte Bild für den Ausgang zum Anzeigegerät abgetastet wird.
  • Ein Zeitgeber (Bildregler) 32 erzeugt Leseadreßsignale XD und YD zum Adressieren der Pixeldaten im VRAM 30 synchron mit der Rasterabtastung des Bildschirms 34. Als Reaktion auf diese Adressignale werden die Stellen im VRAM 30 reihenweise und spaltenweise abgetastet und die Farbwerte COLD gelesen, die in einen Digital-Ananlog-Wandler (DAC) 36 eingespeist werden. Wenn ein anderer Farbencode als RGB verwendet wird, kann eine Matrizenschaltung oder eine Farbtabelle für die Umwandlung der Pixeldaten COLD in ein äquivalentes RGB-Signal zur Verfügung gestellt werden, das an den Bildschirm 34 geliefert wird, der beispispielsweise eine Kathodenstrahlröhre (CRT) sein kann. Der Bildschirm 34 empfängt direkt oder indirekt auch Taktsignale (SYNC) vom Zeitgeber 32.
  • Zum zeichnen oder "darstellen" einer Grundform veranlaßt die CPU 14 (oder die spezielle Hardware 26) das Laden der Register in der DPU 28 über den Bus 18 mit Werten, die eine einzige Grundform bestimmen (z. B. in Form von Eckkoordinaten, Eckneigung usw.) und ihre verschiedenen Merkmale - Farbe, Reflexionsvermögen usw. Die DPU 28 erzeugt dann Pixelkoordinaten (X und Y) für das systematische Abtasten der gesamten, von der Grundform abgedeckten Fläche. Die Pixelkoordinaten X und Y werden als Schreibadressen zur VRAM 30 geleitet, so daß für jedes Pixel ein Pixelwert COL in die VRAM 30 geschrieben werden kann.
  • Die Pixelwerte COL können so erzeugt werden, daß eine Grundfarbe der Oberfläche der Grundform so moduliert wird, daß sie die Merkmale der Oberfläche eines Objekts (z. B. Farbe, Transparenz, diffuses Reflexionsvermögen, spiegelndes Reflexionsvermögen) und der 3-D-Umgebung (z. B. Stellung, Farbe und Form von Lichtquellen, entfernungsbedingte Trübung) realistisch wiedergibt. Diese Modulation läßt sich rechnerisch aus Parametern erzeugen, die zusammen mit den Daten der Grundform geladen wurden, um beispielsweise eine gleitende Änderung der Schattierung zu erzeugen und dadurch eine gekrümmte Oberfläche zu simulieren. Um jedoch eine detailliertere Modulation zu erzeugen, wird bekanntlich eine Abbildungshardware verwendet, die in der Figur mit 40 bezeichnet wurde, die Modulationswerte MOD nach einem vorbestimmten, zuvor in einem Texturspeicher 41 gespeicherten Muster liefert.
  • Zu diesem Zweck erzeugt die DPU 28 gleichzeitig mit jedem Pixelkoordinatenpaar (Anzeigekoordinatenpaar) X und Y ein Texturkoordinatenpaar U und V, so daß das Modulationsmuster auf die Grundform abgebildet wird, und geometrische Transformationen (i) aus dem Texturraum in den Objektraum und (ii) aus dem Objektraum in den Betrachterraum (Anzeigeraum) durchgeführt werden. Fig. 2 zeigt die Beziehung zwischen dem Texturraum, der durch die horizontale und die vertikale, mit U bzw. V bezeichneten Achsen definiert wird, und dem Bildschirmraum, der durch die schrägen Achsen X und Y definiert wird. Die tatsächlich gespeicherten Texelwerte entsprechen ganzzahligen Werten von X und U und werden durch eine quadratische Matrix ausgefüllter Kreise dargestellt. Die Orte der Pixel im Bildschirmraum werden mit diagonalen Kreuzen ('x') bezeichnet und liegen entlang der mit S1, S2 und S3 usw. bezeichneten Abtastlinien parallel zur x-Achse.
  • Für das Festlegen der Koordinaten U und V, die für das Adressieren der Pixelwerte benötigt werden, die der Reihe der Pixelwerte auf den Abtastlinien S1, S2, S3 usw. entsprechen, kann die CPU 14 (oder die Graphikhardware 26) beispielsweise vorab das Koordinatenpaar (U0, V0) an die DPU 28 liefern, welches dem ersten Pixel auf der Abtastlinie 51 entspricht, sowie die partiellen Ableitungen ∂U/∂X und ∂V/∂X, die die Neigung der Abtastllinien S1 usw. des Bildraums im Texturraum und die partiellen Ableitungen ∂U/∂Y und ∂V/∂Y, die die Neigung der Pixelspalten im Texturraum angeben. Im dargestellten Beispiel ist die Transformation des Bildschirmraums in den Texturraum linear. Im allgemeinen Fall können die Abtastlinien S1 usw. und die Pixelspalten divergieren, konvergieren oder sogar gekrümmt sein, was bedeutet, daß die partiellen Ableitungen sich auf der ganzen Grundform von Punkt zu Punkt ändern.
  • Die Texturkoordinaten U und V werden von der Abbildungshardware 40 auf die unten beschriebene Weise verarbeitet und in den Texturspeicher 41 geleitet, so daß für jedes adressierte Pixel X, Y ein Modulationswert MOD verfügbar ist. Der Wert MOD umfaßt gewöhnlich einen Farbwert, und er könnte prinzipiell direkt den Pixelwert COL bilden und direkt in den Anzeigespeicher (VRAM) 30 eingespeist werden, was durch den punktierten Datenweg 42 dargestellt ist. Im allgemeinen jedoch werden die MOD-Werte, auch wenn sie Farbwerte sind, von der DPU 28 modifiziert werden müssen, um realistische Beleuchtungseffekte zu ermöglichen. Im allgemeinen werden die Modulationswerte MOD zusammen mit anderen Parametern in der DPU 28 nicht direkt für die Modifikation der Pixelewerte COL verwendet. Beispielsweise modulieren die Werte MOD bei der sogenannten "Beulenabbildung" die Oberflächennormale der Grundform und beeinflussen die nachfolgende Berechnung der Beleuchtung und damit indirekt die Pixelwerte COL. Ein anderes, als "Umgebungsabbildung" bekanntes Verfahren verwendet die TRAM zum Speichern eines Bildes der Umgebung, z. B. mit U und V als sphärische Koordinaten, so daß Spiegelreflexe einer komplexen Umgebung (einschl. Lichtquellen, Fenster, anderen Gegenständen usw.) simuliert werden können. Diese und andere Anwendungen von Abbildungshardware werden in einem Artikel von Paul S. Heckbert, "Survey of Texture Mapping", in IEEE Computer Graphics and Applications, November 1986, Seite 56 bis 67, kurz beschrieben. Der Fachmann sieht, daß die Erfindung mit allen derartigen Anwendungen von Abbildungshardware verwendet werden kann.
  • Bekanntlich entsprechen die im Texturspeicher 41 dargestellten Texel im allgemeinen den Anzeigepixeln nicht eins zu eins, und zweidimensionales räumliches Filtern ist notwendig, besonders wenn die Grundform in großem Abstand abgebildet wird, und folglich die Textur auf eine sehr kleine Anzahl Pixel abgebildet wird, um die Verfremdungseffekte zu vermeiden, die den Betrachter bei einfachem Teil-Abtasten stören würden.
  • Es ist außerdem bekannt, daß die Verwendung eines allgemeines Filters in einem Gerät, das bewegte Bilder in Echtzeit synthetisiert, nicht wirtschaftlich ist, und in der Veröffentlichung von Williams wird die herkömmliche Lösung dieses Problems beschrieben, die darin besteht, daß für ein gegebenes Muster mehrere (im folgenden als "Abbildungen" bezeichnete) 2-D-Matrizen gespeichert werden, die immer kleiner werden und auf eine immer kleinere Auflösung vorgefiltert sind. Die DPU 28 braucht dann lediglich eine Ebenenkoordinate L zu erzeugen, um zu bestimmen, welche Abbildung verwendet werden soll. Um hohe Speicherdichte und schnellen Zugriff zu den Texelwerten zu erreichen, können die Abbildungen quadratisch mit Abmessungen in Zweierpotenzen gewählt und in einem quadratischen Texturspeicher entsprechend der von Williams beschriebenen "multum in parvo"-Technik ("MIP-Abbildung") gespeichert werden.
  • Fig. 1 zeigt die Farbkomponenten R, G und B einer als MIP-Abbildung gespeicherten Texturpyramide im Texturspeicher 41. Die größte Abbildung (mit der höchsten Auflösung) (L = 0) enthält beispielsweise 512 · 512 Texel, die Abbildungen L = 1 umfassen 256 · 256 Texel usw. bis herunter auf L = 9, wo eine Abbildung aus einem einzigen Texel besteht. Wird beispielsweise angenommen, daß jeder Texelwert jeweils einen 8-Bit-Wert für jede der Farbkomponenten R, G und B umfaßt, dann benötigt der Texturspeicher 41 insgesamt 1 MByte Speicherplatz.
  • Die Texelwerte werden vor der Umwandlung durch die CPU 14 über den Bus 18 und einen Eingang 43 im Speicher 41 gespeichert. Für jeden Texelwert, der gelesen werden soll, erzeugt die DPU 28 ein 2-D-Koordinatenpaar, wobei jede Koordinate (U und V) mindestens einen ganzzahligen Teil von 9 Bit Länge umfaßt. Gleichzeitig erzeugt die DPU 28 die Ebenenkoordinate L, die zum Erzeugen der physikalischen Koordinaten U' und V' aus den "virtuellen" Koordinaten U und V verwendet wird, die an die Adreßeingänge 44 bzw. 45 des Texturspeichers 41 geleitet werden. Als Reaktion auf jedes physikalische Koordinatenpaar U', V' liefert der Speicher 41 die Komponenten R, G und B des adressierten Texels am (24-Bit)-Ausgang 46.
  • Wegen der Anordnung der MIP-Abbildungen im Speicher 41 als zweidimensionaler binärer Baum lassen sich die benötigten physikalischen Koordinaten U' und V' einfach mit Hilfe eines Paares binärer Verschiebeschaltungen 47 bzw. 48 erzeugen, die jeweils die betreffende Koordinate um eine durch die Ebenenkoordinate L angegebene Anzahl Plätze nach rechts verschieben. Insbesondere wenn L = 0 die höchste Ebene darstellt, dann kann die Adresse, die einem gegebenen Texel in der Abbildung der Ebene 0 entspricht, in die physikalische Adresse des entsprechenden Texels in der Abbildung der Ebene L umgewandelt werden, und diese ergibt sich durch Rechtsverschieben der Koordinaten U und V um L Plätze, wodurch jede Koordinate um 2L verkleinert wird. Die Ebenenkoordinate L kann an die DPU 28 als Teil der Grundform-Daten geliefert werden, aber wenn bei der Abbildung die Perspektive berücksichtigt werden soll, wird die Ebenenkoordinate L wahrscheinlicher pixelweise und abhängig von den partiellen Ableitungen von U und V nach X und Y in der DPU erzeugt.
  • Um eine vollständige Entfremdungsvermeidung zu ermöglichen wird bekanntlich (beispielsweise trilineare) 3-D-Interpolation zwischen Texelwerten verwendet, d. h., daß die Koordinaten L, U' und V' Bruchteile (Lf, Uf' und Vf') sowie ganzzahlige Anteile (Li, Ui' und Vi') haben können. Die Bruchteile der Koordinaten U' und V' können für eine (beispielsweise bilineare) 2-D-Interpolation zwischen einem quadratischen Ausschnitt von vier benachbarten Texel einer Ebene verwendet werden, und der Bruchteil Lf der Ebenenkoordinate kann zum Interpolieren zwischen (2-Dinterpolierten) Texelwerten auf zwei benachbarten Ebenen der pyramidenförmigen Matrix verwendet werden. Dazu müssen vier Texelwerte (Ui', Vi'), (Ui' + 1, Vi'), (Ui', Vi'+1), (Ui' + 1, Vi '+ 1) aus der Abbildung der Ebene Li und vier aus der Abbildung der Ebene Li + 1 gelesen werden. Es schadet offensichtlich der Geschwindigkeit der Durchführung, wenn diese acht Texelwerte seriell gelesen werden. Glücklicherweise können die vier Texelwerte jeder Ebene parallel am Ausgang 46 gelesen werden, wenn der Texturspeicher aus vier parallelen, verschachtelten Speichern besteht und die im folgenden beschriebene Adressierung von 2 · 2-Ausschnitten gestattet, wodurch die acht Werte in nur zwei Lesezyklen des Speichers gelesen werden können. Es wäre jedoch wünschenswert, wenn die beiden Vierersätze (Li und Li + 1) von Texelwerten parallel gelesen werden könnten, und Williams schlägt vor, daß eine festverdrahtete Adressiervorrichtung parallelen Zugriff auf alle Ebenen einer MIP- Abbildung ermöglichen könnte. Zwar ist dies in der Theorie möglich, aber die Anzahl von Verbindungen der von Williams vorgeschlagenen Lösung ist zu groß, um bei einer Massenproduktion wirtschaftlich zu sein. Beispielsweise müßten bei 10 Ebenen, Adressierung von 2 · 2-Ausschnitten (außer auf der untersten Ebene) und jeweils acht Bit pro Texel für R, G und B für jedes Koordinatenpaar U, V 888 Bit am Ausgang 46 des Texturspeichers 41 gelesen werden.
  • Im allgemeinen ist es wünschenswert, verschiedene Texturpyramiden im Texturspeicher 41 zu speichern. Drei Texturpyramiden könnten z. B. die Umrisse 'o', '+' und 'x' definieren, die auf den Flächen des Würfels abgebildet sind, der auf dem Bildschirm des Anzeigegeräts 34 in Fig. 1 dargestellt wird. Zu diesem Zweck wird bekanntlich die quadratische Matrix auf jeder Ebene der MIP-Abbildung aufgeteilt und ein Mosaik von 2-D-Matrizen gespeichert, die jeweils ein 2-D-Muster bestimmen. Die von der DPU 28 erzeugten Koordinatenpaare U, V enthalten dann 2-D-Versetzungen, damit der richtige Teil der 2-D-Matrix adressiert wird. Bei diesem herkömmlichen Verfahren bleibt jedoch Raum im Texturspeicher ungenutzt und wird verschwendet. Es ist im allgemeinen unmöglich, bei einem Mosaik von 2-D-Formen ungenutzten Raum zu vermeiden. Werden z. B. die drei quadratischen Matrizen, die die Texturen von 'o', '+' und 'x' darstellen, auf jeder Ebene des Texturspeichers 41 der herkömmlicher Hardware in der quadratischen Matrix angeordnet, bleibt mindestens ein Viertel des verfügbaren Speichers ungenutzt. Es ist schwierig, auch nur eine optimale Lösung eines allgemeinen 2-D-"Zickzack-Puzzles" zu finden, und es wäre in Echtzeit ziemlich unpraktisch, wenn die Matrizen verschiedene Formen wie Quadrate, Rechtecke und Dreiecke annehmen könnten.
  • Ein weiterer Nachteil von MIP-Abbildungen liegt darin, daß jede Texturpyramide (im obigen Beispiel 1 MByte) Speicherplatz auf allen Ebenen einnimmt, selbst wenn die Grundform im Bild nur in der Ferne zu sehen ist und nur eine oder zwei der kleineren Abbildungen (L = 5, L = 6 usw.) zu diesem Zeitpunkt tatsächlich verwendet werden. Es wäre ein großer Vorteil, wenn nur die wahrscheinlich zu einem bestimmten Zeitpunkt benötigen Ebenen im Texturspeicher gespeichert werden, und der freigewordene Platz für andere Texturabbildungen verwendet werden könnte. Z. B. belegt die größte Abbildung (L = 0) der Pyramide drei Viertel des gesamten Texturspeichers, auch wenn sie beim Liefern eines Bildes möglicherweise niemals gelesen wird. Leider ist es sehr schwierig, die herkömmliche Hardware mit einer Flexibilität auszustatten, die ausreicht, eines der genannten Probleme zu meistern.
  • Fig. 3 zeigt eine neuartige Abbildungshardware, die die in Abb. 1 mit der Bezeichnung 40 dargestellte Hardware ersetzen kann. Es ist ein linear adressierter Texturspeicher 41' vorhanden, so daß das Problem der Speicherplatzverschwendung einfach lösbar wird. Eine Texturmamagementschaltung 42 verfolgt die verschiedenen Matrizen im linearen Speicher 41' und wandelt die Pyramidenkoordinaten L, U und V in lineare physikalische Texeladressen um. Beim neuartigen System werden keine 2-D-Versetzungen verwendet, um die verschiedenen, als Mosaik in einer großen Abbildung gespeicherten Texturen zu identifizieren, sondern die CPU 14 liefert mit den Daten der Grundform einen Texturkennwert T unabhängig von den Koordinaten U und V. Eine 2-D-Abbildung in einer Texturpyramide kann so als Abbildung T. Li identifiziert werden, wobei Li der ganzzahlige Anteil der Ebenenkoordinate L ist. Die Schaltung 49 ist komplexer als einfache 2-D-MIP- Adressierhardware, aber die Speicherausnutzung und -flexibilität können deutlich besser sein.
  • Die DPU 28' in Fig. 3 ist eine leicht abgeänderte Ausführung der herkömmlichen DPU 28 (in Fig. 1) mit einem Ausgang T, der den empfangenen Kennwert zur Texturmanagementschaltung 49 sendet. Die abgeänderte DPU 28' hat außerdem einen Ausgang für ein logisches Signal FB, das die Rückführleitung auf eine weiter unten beschriebene Weise aktiviert.
  • Die in Fig. 3 gezeigte, neuartige Hardware umfaßt nicht nur die Adressierung von 2 · 2-Ausschnitten (für schnelle bilineare Interpolation), sondern auch: eine neuartige Struktur, durch die acht Texelwerte gleichzeitig für trilineare Interpolation verfügbar sind, die aber nicht so übermäßig parallel ist wie die von Williams vorgeschlagene Lösung. Zu diesem Zweck wird der Texturspeicher 41' in zwei Speicherbänke TRAM1 und TRAM2 geteilt, und die Vorrichtung sorgt dafür, daß die Matrizen T. Li und T. Li + 1 zweier benachbarter Ebenen einer gegebenen Texturpyramide immer in verschiedenen Bänken TRAM1 und TRAM2 gespeichert werden.
  • Die Texturmanagementschaltung 49 hat Eingänge zum Empfangen der Signale T, L, U und V von der DPU 28'. Die Texturmanagementschaltung umfaßt eine Seitenadressier- und logische Schaltung (PLLC) 50, die den Texturkennwert T und mindestens den ganzzahligen Teil Li der Ebenenkoordinate L von der DPU empfängt. Die PLLC 50 speichert Informationen, die für jede Abbildung T. Li angeben, (i) in welcher der Bänke TRAM1 oder TRAM2 die Abbildung T. Li gespeichert ist, (ii) die Breite w(T. Li) der Abbildung in U-Richtung und (iii) eine Basisadresse B(T. Li), die den Anfang der linear gespeicherten Matrix in der entsprechenden Bank TRAM 1 oder TRAM2 angibt.
  • Allgemein ausgedrückt liefert die PLLC 50 die gespeicherten Daten der Abbildungen T. Li und T. Li + 1 an den Rest der Schaltung 49, der dadurch die linearen Adressen A1 und A2 erzeugen kann, die die Banken TRAM1 bzw. TRAM2 verwenden, um die Texeldaten des Koordinatenpaars (U, V) in den Ebenen Li und Li + 1 der Texturpyramide T zu adressieren. Die allgemeinen Formeln für diese linearen Adressen lauten:
  • mit Adresse A1 = A(T. Li) oder A(T. Li + 1), je nachdem, welche der beiden Abbildungen T. Li bzw. T. Li + 1 in der Speicherbank TRAM 1 gespeichert ist, und dementsprechend Adresse A2 = A(T. Li + 1) bzw. A(T. Li). In den obigen Ausdrücken bedeuten su(T. Li) sv(T. Li) verallgemeinerte Skalenfaktoren, die die Dimensionen der Abbildung T. Li in U- bzw. V-Richtung auf diejenigen der größten Abbildung (T.0) der Pyramide T beziehen.
  • Wie im herkömmlichen System kann bei dieser Erfindung die Adressierhardware stark vereinfacht werden, wenn die Skalenfaktoren su(T. Li) und sv(T. Li) auf Potenzen von zwei beschränkt werden und für alle Werte von L und T beispielsweise durch den Ausdruck su = sv = 2Li definiert werden. Die Hardware kann wie im MIP-Abbildungssystem durch Beschränkung der Breite w auf Abbildungen, deren Anzahl von Texeln eine Potenz von zwei ist, weiter vereinfacht werden und beispielsweise durch einen Breitenindex W(T. Li) und den Ausdruck w(T. Li) = 2W(T. Li) definiert werden. Die in Fig. 3 dargestellte Texturmanagementschaltung 49 verfügt: über diese beiden Vereinfachungen. Diese Einschränkungen gestatten nicht nur quadratische, sondern auch rechteckige Abbildungen, aber auf Wunsch könnte eine Hardwareausführung der oben aufgeführten, allgemeineren Formeln gebaut werden. Die allgemeinen Formeln könnten auch weiter verallgemeinert werden und die Speicherung anderer Formen wie z. B. dreieckiger oder trapezförmiger Texturen zulassen, wenn die Breite in U-Richtung w in der V-Richtung der Abbildung linear oder sogar nicht-linear variiert.
  • Unter Berücksichtigung dieser Beschränkungen, die der Vereinfachung der Hardware dienen, können neue Formeln für eine einfachere Hardware abgeleitet werden. Diese Formeln werden unten angegeben, die Symbole "→" bzw. "←" bezeichnen eine binäre Verschiebung nach rechts (teilen) oder links (multiplizieren). So kennzeichnet beispielsweise der Ausdruck "(U ← L1)i" den ganzzahligen Teil von U nach einer Rechtsverschiebung um Li Bitstellen, in anderen Worten den Quotienten von U und 2Li
  • A1 = (U → L1)i + ((V → L1)i χ W1) + B1
  • wobei L1 = Li oder Li + 1 und w(T. L1) = 2Wi, und
  • A2 = (U → L2)i + ((V → L2)i ← W2) + B2
  • wobei L2 = Li + 1 bzw. Li und w(T. L2) = 2W2.
  • Fig. 3 zeigt eine Hardwareausführung dieser Formeln für A1 und A2, die PLLC 50 in Fig. 3 hat Ausgänge, die die Werte von W1, B1, W2 und B2 liefern, die die Breite und die Basisadressen der Abbildungen bestimmen, die in TRAM1 bzw. TRAM2 adressiert werden sollen. Die PLLC 50 erzeugt auch ein binäres Signal 5WI1, das den Wert 1 oder 0 annimmt, je nachdem, ob die Texturspeicherbank TRAM1 die Abbildung T. Li bzw. T. Li + 1
  • enthält und ein komplementäres Signal SWI2 = SWI1, das die entsprechende Angabe bezüglich der anderen Bank TRAM2 des Texturspeichers 41' darstellt.
  • Im Rest der Texturmanagementschaltung 49 befindet sich ein Addierer 51, der aus dem von der DPU 28' erzeugten Wert Li den Wert Li + 1 erzeugt. Ein Multiplexer 52, der auf das logische Signal SWI1 reagiert, wählt entweder Li oder Li + 1 zum Erzeugen der Ebenenkoordinate L 1 für die in der Bank TRAM 1 gespeicherte Abbildung. Ein anderer Multiplexer 53 reagiert auf das komplementäre logische Signal SWI2 und wählt aus Li und Li + 1 den anderen Wert zum Erzeugen der Ebenenkoordinate L2 für die in der Bank TRAM2 gespeicherte Abbildung. Ein erster Rechtsverschieber 54 reagiert auf die Ebenenkoordinate Li und empfängt die U- Koordinate des von der DPU 28' erzeugten Paars U, V und erzeugt eine erste maßstäbliche U-Koordinate U1 = U → Li. Ein zweiter Rechtsverschieber 55 reagiert auf die selbe Ebenenkoordinate L1, benötigt die V-Koordinate und erzeugt eine erste maßstäbliche V-Koordinate V1 = V → L1. Der dritte und der vierte Rechtsverschieber 56 und 57 empfangen auch die U- bzw. V-Koordinaten, reagieren auf die Ebenenkoordinate L2 und erzeugen zweite maßstäbliche U- und V- Koordinaten U2 = U → L2 bzw. V2 = V → L2 der in der zweiten Bank TRAM2 des Texturspeichers 41' gespeicherten Abbildung.
  • Die maßstäblichen Koordinaten U1, V1, U2 und V2 werden in ihre ganzzahligen Anteile U1i usw. und die Bruchteile U1f usw. geteilt. Der erste und der zweite Linksverschieber 58 und 59 empfangen die ganzzahligen Anteile V1i und V2i der maßstäblichen V-Koordinaten V 1 bzw. V2 und reagieren auf die Breitenindizes W1 bzw. W2 und erzeugen die Werte 2W1.V1i bzw. 2W2.V2i, wobei 2W1 bzw. 2W2 die Breite der in der Bank TRAM1 bzw. TRAM2 gespeicherten Abbildungen ist.
  • Ein Addierer 60 addiert den ganzzahligen Anteil U1i der ersten maßstäblichen U-Koordinate U1 zu dem vom ersten Linksverschieber 58 erzeugten Wert 2W1.V1i und erzeugt die erste lineare Versetzungsadresse I1. Ein weiterer Addierer 61 addiert die erste Versetzungsadresse 11 zur von der PLLC 50 erzeugten ersten Basisadresse B1 der Abbildung und erzeugt die erste lineare Texeladresse A1, die von der ersten Bank TRAM1 des Texturspeichers 41' verwendet wird. Ebenso erzeugt ein weiterer Addierer 62 eine zweite lineare Versetzungsadresse 12 durch Addieren der Werte U2i und 2W2.V2i, während ein noch ein anderer Addierer 63 die zweite lineare Versetzungsadresse 12 zu der von der PLLC 50 erzeugten Basisadresse B2 der Abbildung und erzeugt die zweite lineare Texeladresse A2, die von der zweiten Bank TRAM2 des Texturspeichers 41' verwendet wird. Da sich die Bits der Werte V1i (oder V2i) nach dem Verschieben nicht mit den Werten U1i (U2i) überschneiden, können die Addierer 60 und 62 durch einfachere ODER-Gatter ersetzt werden.
  • Beide Texturspeicherbanken TRAM1 und TRAM 2 sind in vier Teile A, B, C und D unterteilt, die parallel adressiert werden können. Die Texelwerte, die eine gegebene Abbildung beschreiben, sind auf die vier Teile A-D der entsprechenden Speicherbank (TRAM1 oder TRAM2) nach einem vorher bestimmten Muster, das durch die Buchstaben A, B, C und D neben den Texelwerten (ausgefüllte Kreise) in Fig. 2 illustriert wird, so verteilt, daß ein 2 · 2-Texelausschnitt parallel adressiert werden kann. Im dargestellten, beispielhaften Muster, einer Zeile mit gerader Nummer (V gerade), werden die Texelwerte abwechselnd in Teil A und B gespeichert. In einer Zeile mit ungerader Nummer (V ungerade), werden die Texelwerte abwechselnd in Teil C und D gespeichert.
  • Um diese Ausschnittadressierung zu ermöglichen, empfängt ein spezieller Adreßeingang 64 die lineare Texeladresse A1 vom Ausgang des Addierers 61 und erzeugt daraus vier Adressen A1A-A1D, die von den vier Speichern TRAM1A - TRAM1D verwendet werden, woraufhin die Texelwerte (U, V), (U + 1, V), (U, V + 1) und (U + 1, V + 1) des Ausschnitts über vier entsprechende Ausgänge 65A-65D verfügbar werden.
  • Um eine korrekte Erzeugung der vier Adressen AIA-AID zu
  • ermöglichen, empfängt der Adresseingang 64 die Bits mit der kleinsten Signifikanz U1ilsb und V1ilsb der ganzzahligen Anteile des ersten maßstäblichen Koordinatenpaars U1,V1, die bestimmen, ob U1 bzw. V1 gerade oder ungerade ist. Die Bauweise der Ausschnittadressier-Hardware 64, 65A-D kann im Detail derjenigen ähneln, die zum Umwandeln digitalisierter Videobilder verwendet wird und für die in Abb. 2 des Artikels "Transforming Digital Images in Real Time" von Joel H. Dedrick in The Electronic System Design Magazine (ESD), August 1987, Seiten 81 bis 85, ein Beispiel gezeigt wird. Die lineare Speicherung der Texelmatrizen bei dem in Fig. 3 gezeigten System verlangt eine Abweichung von der herkömmlichen Hardware. In der Schaltung von Dedrick, bei der ein 2-D-adressierter Rahmenspeicher verwendet wird, wird zur vertikalen Koordinate (Y') ein Einheitswert 0001 addiert, um die Texelwerte der nächsten Zeile (Y' + 1) des Bildes zu adressieren. Bei der Schaltung in Fig. 3 jedoch muß die Breite w(T.Li) = 2W1 der Matrix zur linearen Adresse A1 addiert werden, damit die Texelwerte der nächsten Zeile V1 + 1 der linear gespeicherten Texturabbildung richtig adressiert werden. Zu diesem Zweck empfängt der Adresseingang 64 auch den Breitenindex W 1, den die PLLC 50 für die in der Bank TRAM1 gespeicherte Abbildung erzeugt hat.
  • Die zweite Bank TRAM2 des Texturspeichers 41' hat einen ähnlichen Ausschnittsadress-Eingang 66, der die zweite lineare Adresse A2, die Indikatoren für gerade/ungerade Werte U2ilsb und V2ilsb und den zweiten Breitenindex W2 empfängt. Der Eingang 66 erzeugt die Ausschittsadressen A2A-A2D, die zu den jeweiligen Teilen A-D der zweiten Texturspeicherbank TRAM2 geleitet werden, die vier entsprechende Eingänge 67A-67D hat.
  • Es ist anzumerken, daß es für das Erzeugen der Ausschnittsadressen A1A- A1D und A2A-A2D viele geeignete, alternative Anordnungen gibt. Z. B. könnte es von Vorteil sein, statt die einzelne lineare Adresse A1 zu erzeugen und sie dann zu den Adressen A1A-A1D zu erweitern, die Ausschnittsadressierung mit der Erzeugung der linearen Adressen zusammenzufassen und jede einzelne Adresse A1A-A1D direkt aus den Koordinaten Li, U1 und V1 zu erzeugen. Während in einer solchen Ausführung einige Komponenten vervierfacht werden müssen, können andere Komponenten zum Erzeugen von mindestens zwei der Adressen A1A-A1D beitragen. Es ist auch einzusehen, daß mit mehr parallelen Speichern und geeigneten Ein- und Ausgängen größere Ausschnitte adressiert werden können.
  • Die vier Texelwerte der Ausgänge 65A-65D der Bank TRAM1 werden zu den Eingängen des ersten bilinearen (2-D)-Interpolierers BIL1 geleitet, der auch die Bruchteile U1f und V1f des ersten maßstäblichen Koordinatenpaars U1, V1 empfängt. Der bilineare Interpolierer BIL1 kombiniert die vier Texelwerte des von den Adressen A1A-A1D adressierten Ausschnitts (die von den ganzzahligen Anteilen U1i und V1i des Paares abgeleitet wurde) und erzeugt einen ersten bilinear integrierten Texelwert MOD 1. Die Texelwerte der Eingänge 67A-67D der Bank TRAM2 werden auf ähnliche Weise zu einem zweiten bilinearen Integrierer BIL2 geleitet, der auch die Bruchteile U2f und V2f des zweiten maßstäblichen Koordinatenpaars U2, V2 empfängt und den zweiten bilinear integrierten Texelwert MOD2 erzeugt.
  • Die beiden bilinear interpolierten Werte MOD1 und MOD2, von denen der eine aus der Abbildung T.Li und der andere aus der Abbildung T. Li + 1 abgeleitet wurde, werden sodann in einen linearen Interpolierer LINT eingespeist. Der Interpolierer LINT kombiniert die Werte MOD1 und MOD2 in einem Verhältnis, das vom Bruchteil Lf der von der DPU 28 empfangenen Ebenenkoordinate L bestimmt wird, und erzeugt einen trilinear interpolierten Modulationswert MOD für die Pyramidenkoordinaten L, U und V. Wie beim herkömmlichen Gerät (Fig. 1) kann der Wert MOD dazu verwendet werden, entweder direkt (punktierter Weg 42) oder indirekt über eine weitere Bearbeitung in der DPU 28' die Pixelfarbewerte COL zu modulieren. Wenn die Texelwerte MOD Farben bestimmen, umfaßt begreiflicherweise jeder Texelwert drei Farbkomponenten R, G und B und die Interpolierer BIL1, BIL2 und LINT können jeweils drei Interpolierer umfassen oder so eingerichtet werden daß sie die Interpolation der drei Komponenten auf andere Weise ausführen.
  • Die in Fig. 3 abgebildete Hardware umfaßt auch eine erste und eine zweite Rückführleitung 70 und 72, so daß die bilinear interpolierten Werte MOD1 aus der ersten Speicherbank TRAM 1 in den Eingang 71 der zweiten Speicherbank TRAM2 des Texturspeichers 41' eingespeist werden können, und die Werte MOD2 aus der zweiten Bank TRAM2 in einen Eingang 73 der ersten Bank TRAM 1 eingespeist werden. Das von der DPU 28' gelieferte logische Signal FB zeigt im Zustand '1' an, daß eine Rückführleitung aktiviert werden soll. Die UND-Gatter 74 und 75 kombinieren das Signal FB mit den von der PLLC 50 erzeugten logischen Signalen SWI1 bzw. SWI2 und erzeugen ein Paar logischer Signale FB1 bzw. FB2. Zwei Multiplexer 76 und 78 reagieren auf die Signale FB1 = 1 bzw. FB2 = 1 mit dem Öffnen der ersten oder der zweiten Rückführleitung 70 bzw. 72 wenn FB UND SWI1 = 1 bzw. FB UND SWI2 = 1. Zu allen anderen Zeitpunkten verbinden die Multiplexer 76 und 78 die entsprechenden Eingänge 71 bzw. 73 über den Bus 18 mit der CPU 14. Die Aufgabe der Rückführleitung 70 und 72 wird später beschrieben, für den Augenblick wird vorausgesetzt, daß sie nicht aktiv sind (FB = 0).
  • In Fig. 4 werden als Beispiel drei teilweise pyramidenförmige Texturabbildungen (T = 1, 2, 3) gezeigt, die in den linearen Speicherbänken TRAM1 und TRAM2 gespeichert sind, damit ein paralleler Zugriff auf alle für eine trilineare Interpolation notwendigen Texelwerte möglich ist. Jede Speicherbank bildet einen linearen physikalischen Adreßraum A1 bzw. A2. Die 2-D-Matrix (Abbildung) der Texelwerte der Ebene Li der Abbildung T sind als eine mit PT. Li bezeichnete Datenseite linear gespeichert. Wie zu sehen ist, hat die Textur 1 vier Seiten P1.0, P1.1, P1.2 und P1.3, die jeweils ein Viertel der linearen Größe der vorangegangenen Seite haben. Während P 1.0 in Bank TRAM 1 gespeichert wird, wird Seite P 1.1 in Bank TRAM2, P1.2 in Bank TRAM1 usw. gespeichert, abwechselnd für alle gespeicherten Ebenen.
  • Die zweite Textur (T = 2) wird auf drei Seiten P2.1 bis P2.3 abwechselnd in Bank TRAM1 und Bank TRAM2 gespeichert, mit jeweils einem entsprechenden Eintrag im Seitentabellenspeicher PTAB, der mit Bezug auf Fig. 5 beschrieben wird. Es existiert eine Seite P2.0 für die höchste Ebene, die aber nicht im Texturspeicher gespeichert wird, da sie zu diesem Zeitpunkt nicht benötigt wird, so daß weiterer (schraffierter) Speicherplatz frei wird und nach Bedarf andere Abbildungen aufnehmen kann. Der in Fig. 4 abgebildete Speicherbelegungsplan stellt möglicherweise einen Zeitpunkt dar, zu dem viele verschiedene Abbildungen, die verschiedene Ebenen verschiedener Texturpyramiden bilden, geladen, verwendet und dann gelöscht wurden, wenn die entsprechende Textur nicht gebraucht wurde oder nicht mit dieser hohen (oder niedrigen) Auflösung gebraucht wurde. Es ist anzumerken, daß, selbst wenn mehr Texeldaten benötigt werden als Speicherplatz in den Bänken TRAM1 und TRAM2 des Texturspeichers 41' vorhanden ist, mindestens eine Abbildung mit niedriger Auflösung geladen und auf die erforderte Größe interpoliert werden kann, bis Speicherplatz frei wird. Dieser "elegante Qualitätsverlust" ist ein Merkmal des linearen Texturspeichers und ein Vorzug gegenüber dem herkömmlichen 2-D-MIP-Abbildungsspeicher, bei dem eine Texturpyramide im allgemeinen Speicherplatz auf allen Ebenen einnimmt oder gar keinen.
  • Auch die dritte Textur (T = 3) wird in nur drei, wiederum zwischen den Bänken TRAM 1 und TRAM2 abwechselnden Seiten geladen, aber die Seite P3.0 ist kleiner als die Seite Li = 0 der ersten beiden Texturen, weil für die Bestimmung der dritten Textur weniger Details erforderlich sind. Auch dadurch wird ein effizienterer Gebrauch des Speicherplatzes im Vergleich zur herkömmlichen MIP-Abbildung möglich.
  • Fig. 5 zeigt den Inhalt des Seitentabellenspeichers PTAB, der in Fig. 3 gestrichelt innerhalb der Seitenadressier- und logischen Schaltung PLLC 50 dargestellt ist, der das Auffinden einer bestimmten Matrix T. Li im Speicher ermöglicht. Für jede Seite PT. Li jeder Textur gibt es einen Eintrag in der Seitentabelle. Die erste Angabe jedes Eintrags ist ein einzelner Bitwert SWI1/ SWI2, der den Wert 0 oder 1 annimmt, je nachdem, ob die Seite in der Bank TRAM1 oder in der Bank TRAM2 gespeichert wird. Dieser Bitwert gestattet daher der logischen Schaltung PLLC das Erzeugen der Signale SWI1 und SWI2, die die Erzeugung der Adressen A1 und A2 auf die in bezug auf Fig. 3 beschriebene Weise steuern.
  • Die zweite Angabe in jedem Eintrag der Tabelle ist der Breitenindex W der Abbildung T.Li. Die Seite P1.0 enthält eine 2W = 2&sup9; = 512 Texel breite Abbildung, P1.1 eine 2&sup8; = 256 Texel breite Abbildung, P3.1 eine 2&sup7; Texel breite Abbildung usw. Die dritte Angabe jedes Eintrags enthält die Basisadresse B im Speicher (TRAM1 oder TRAM2), von der ab die Texelwerte dieser Seite gespeichert sind.
  • Bezüglich der Fig. 3 wiederum können die Matrizen der Texelwerte, die die Seiten P1.0 usw. bilden, von der CPU 14 über den Bus 18 und die Eingänge 71 bzw. 73 auf die beschriebene Weise in den Speicherbänken TRAM1 und TRAM2 gespeichert werden. Es ist einfach eine Frage der "Haushaltsführung", daß die CPU 14 dafür sorgt, daß (i) jede neue Seite mit Texeldaten in einem ansonsten unbenutzten Teil der Texturspeicher speichert, (ii) die Ebenen einer bestimmten Pyramide abwechselnd in den Bänken TRAM1 und TRAM2 gespeichert werden, und (iii) daß die Seitentabelle PTAB in der PLLC 50 gleichzeitig mit den entsprechenden Werten von SWI1/ SWI2, W und B geladen wird. Wenn in einem einzelnen Block nicht genug Speicherplatz für eine neue Textur vorhanden ist (es soll beispielsweise P2.0 geladen werden), dann kann eine "Abfallsammlung" durchgeführt und ungenutzte Speicherbereiche in einen Speicherbereich zusammengefaßt werden, der groß genug ist.
  • Ganze pyramidenförmige Texturmatrizen können in einer Datenbank im Plattenspeicher 20 oder im Hauptspeicher 24 gespeichert werden, wobei die verschiedenen Matrizen der 2-D-Ebenen (Abbildungen) nach Bedarf in freien Speicherplatz im betreffenden Texturspeicher übertragen werden. Jedoch können die bilinearen Interpolierer BIL1 und BIL2 wegen der Rückführleitungen 70 und 72 auf eine weiter unten beschriebene Weise als Filter verwendet werden und aus einer einzigen, hochaufgelösten Abbildung, die über den Bus 18 geladen wurde, Abbildungen für aufeinanderfolgende Ebenen erzeugen. Dies kann von Vorteil sein, da die Hardware mit Ausschnittsadressierung und Interpolation möglicherweise ein viel schnellerer Filter ist als die herkömmliche Alternative, d. h. eine von der CPU 14 ausgeführte Softwareroutine.
  • Fig. 6 zeigt ein Flußdiagramm, das eine Folge von Arbeitsgängen darstellt, die aus einer zuvor in der einen Bank des Texturspeichers 41' gespeicherten Abbildung T. Li eine gefilterte Abbildung T. Li + 1 erzeugen und dabei die zurückgeleiteten Werte verwenden, die von den vorhandenen bilinearen Interpolierern erzeugt wurden. Im ersten Schritt 80 reserviert die CPU 14 Platz im Texturspeicher für die Seite PT. Li + 1, indem sie einen Eintrag mit den betreffenden Werten von SWI1/ SWI2 (T. Li + 1), W(T. Li + 1) und B(T. Li + 1) in die Seitentabelle PTAB in der PLLC 50 lädt.
  • Im nächsten Schritt 82 wird die DPU 28' dazu veranlaßt, das logische Signal auf FB = 1 zu setzen und dadurch die Aktivierung der geeigneten Rückführleitung 70 oder 72 zu ermöglichen. Im Schritt 84 sorgt die DPU 28' dafür, daß alle vom linearen Interpolierer LINT beim Filtern erzeugten Werte MOD ignoriert werden. Im Schritt 86 wird die DPU 28 wie für das Zeichnen eines Polygons eingerichtet, wobei die Werte von U&sub0;, V&sub0; und die partiellen Ableitungen so gewählt werden, daß die erwünschten gefilterten Werte erzeugt werden. In Fig. 2 sind geeignete Positionen für die gefilterte Abbildung T. Li + 1 durch umkreiste Kreuze (" + ") markiert. Die Startposition beim Erzeugen interpolierter Werte für diese Texelpositionen wäre (U&sub0;, V&sub0;) = (¹/&sub2;, ¹/&sub2;), und den folgenden partiellen Ableitungen:
  • Im Schritt 88 wir die DPU 28' dazu veranlaßt, das imaginäre Polygon zu "zeichnen", wodurch am Ausgang des bilinearen Interpolierers BIL1 oder BIL2 automatisch die gewünschten gefilterten Werte MOD1 oder MOD2 erzeugt werden, je nachdem, ob die Quellabbildung T.Li in der Bank TRAM1 oder in TRAM2 gespeichert ist. Zugleich ist entweder FB1 = 1 oder FB2 = 1, weil das logische Signal FB = 1 und entweder SWI1 = 1 oder SWI2 = 1, und folglich wird einer der Multiplexer 76 oder 78 aktiviert und öffnet die entsprechende Rückführleitung 70 oder 72. Die interpolierten Werte werden dann automatisch an die Stellen in der anderen Speicherbank (TRAM2 oder TRAM1) geschrieben, die für die Abbildung T.Li + 1 im Schritt 80 reserviert wurden.
  • Der Vorgang von Fig. 6 kann bei Bedarf wiederholt werden, wobei jedesmal die Ebenenkoordinate L erhöht wird, wie die punktierte Linie im Schritt 90 anzeigt, und die Rückführleitungen 70 und 72 abwechselnd verwendet werden, bis im Anzeigeprozessor aus einer einzigen, außerhalb erzeugten, hochaufgelösten Matrix eine ganze pyramidenförmige Matrix erzeugt wurde. Der Fachmann weiß, daß verschiedene Skalenfaktoren möglich sind, und das mit Ausführungen, die asymmetrische Abbildungen erlauben, asymmetrisches Filtern möglich wäre, um z. B. aus einem Anfangsquadrat eine rechteckige Abbildung zu erzeugen. Es würde beispielsweise
  • eine texelweise Übertragung einer Abbildung von einem Texturspeicher in den anderen ergeben. Eine derartige Übertragung wäre für die oben erwähnte "Abfallsammlung" nützlich.
  • Die Verwendung der Texturabbildungshardware selbst zum Filtern und/oder Übertragen von Abbildungen hat Vorzüge gegenüber der herkömmlichen Methode, bei der Software im Zentralrechner läuft, da die Hardware des Prozessors im Anzeigegerät bereits auf das schnelle Adressieren von Texturmatrizen spezialisiert ist, wozu Hardware für das Adressieren von 2 · 2-Ausschnitten, auf den parallelen Empfang von R, G und B spezialisierte Interpolierhardware usw. gehört. Dieser Vorzug ist leicht daran zu erkennen, daß für das Filtern oder das Übertragen einer 2-D-Matrix in diesem Gerät ungefähr gleich viel Zeit benötigt wird, wie das Liefern eines einzigen, ungefähr gleich großen Polygons. Dies ist ein Zeitverlust, der im allgemeinen in Echtzeit ohne wesentlichen Leistungsverlust aufgefangen werden kann, da das typische System bereits Hunderte oder sogar Tausende Polygone für jeden Bildrahmen liefert. Die Verwendung von Rückführleitungen in Texturfilterhardware hängt nicht davon ab, ob die Abbildung linear gespeichert ist, und auch nicht von der Bauweise des Speichers mit zwei Bänken. Selbst bei einer herkömmlichen 2-D-MIP-Abbildung wie in Fig. 1, und auch wenn zu den beiden Texelausschnitten kein paralleler Zugriff vorhanden ist, bietet die Verwendung von spezialisierter Adressier- und Interpolierhardware zum Erzeugen gefilterter Abbildungen den Vorzug einer viel größeren Geschwindigkeit im Vergleich zum herkömmlichen Softwareverfahren, und der Zeitverlust entspricht immer noch einem Polygon.
  • Die von der beschriebenen Ausführung erzwungenen Beschränkungen der Größe der Abbildungen usw. vereinfachen z. B. die Bauweise der PLLC 50 und gestatten die Verwendung der Bitverschieber 54 bis 59 anstatt komplizierter Multiplizierer. Diese Beschränkungen vereinfachen auch die Zuteilung von Speicherplatz für neue Seiten im Texturspeicher. Es ist jedoch deutlich, daß die Bauweise nicht auf diesen Fall beschränkt werden muß, und im folgenden werden einige Variationen beschrieben. Beispielsweise muß der Breitenindex W nicht getrennt gespeichert werden, wenn die Breite der Abbildung immer 2N-Li ist, wobei 2N die Größe der größten zugelassenen Abbildung ist. So könnte im Beispiel von Fig. 4 und. 5, wo die höchste Ebene der Textur T = 3 nur 256 Texel breit ist, der Breitenindex entfernt werden, wenn die Seite P3.0 in P3.1 umbenannt wird usw., weil dann bekannt wäre, daß alle Abbildungen mit Li = 1 W = 8 (Breite = 256) haben, unabhängig davon, ob es eine größere Abbildung mit Li = 0 gibt. Für asymmetrisch gefilterte Abbildungen könnten zwei Ebenenwerte Lu und Lv geliefert werden, die eine zuvor gespeicherte Abbildung mit 2N-Lui Texeln in 2N-Lvi Zeilen identifizieren. Dem Fachmann sind weitere mögliche Variationen unmittelbar einsichtig, ebenso wie Variationen im Aufbau der Texturmanagementschaltung, die für die Verwirklichung solcher Variationen notwendig wären.
  • Der Fachmann wird außerdem wissen, daß das Prinzip, den Texturspeicher in zwei Bänke zu teilen, um den parallelen Zugriff für die Interpolation zwischen den Ebenen zu ermöglichen, nicht nur auf die oben beschriebenen linear, angeordneten Texturspeicher anwendbar ist. Fig. 7 zeigt eine Art der Speicherung von zwei pyramidenförmigen Texturmatrizen (R1/G1/B1 und R2/G2/B2) in zwei zweidimensionalen Texturspeicherbänken 170 und 172. Die Speicherplatzzuweisung ist ähnlich wie bei der herkömmlichen MIP-Abbildung in Fig. 2, ermöglicht aber paralleles Lesen benachbarter Ebenen aller Texturen. Der Fachmann weiß, wie die Abbildungshardware 40 in Fig. 1 so angepaßt werden kann, daß sie die Vorteile eines doppelten Texturspeichers wie in diesem Schema dazu nutzt, um die Abbildungen auf zwei Ebenen parallel zu adressieren, was für eine Interpolation zwischen den Ebenen notwendig ist. Rückführleitungen analog zu den Leitungen 70 und 72 (Fig. 3) würden die Hardware auch in die Lage versetzen, Pyramiden aus einzelnen hochauflösenden Abbildungen zu erzeugen.

Claims (10)

1. Ein Anzeigegerät mit einem Anzeigeprozessor (28', 49) mit einem dazugehörigen Texturspeicher (41') zum Speichern einer pyramidenförmigen oder teilweise pyramidenförmigen Wertematrix von Texturelementen ("Texel"), die eine Mehrzahl zweidimensionaler (2-D-)Matrizen umfaßt, die ein 2-D-Modulationsmuster auf mindestens zwei verschiedenen Auflösungsgraden darstellen, wobei der Anzeigeprozessor zudem mindestens eine Vorrichtung (18) zum Empfangen der Beschreibung einer Grundform umfaßt, die die Angabe enthält, daß das gespeicherte Modulationsmuster zum Anzeigen auf eine Grundform abgebildet werden muß, und eine Vorrichtung (28') zum Erzeugen von 2-D-Koordinatenpaaren (U1, V1), die Texelwerte in einer gespeicherten 2-D-Matrix adressieren, um die Abbildung des gespeicherten Modulationsmusters auf die Grundform auszuführen, und eine 2-D- Interpoliervorrichtung (BIL1, BIL2), die auf die Bruchteile (U1f,V1f) der genannten 2- D-Koordinatenpaare reagiert und eine Anzahl Texelwerte aus der adressierten Matrix so kombiniert, daß ein interpolierter Texelwert (MOD1) erzeugt wird, dadurch gekennzeichnet, daß das Gerät außerdem Rückführvorrichtungen (70-76) umfaßt, wodurch von der 2-D-Interpoliervorrichtung aus einer 2-D-Matrix erzeugte, interpolierte Texelwerte im Texturspeicher (41') gespeichert werden können und eine weitere 2-D- Matrix der pyramidenförmigen oder teilweise pyramidenförmigen Matrix bilden.
2. Ein Anzeigegerät nach Anspruch 1, bei dem der Texturspeicher (41') in mindestens drei parallel adressierte Speicher aufgeteilt ist und bei dem der 2-D- Matrizenspeicher so eingerichtet ist, daß die Texelwerte jeder einzelnen 2-D-Matrix auf eine verschachtelte Weise verteilt werden, so daß die Werte eines 2-D-Ausschnitts von Texeln als Reaktion auf ein einzelnes 2-D-Koordinatenpaar parallel aus dem Texturspeicher (41') gelesen und an die 2-D-Interpoliervorrichtung (BIL1, BIL2) geliefert werden kann.
3. Ein Anzeigegerät nach Anspruch 1, dessen Texturspeicher (41') eine erste und eine getrennte zweite parallel adressierte Texturspeicherbank (TRAM1 und TRAM2) umfaßt und dessen Rückführvorrichtungen (70-76) so eingerichtet sind, daß sie die andere 2-D-Matrix in einer anderen Texturspeicherbank (TRAM2) speichern, als in derjenigen (TRAM1), in der die eine 2-D-Matrix gespeichert ist, und dadurch das Lesen der Texelwerte der einen 2-D-Matrix, die an die Interpoliervorrichtung (BIL1, BIL2) geliefert werden, parallel zum Speichern der interpolierten Werte, die die weitere 2-D- Matrix bilden, ermöglicht.
4. Ein Anzeigegerät nach Anspruch 3, bei dem die Vorrichtung zum Erzeugen von 2-D-Koordinaten (28') und die Rückführvorrichtung (70-76) so eingerichtet werden, daß sie eine Folge von Ebenen der pyramidenförmigen Matrix mit abnehmender Auflösung erzeugen und abwechselnd in der ersten und in der zweiten Texturspeicherbank (TRAM1, TRAM2) speichern.
5. Ein Anzeigegerät nach Anspruch 3 oder Anspruch 4, dessen Texturspeicher (41') in mindestens drei parallel adressierte Speicher unterteilt ist, und dessen Speichervorrichtung für 2-D-Matrizen so eingerichtet ist, daß die Texelwerte jeder einzelnen 2-D-Matrix auf eine verschachtelte Weise so verteilt werden, daß die Werte eines 2-D-Ausschnitts parallel sowohl von der ersten als auch von der zweiten Texturspeicherbank (TRAM 1, TRAM2) gelesen werden können, und dessen Interpoliervorrichtungen (BIL1, BIL2) so eingerichtet sind, daß sie eine 2-D- Interpolation innerhalb eines Ausschnitts mit einer Interpolation zwischen den Ebenen kombinieren und so einen einzigen 3-D-interpolierten Wert aus zwei Ausschnitten mit mindestens acht gespeicherten Texelwerten erzeugen.
6. Ein Anzeigegerät nach Anspruch 5, dessen Interpoliervorrichtung einen ersten (BIL1) und einen zweiten (BIL2) 2-D-Interpolierer umfaßt, die zwischen den Werten innerhalb der in der ersten bzw. in der zweiten Texturspeicherbank (TRAM1, TRAM2) gespeicherten 2-D-Ausschnitte eine 2-D-Interpolation ausführt und dessen Rückführvorrichtungen (70-76) es ermöglichen, daß Texelwerte, die von einer in der einen Texturspeicherbank (TRAM1) gespeicherten 2-D-Matrix gelesen und vom ersten 2-D-Interpolierer (BIL1) interpoliert wurden, in eine andere 2-D-Matrix in einer anderen Texturspeicherbank (TRAM2) gespeichert werden.
7. Ein Anzeigegerät nach einem der Ansprüche 1 bis 6, dessen Texturspeicher (41') einen linear adressierten Speicher umfaßt, dessen Anzeigeprozessor außerdem Vorrichtungen zum Erzeugen physikalischer Adressen (49, 50) umfaßt, die ein 2-D-Koordinatenpaar empfangen und daraus eine lineare physikalische Adresse erzeugen, die zum Texturspeicher (41') geleitet wird.
8. Ein Verfahren zum Betreiben eines Anzeigegeräts nach einem der Ansprüche 1 bis 7, das die folgenden Schritte umfaßt:
(a) Übertragen einer ersten 2-D-Matrix von Texelwerten, die ein 2-D- Modulationsmuster mit einem ersten Auflösungsgrad darstellen, vom Hauptspeicher (20) in den Texturspeicher (41');
(b) Veranlassen der Vorrichtungen (49, 50) im Anzeigeprozessor, zum Erzeugen von 2-D-Koordinatenpaaren, die systematisch die Texelwerte in der ersten 2-D-Matrix adressieren, so daß die Anzahl der von den Interpoliervorrichtungen erzeugten, interpolierten Werte kleiner ist als die in der ersten 2-D-Matrix und sie das besagte Modulationsmuster mit einem zweiten Auflösungsgrad darstellen, der kleiner ist als der erste Grad; und
(c) Aktivieren der Rückführvorrichtungen (70-76), um die interpolierten Werte in Form einer zweiten, kleineren 2-D-Matrix von Texelwerten im Texturspeicher zu speichern, die dadurch zusammen mit der ersten 2-D-Matrix Teil einer pyramidenförmigen Matrix ist.
9. Ein Verfahren nach Anspruch 8, bei dem die zweite 2-D-Matrix im Speicher in einer oder in beiden Dimensionen halb so viele Texelwerte wie die erste 2- D-Matrix umfaßt.
10. Ein Verfahren nach Anspruch 8 oder Anspruch 9, bei dem die Schritte (b) und (c) wiederholt werden, wobei die zweite 2-D-Matrix durch die erste 2-D-Matrix ersetzt wird usw. und so weitere 2-D-Matrizen erzeugt werden, die jeweils kleiner sind als die vorangegangene Matrix und jeweils das Modulationsmuster mit einem kleineren Auflösungsgrad als die vorangegangene Matrix darstellen.
DE69130123T 1990-01-15 1991-01-11 Anzeigegerät und Verfahren zum Betreiben eines solchen Geräts Expired - Fee Related DE69130123T2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
GB9000843A GB2240017A (en) 1990-01-15 1990-01-15 New, interpolated texture values are fed back to texture memories

Publications (2)

Publication Number Publication Date
DE69130123D1 DE69130123D1 (de) 1998-10-15
DE69130123T2 true DE69130123T2 (de) 1999-05-20

Family

ID=10669302

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69130123T Expired - Fee Related DE69130123T2 (de) 1990-01-15 1991-01-11 Anzeigegerät und Verfahren zum Betreiben eines solchen Geräts

Country Status (6)

Country Link
US (1) US5544292A (de)
EP (1) EP0438193B1 (de)
JP (1) JP3007701B2 (de)
KR (1) KR100191112B1 (de)
DE (1) DE69130123T2 (de)
GB (1) GB2240017A (de)

Families Citing this family (47)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06251166A (ja) * 1993-02-25 1994-09-09 Toshiba Corp 画像処理装置
GB9316214D0 (en) * 1993-08-05 1993-09-22 Philips Electronics Uk Ltd Image processing
US5461712A (en) * 1994-04-18 1995-10-24 International Business Machines Corporation Quadrant-based two-dimensional memory manager
GB9501832D0 (en) 1995-01-31 1995-03-22 Videologic Ltd Texturing and shading of 3-d images
US5745118A (en) * 1995-06-06 1998-04-28 Hewlett-Packard Company 3D bypass for download of textures
EP0747858B1 (de) * 1995-06-06 2005-12-28 Hewlett-Packard Company, A Delaware Corporation Pufferspeicher für Texturdaten
US5872867A (en) * 1995-08-04 1999-02-16 Sarnoff Corporation Method and apparatus for generating image textures
US6111584A (en) * 1995-12-18 2000-08-29 3Dlabs Inc. Ltd. Rendering system with mini-patch retrieval from local texture storage
WO1997034213A2 (en) * 1996-03-14 1997-09-18 I.I. Interactive Innovations Ltd. Computerized graphics systems
WO1997044776A2 (en) * 1996-05-17 1997-11-27 Philips Electronics N.V. Display device
US5935198A (en) * 1996-11-22 1999-08-10 S3 Incorporated Multiplier with selectable booth encoders for performing 3D graphics interpolations with two multiplies in a single pass through the multiplier
US6366290B1 (en) * 1997-03-31 2002-04-02 Cirrus Logic, Inc. Dynamically selectable texture filter for a software graphics engine
US6130674A (en) * 1997-03-31 2000-10-10 Cirrus Logic, Inc. Dynamically selectable texture filter for computer graphics
US20020154132A1 (en) 1997-07-30 2002-10-24 Alain M. Dumesny Texture mapping 3d graphic objects
US6151029A (en) * 1997-08-22 2000-11-21 Seiko Epson Corporation Texture mapping with improved technique for selecting an appropriate level in filtered representations of the texture
JP3630934B2 (ja) 1997-08-29 2005-03-23 三洋電機株式会社 テクスチャ記録方法
US6188381B1 (en) * 1997-09-08 2001-02-13 Sarnoff Corporation Modular parallel-pipelined vision system for real-time video processing
US6016151A (en) * 1997-09-12 2000-01-18 Neomagic Corp. 3D triangle rendering by texture hardware and color software using simultaneous triangle-walking and interpolation for parallel operation
US6104413A (en) * 1998-03-11 2000-08-15 Industrial Technology Research Institute Methods and systems for storing texels retrievable in a single cycle
US6175368B1 (en) * 1998-03-24 2001-01-16 Ati Technologies, Inc. Method and apparatus for object rendering including bump mapping
US6191793B1 (en) 1998-04-01 2001-02-20 Real 3D, Inc. Method and apparatus for texture level of detail dithering
US6204857B1 (en) 1998-04-16 2001-03-20 Real 3-D Method and apparatus for effective level of detail selection
CN1159682C (zh) 1998-11-12 2004-07-28 索尼电脑娱乐公司 图象产生方法和图象产生设备
US6353438B1 (en) * 1999-02-03 2002-03-05 Artx Cache organization—direct mapped cache
US6784882B1 (en) * 1999-09-10 2004-08-31 Sony Computer Entertainment Inc. Methods and apparatus for rendering an image including portions seen through one or more objects of the image
US6618048B1 (en) 1999-10-28 2003-09-09 Nintendo Co., Ltd. 3D graphics rendering system for performing Z value clamping in near-Z range to maximize scene resolution of visually important Z components
US6717577B1 (en) 1999-10-28 2004-04-06 Nintendo Co., Ltd. Vertex cache for 3D computer graphics
US7576748B2 (en) 2000-11-28 2009-08-18 Nintendo Co. Ltd. Graphics system with embedded frame butter having reconfigurable pixel formats
US6707458B1 (en) 2000-08-23 2004-03-16 Nintendo Co., Ltd. Method and apparatus for texture tiling in a graphics system
US6700586B1 (en) 2000-08-23 2004-03-02 Nintendo Co., Ltd. Low cost graphics with stitching processing hardware support for skeletal animation
US6636214B1 (en) 2000-08-23 2003-10-21 Nintendo Co., Ltd. Method and apparatus for dynamically reconfiguring the order of hidden surface processing based on rendering mode
US7538772B1 (en) 2000-08-23 2009-05-26 Nintendo Co., Ltd. Graphics processing system with enhanced memory controller
US6825851B1 (en) 2000-08-23 2004-11-30 Nintendo Co., Ltd. Method and apparatus for environment-mapped bump-mapping in a graphics system
US6811489B1 (en) 2000-08-23 2004-11-02 Nintendo Co., Ltd. Controller interface for a graphics system
US7184059B1 (en) 2000-08-23 2007-02-27 Nintendo Co., Ltd. Graphics system with copy out conversions between embedded frame buffer and main memory
US7061502B1 (en) 2000-08-23 2006-06-13 Nintendo Co., Ltd. Method and apparatus for providing logical combination of N alpha operations within a graphics system
US7196710B1 (en) 2000-08-23 2007-03-27 Nintendo Co., Ltd. Method and apparatus for buffering graphics data in a graphics system
US6937245B1 (en) 2000-08-23 2005-08-30 Nintendo Co., Ltd. Graphics system with embedded frame buffer having reconfigurable pixel formats
US7023447B2 (en) * 2001-05-02 2006-04-04 Eastman Kodak Company Block sampling based method and apparatus for texture synthesis
US8416242B1 (en) 2004-05-14 2013-04-09 Nvidia Corporation Method and system for interpolating level-of-detail in graphics processors
US8411105B1 (en) 2004-05-14 2013-04-02 Nvidia Corporation Method and system for computing pixel parameters
US8432394B1 (en) 2004-05-14 2013-04-30 Nvidia Corporation Method and system for implementing clamped z value interpolation in a raster stage of a graphics pipeline
US7190366B2 (en) * 2004-05-14 2007-03-13 Nvidia Corporation Method and system for a general instruction raster stage that generates programmable pixel packets
US7079156B1 (en) * 2004-05-14 2006-07-18 Nvidia Corporation Method and system for implementing multiple high precision and low precision interpolators for a graphics pipeline
US7538773B1 (en) 2004-05-14 2009-05-26 Nvidia Corporation Method and system for implementing parameter clamping to a valid range in a raster stage of a graphics pipeline
US7595806B1 (en) 2004-08-03 2009-09-29 Nvidia Corporation Method and system for implementing level of detail filtering in a cube mapping application
US8441497B1 (en) 2007-08-07 2013-05-14 Nvidia Corporation Interpolation of vertex attributes in a graphics processor

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4400768A (en) * 1980-06-04 1983-08-23 Burroughs Corporation Parallel access computer memory system employing a power-of-two memory modules
GB2138252B (en) * 1983-04-12 1986-10-22 Marconi Co Ltd Image generator
US4615013A (en) * 1983-08-02 1986-09-30 The Singer Company Method and apparatus for texture generation
GB2171579B (en) * 1985-02-20 1988-03-02 Singer Link Miles Ltd Apparatus for generating a visual display
US4797942A (en) * 1987-03-02 1989-01-10 General Electric Pyramid processor for building large-area, high-resolution image by parts
US4974176A (en) * 1987-12-18 1990-11-27 General Electric Company Microtexture for close-in detail

Also Published As

Publication number Publication date
DE69130123D1 (de) 1998-10-15
EP0438193A3 (en) 1991-11-13
EP0438193A2 (de) 1991-07-24
EP0438193B1 (de) 1998-09-09
JPH04211877A (ja) 1992-08-03
KR100191112B1 (ko) 1999-06-15
JP3007701B2 (ja) 2000-02-07
KR910014795A (ko) 1991-08-31
US5544292A (en) 1996-08-06
GB2240017A (en) 1991-07-17
GB9000843D0 (en) 1990-03-14

Similar Documents

Publication Publication Date Title
DE69130123T2 (de) Anzeigegerät und Verfahren zum Betreiben eines solchen Geräts
DE69128731T2 (de) Schaltungsanordnung für die Konvertierung von pyramidenförmigen Texturkoordinaten und diese enthaltendes Anzeigegerät
DE69122557T2 (de) Bilderzeugung
DE68927471T2 (de) Verfahren zur Schattierung eines graphischen Bildes
DE3854543T2 (de) Prioritätsverwaltung eines Tiefendatenpuffers für Echtzeitrechnersysteme zur Bilderzeugung.
DE3853393T2 (de) Verfahren und Vorrichtung zur zweidimensionalen Bilderstellung.
EP1227444B1 (de) Verfahren zur Rasterisierung eines Graphikgrundelements
DE69130132T2 (de) Verfahren zur Erzeugung von Adressen zu texturierten, in RIP Maps gespeicherten graphischen Primitiven
DE3855231T2 (de) Prioritätsauflösungssystem zwischen Polygonen mit Antialiasing
DE102008034519B4 (de) Aufgeteilte Datenstruktur, und Verfahren zum Laden einer Partikel-basierten Simulation unter Verwendung der aufgeteilten Datenstruktur in GPU, usw.
DE69804126T2 (de) Verfahren und einrichtung zur dreidimensionalen graphikdarstellung
DE10053439B4 (de) Grafik-Beschleuniger mit Interpolationsfunktion
DE3750784T2 (de) Generation eines intrapolierten charakteristischen Wertes zur Anzeige.
DE3686233T2 (de) Videosignalverarbeitung.
DE69908966T3 (de) Schattierung von 3-dimensionalen rechner-erzeugten bildern
DE69032932T2 (de) System und Verfahren zum unverfälschten Polygonenzeichnen
DE69224499T2 (de) Dreidimensionale graphische Verarbeitung
DE69331031T2 (de) Vorrichtung zur parallelen Bilderzeugung
DE69716877T2 (de) System und Verfahren zur genauen Gradientberechnung für die Texturabbildung in einem Computergraphiksystem
DE3851680T2 (de) Einrichtung zur Änderung der Bildelementdaten, die in einem Direktzugriffsspeicher gespeichert sind.
DE68925399T2 (de) Verfahren und Gerät zur Bildtransformation
DE69127516T2 (de) Verfahren und Gerät zur Bilderzeugung
DE69609534T2 (de) Rechnerbasierte 3D-Darstellungsverfahren und -System
DE3022454A1 (de) Optisches abbildesystem mit computererzeugtem bild fuer einen bodenfesten flugsimulator
DE3407983A1 (de) Mehrprozessorrechnersystem zum verarbeiten in einer hierarchischen datenstruktur definierter objektelemente zu einer farbigen abbildung

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8339 Ceased/non-payment of the annual fee