DE19709227A1 - Verfahren zum schnellen Herunterladen von Texturen auf eine Hardware für beschleunigte Graphiken und zur Beseitigung von zusätzlichen Softwarekopien von Texeln - Google Patents
Verfahren zum schnellen Herunterladen von Texturen auf eine Hardware für beschleunigte Graphiken und zur Beseitigung von zusätzlichen Softwarekopien von TexelnInfo
- Publication number
- DE19709227A1 DE19709227A1 DE19709227A DE19709227A DE19709227A1 DE 19709227 A1 DE19709227 A1 DE 19709227A1 DE 19709227 A DE19709227 A DE 19709227A DE 19709227 A DE19709227 A DE 19709227A DE 19709227 A1 DE19709227 A1 DE 19709227A1
- Authority
- DE
- Germany
- Prior art keywords
- texture
- graphics
- hardware
- application programming
- 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.)
- Granted
Links
- 230000015654 memory Effects 0.000 title description 53
- 238000000034 method Methods 0.000 claims description 44
- 230000004044 response Effects 0.000 claims description 3
- 235000019587 texture Nutrition 0.000 description 206
- 230000008569 process Effects 0.000 description 31
- 238000013507 mapping Methods 0.000 description 16
- 230000006399 behavior Effects 0.000 description 8
- 239000000872 buffer Substances 0.000 description 6
- 230000007246 mechanism Effects 0.000 description 6
- 238000010586 diagram Methods 0.000 description 5
- 238000002360 preparation method Methods 0.000 description 4
- SPBWHPXCWJLQRU-FITJORAGSA-N 4-amino-8-[(2r,3r,4s,5r)-3,4-dihydroxy-5-(hydroxymethyl)oxolan-2-yl]-5-oxopyrido[2,3-d]pyrimidine-6-carboxamide Chemical compound C12=NC=NC(N)=C2C(=O)C(C(=O)N)=CN1[C@@H]1O[C@H](CO)[C@@H](O)[C@H]1O SPBWHPXCWJLQRU-FITJORAGSA-N 0.000 description 3
- 102100021677 Baculoviral IAP repeat-containing protein 2 Human genes 0.000 description 3
- 101000896157 Homo sapiens Baculoviral IAP repeat-containing protein 2 Proteins 0.000 description 3
- 230000003111 delayed effect Effects 0.000 description 3
- 238000012935 Averaging Methods 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000010276 construction Methods 0.000 description 2
- 230000001419 dependent effect Effects 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000001914 filtration Methods 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 238000012958 reprocessing Methods 0.000 description 2
- 239000013598 vector Substances 0.000 description 2
- 102100021662 Baculoviral IAP repeat-containing protein 3 Human genes 0.000 description 1
- 101000896224 Homo sapiens Baculoviral IAP repeat-containing protein 3 Proteins 0.000 description 1
- 101150012648 Odam gene Proteins 0.000 description 1
- 102100027069 Odontogenic ameloblast-associated protein Human genes 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 239000003795 chemical substances by application Substances 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000003384 imaging method Methods 0.000 description 1
- 108090000623 proteins and genes Proteins 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/04—Texture mapping
Landscapes
- Engineering & Computer Science (AREA)
- Computer Graphics (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Image Generation (AREA)
Description
Die vorliegende Erfindung bezieht sich auf ein Verfahren zum
schnellen Herunterladen von Texturen auf eine Hardware für
beschleunigte Graphiken und zur Beseitigung von zusätzlichen
Softwarekopien von Texeln. Insbesondere bezieht sich die Er
findung auf eine Software-Speicherverwaltung von Texturta
bellen eines Texturabbildungs-Computergraphiksystems und
noch spezieller auf einen neuen Lösungsansatz, der das Her
unterladen von Texturen beträchtlich beschleunigt, wenn ein
Texturunterbrechungs-Verwaltungshintergrundprozeß
("TIM"-Daemon; TIM = Texture Interveniere Management), der auf ei
nem virtuellen Speicherverwaltungssystem basiert, verwendet
ist, um ein Hardwarevorrichtungs-Lokal-Cache-Speichersystem
zum Speichern von Texturabbildungsdaten zu liefern.
Gegenwärtige Implementierungen einer Texturabbildung, wie
detaillierter in der U.S.-Patentanmeldung Seriennr.
08/486,447, eingereicht am 8. Juni 1995, mit dem Titel TEXEL
CACHE INTERRUPT DAEMON FOR VIRTUAL MEMORY MANAGEMENT OF TEX
TURE MAPS, von Ethan W. Gannett, der Anmelderin der vorlie
genden Anmeldung, deren Inhalt hiermit durch Bezugnahme auf
genommen ist, beschrieben ist, speichern eine Kopie der Tex
tur des Benutzers softwaremäßig, um einen Mechanismus für
eine Texturabfrage zu liefern und das hardwaremäßige Zwi
schenspeichern (Cacheing) von Texeln zu ermöglichen, wenn
nicht ausreichend Speicher existiert, daß alle Texel gleich
zeitig in die Hardware passen.
Bei typischen Computergraphiksystemen ist ein Objekt, das
auf dem Anzeigebildschirm dargestellt werden soll, in eine
Mehrzahl von Graphik-Grundelementen unterteilt. Grundelemen
te sind elementare Komponenten eines Graphikbilds und können
Punkte, Linien, Vektoren oder Polygone, beispielsweise Drei
ecke, enthalten. Typischerweise ist ein Hardware/Software-Schema
implementiert, um die Graphikgrundelemente, die die
Ansicht von einem oder mehreren Objekten, das (die) auf dem
Bildschirm dargestellt wird (werden), darstellen, für den
zweidimensionalen Anzeigebildschirm aufzubereiten oder auf
demselben zu zeichnen.
Typischerweise werden die Grundelemente, die das dreidimen
sionale Objekt, das aufbereitet werden soll, definieren, von
einem Hostcomputer geliefert, der jedes Grundelement in Form
von Grundelementdaten definiert. Wenn das Grundelement bei
spielsweise ein Dreieck ist, kann der Hostcomputer das
Grundelement in Form von x-, y-, z-Koordinaten der Scheitel
punkte desselben definieren, ebenso wie von R-, G-, B-Farb
werten jedes Scheitelpunkts. Eine Aufbereitungshardware in
terpoliert die Grundelementdaten, um die Anzeigebildschirm
pixel zu berechnen, die eingeschaltet werden, um jedes
Grundelement darzustellen, ebenso wie die R-, G-, B-Werte
für jedes Pixel.
Frühe Graphiksysteme waren nicht in der Lage, Bilder auf
eine ausreichend realistische Art und Weise anzuzeigen, um
komplexe dreidimensionale Objekte darzustellen oder zu mo
dellieren. Die Bilder, die durch solche Systeme angezeigt
wurden, zeigten extrem glatte Oberflächen ohne Texturen, Er
hebungen, Vertiefungen, Schatten oder anderen Oberflächen
details, die bei dem Objekt, das modelliert wird, vorliegen.
Folglich wurden Verfahren entwickelt, um Bilder mit verbes
serten Oberflächeneinzelheiten anzuzeigen. Die Texturabbil
dung ist ein solches Verfahren, das das Abbilden eines Quel
lenbilds, das hierin als eine "Textur" bezeichnet wird, auf
eine Oberfläche eines dreidimensionalen Objekts und nachfol
gend das Abbilden des texturierten dreidimensionalen Objekts
auf dem zweidimensionalen Graphikanzeigebildschirm, um das
resultierende Bild anzuzeigen, enthält. Oberflächen-Detail
attribute, die üblicherweise mittels der Texturabbildung ab
gebildet werden, umfassen die Farbe, Spiegelreflexionen,
Vektorperturbationen, das Spiegelvermögen, die Transparenz,
Schatten, Oberflächen-Unregelmäßigkeiten sowie Abstufungen.
Die Texturabbildung umfaßt das Anwenden von einem oder meh
reren Punkttexturelementen ("Texeln") auf jedes Punktelement
("Pixel") des angezeigten Abschnitt des Objekts, auf das die
Textur abgebildet wird. Die Texturabbildungshardware wird
üblicherweise mit Informationen beliefert, 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 Ort desselben in der
zweidimensionalen Texturtabelle identifizieren. Für jedes
Pixel wird aus der Texturtabelle auf das entsprechende Texel
oder die Texel, die auf dasselbe abbilden, zugegriffen, wo
bei dieselben in die endgültigen R-, G-, B-Werte, die für
das Pixel erzeugt werden, eingearbeitet werden, um das tex
turierte Objekt auf dem Anzeigebildschirm darzustellen.
Es sollte offensichtlich sein, daß jedes Pixel in einem Ob
jektgrundelement für jede Ansicht des Objekts nicht in einer
Eins-zu-Eins-Entsprechung auf ein einzelnes Texel in der
Texturtabelle abbildet. Beispielsweise wird, je näher das
Objekt der Sichtebene, die auf dem Anzeigebildschirm darge
stellt ist, ist, das Objekt umso größer erscheinen. Wenn das
Objekt auf dem Anzeigebildschirm größer erscheint, wird die
Darstellung der Textur detaillierter. Wenn das Objekt einen
ziemlich großen Abschnitt des Anzeigebildschirms belegt,
wird somit eine große Anzahl von Pixeln verwendet, um das
Objekt auf dem Anzeigebildschirm darzustellen, wobei jedes
Pixel, das das Objekt darstellt, in einer Eins-zu-Eins-Ent
sprechung auf ein einzelnes Texel in der Texturtabelle ab
bilden kann, wobei alternativ ein einzelnes Texel auf meh
rere Pixel abbilden kann. Wenn das Objekt jedoch einen rela
tiv kleinen Abschnitt auf dem Anzeigebildschirm besetzt, ist
eine viel kleinere Anzahl von Pixeln verwendet, um das Ob
jekt darzustellen, was zur Folge hat, daß die Textur weniger
detailliert dargestellt wird, so daß jedes Pixel auf eine
Mehrzahl von Texeln abbilden kann. Außerdem kann jedes Pixel
in eine Mehrzahl von Texeln abbilden, wenn eine Textur auf
einen kleinen Abschnitt eines Objekts abgebildet wird. Für
jedes Pixel, das auf mehr als ein Texel abbildet, werden re
sultierende Texeldaten berechnet. Da es üblich ist, daß ein
Pixel auf mehrere Texel abbildet, stellen resultierende Te
xeldaten für ein Pixel typischerweise einen Mittelwert der
Texel, die auf dieses Pixel abbilden, dar.
Texturabbildungs-Hardwaresysteme weisen typischerweise einen
lokalen Speicher auf, der Daten speichert, die eine Textur
darstellen, die dem Objekt, das aufbereitet wird, zugeordnet
ist. Wie oben erläutert wurde, kann ein Pixel auf mehrere
Texel abbilden. Wenn es notwendig wäre, daß die Texturabbil
dungshardware eine große Anzahl von Texeln, die auf ein Pi
xel abbilden, aus dem Lokalspeicher liest, um einen Mittel
wert zu erzeugen, dann wäre eine große Anzahl von
Speicher-Auslesungen und die Mittelwertbildung von vielen Texelwerten
erforderlich, was zeitaufwendig wäre und das Systemverhalten
verschlechtern würde.
Um dieses Problem zu lösen, wurde ein Schema entwickelt, das
die Erzeugung einer Reihe von Tabellen, die "MIP"-Tabellen
("MIP" bedeutet "multum in parvo" = viele Dinge an einem
kleinen Ort) genannt werden, für jede Textur enthält, und
das Speichern der MIP-Tabellen der Textur, die dem Objekt,
das aufbereitet wird, zugeordnet ist, in dem Lokalspeicher
der Texturabbildungshardware. Eine MIP-Tabelle für eine Tex
tur weist eine Basistabelle auf, die direkt der Texturtabel
le entspricht, ebenso wie eine Reihe von gefilterten Tabel
len, in denen jede aufeinanderfolgende Tabelle größenmäßig
um einen Faktor von zwei in jeder der zwei Texturtabellendi
mensionen reduziert ist. Ein darstellendes Beispiel eines
Satzes von MIP-Tabellen ist in Fig. 1 gezeigt. Die MIP-Ta
bellen weisen eine Basistabelle ("Ebene 0") 100 auf, die
acht mal acht Texel groß ist, ebenso wie eine Reihe von Ta
bellen 102, 104 und 108, die eine Ebene 1, die vier mal vier
Texel groß ist, eine Ebene 2, die zwei mal zwei Texel groß
ist, bzw. eine Ebene 3, die 1 Texel groß ist, darstellen.
Die Ebene-1-Tabelle 102 der Größe vier mal vier wird durch
eine Blockfilterung (Dezimierung) der Basistabelle 100 er
zeugt, derart, daß jedes Texel in der Ebene-1-Tabelle 102
einem Mittelwert von vier Texeln aus der Ebene-0-Basistabel
le 100 entspricht. Beispielsweise ist das Texel 110 in der
Ebene-1-Tabelle 102 gleich dem Mittelwert der Texel 112 bis
115 der Ebene-0- (Basis-) Tabelle 100. In gleicher Weise
sind die Texel 118 und 120 in der Ebene-1-Tabelle 102 gleich
den Mittelwerten der Texel 121 bis 124 bzw. 125 bis 128 der
Ebene-0- (Basis-) Tabelle 100. Die Ebene-2-Tabelle 104 der
Größe zwei mal zwei ist in gleicher Weise durch eine Block
filterung der Ebene-1-Tabelle 102 gebildet, derart, daß das
Texel 130 in der Ebene-2-Tabelle 104 gleich dem Mittelwert
der Texel 110 und 118 bis 120 der Ebene-1-Tabelle 102 ist.
Das einzelne Texel in der Ebene-3-Tabelle 108 ist durch die
Mittelwertbildung der vier Texel in der Ebene-2-Tabelle 104
erzeugt.
Herkömmliche Graphiksysteme laden üblicherweise die gesamte
Reihe von MIP-Tabellen für jede Textur, die für die Grund
elemente, die auf dem Anzeigebildschirm gezeichnet werden
sollen, verwendet werden soll, aus dem Hauptspeicher des
Hostcomputers in den Lokalspeicher der Texturabbildungshard
ware. Folglich kann die Texturabbildungshardware auf Textur
daten aus jeder der Reihe von MIP-Tabellen zugreifen. Die
Bestimmung dessen, auf welche Tabelle zuzugreifen ist, um
die Texeldaten für jedes spezielle Pixel zu liefern, basiert
auf der Anzahl von Texeln, die dem Pixel zugeordnet ist.
Wenn dem Pixel ein einzelnes Texel in der Texturtabelle in
einer Eins-zu-Eins-Entsprechung zugeordnet ist, wird bei
spielsweise auf die Basistabelle 100 zugegriffen. Wenn das
Pixel jedoch auf vier, sechzehn oder vierundsechzig Texel
abbildet, wird jeweils auf die Tabellen 102, 104 und 108
zugegriffen, da diese Tabellen jeweils Texeldaten speichern,
die einen Mittelwert von vier, sechzehn und vierundsechzig
Texeln in der Texturtabelle speichern.
Überdies sind einige Texturabbildungssysteme pipelineartig
aufgebaut, so daß verschiedene Operationen auf unterschied
lichen Objektgrundelementen gleichzeitig durchgeführt wer
den. Jedoch kann eine Reihe von MIP-Tabellen für eine Textur
groß sein. Die meisten Systeme verwenden einen Lokalspei
cher, der in der Lage ist, nur eine derart große Reihe von
MIP-Tabellen auf einmal zu speichern. Wenn ein Wechseln der
Textur, die bei der Aufbereitung von Grundelementen verwen
det ist, vorliegt, muß das System folglich eine neue Reihe
von MIP-Tabellen herunterladen. Typischerweise umfaßt der
Datenweg, der verwendet ist, um die neuen Texturdaten in den
Lokalspeicher der Texturabbildungshardware herunterzuladen,
das Durchlaufen der Grundelement-Aufbereitungspipeline des
Systems. Wenn eine neue Textur abgebildet werden soll, muß
daher ermöglicht sein, daß die Grundelement-Aufbereitungs
pipeline entleert ist, bevor die neue Reihe von MIP-Tabellen
heruntergeladen werden kann. Sobald die Reihe von MIP-Tabel
len heruntergeladen ist, muß die Pipeline wieder gefüllt
werden. Die Notwendigkeit des Spülens der Grundelement-Auf
bereitungspipeline, jedesmal, wenn eine neue Textur erfor
derlich ist, reduziert die Bandbreite des Systems.
Fig. 2 ist ein Blockdiagramm, teils Hardware, teils hierar
chische Software, eines herkömmlichen Computergraphiksy
stems, das die Softwareschichten zeigt, die auf dem Prozes
sor des Systemhostcomputers ablaufen, ebenso wie die Hard
warevorrichtung, mit der der Hostcomputer kommuniziert, um
die mit einer Textur versehenen Bilder aufzubereiten. Der
Systemspeicher des Hostcomputers kann eine Mehrzahl Benut
zer-interaktiver Prozesse PR1, PR2, . . ., PRN speichern, die
auf dem Systemprozessor laufen können, wie in Fig. 2 gezeigt
ist. Jeder Prozeß, PRi, ist ein Hochpegel-Computergraphik-Softwareprogramm
oder eine Anwendung, beispielsweise eine
Datenbank, eine CAD/CAM-Anwendung, eine Architekturentwurfs
anwendung, eine Bautechnikanwendung, ein
Textverarbeitungs-Datenpaket oder dergleichen.
Innerhalb eines speziellen Prozesses kann ein Benutzer meh
rere Kontexte erzeugen. Jeder Kontext, der in einem Prozeß
erzeugt wird, kann eine unterschiedliche Ansicht des glei
chen Bilds enthalten. Beispielsweise kann ein Benutzer in
einem Bautechnik-Entwurfsanwendungsprozeß unterschiedliche
Ansichten der gleichen Struktur, beispielsweise eines Gebäu
des, erzeugen. Jeder Kontext kann eine Texturabbildung er
fordern, um das Bild aufzubereiten. Bei diesem Beispiel kön
nen Texturtabellen erforderlich sein, um die Böden, Wände,
Decken und andere Oberflächenattribute des Gebäudes zu
zeichnen. Folglich liefert der Benutzer die Textur-Tabelle
oder -Tabellen, um das Bild dieses Kontextes aufzubereiten.
Da mehrere Kontexte, die in dem gleichen Prozeß erzeugt wer
den, typischerweise unterschiedliche Ansichten des gleichen
Bilds umfassen, benötigen die Kontexte innerhalb eines Pro
zesses üblicherweise die gleiche Textur oder die gleichen
Texturen.
Wenn ein Kontext durch einen Benutzer erzeugt wird, erteilt
der Benutzer einen Befehl, der für die Hochpegel-Prozeßpro
grammiersprache erkennbar ist, um das Bild zu zeichnen. Wenn
das Bild eine Texturtabelle erfordert, wird ein Befehl ein
gegeben, der anzeigt, daß eine Texturtabelle erforderlich
ist, wobei die Texturtabelle dann durch den Benutzer von ei
ner externen Eingabevorrichtung, einer Floppy-Diskette oder
dergleichen, geliefert wird. Der Prozeß, oder die Hochpe
gel-Programmiersprache, übersetzt dann diesen Befehl in ei
nen Niederpegel-Softwarebefehl und kopiert die Textur, die
durch den Benutzer eingegeben wird. Bei bekannten Systemen,
beispielsweise dem, das in Fig. 2 gezeigt ist, erfordert je
der Kontext, der in einem einzelnen Prozeß erzeugt wird,
seine eigene Kopie dieser Textur. Jeder Kontext speichert
seine Kopie der Textur in einem zugewiesenen Bereich des Sy
stemspeichers auf dem Hostcomputer. Folglich werden, wenn
mehrere Kontexte innerhalb eines Prozesses die Verwendung
der gleichen Textur erfordern, mehrere Kopien dieser Textur
in dem Systemspeicher gespeichert, wobei eine Kopie jedem
Kontext zugeordnet ist.
Der vom Benutzer eingegebene Befehl, um ein Bild unter Ver
wendung einer speziellen Textur zu zeichnen, wird, sobald er
durch den Prozeß übersetzt ist, von dem Prozeß zu einer da
runterliegenden Graphikanwendungsprogrammier-Schnittstelle
("API"; API = Application Programmer Interface) übertragen.
Wie in Fig. 2 gezeigt ist, kommuniziert eine eindeutige Gra
phik-API mit jedem Prozeß des Systems. Jede Graphik-API ist
eine darunterliegende Niederpegel-Softwaresprache, die auf
dem Prozessor des Hostcomputers arbeitet, um jeden Hochpe
gel-Graphikbefehl, der von dem entsprechenden Prozeß empfan
gen wird, in einen Niederpegel-Softwarecodebefehl zu über
setzen. Die Graphik-API speichert ferner eine Kopie jeder
Textur, die erforderlich ist, um das Bild aufzubereiten, in
ihrem eigenen zugewiesenen Ort des Systemspeichers. Die Gra
phik-API unterteilt das Bild, das aufbereitet werden soll,
zusätzlich in Graphikkomponenten, beispielsweise Vierecke
oder Polygone. Derartige Informationen werden dann einem
entsprechenden Hardwaretreiber geliefert.
Ein eindeutiger Hardwaretreiber kommuniziert mit jeder Gra
phik-API. Jeder Hardwaretreiber ist eine weitere darunter
liegende Graphiksoftwaresprache niedrigeren Pegels, die je
den Niederpegel-Graphikbefehl, der von der API empfangen
wird, in Hardwarebefehle übersetzt, die für die Graphikhard
warevorrichtung, mit der der Hostcomputer verbunden ist, er
kennbar ist. Diese Befehle werden dann von dem Hardwaretrei
ber zu der Hardwarevorrichtung übertragen, die als Reaktion
das mit der Textur versehene Bild auf einen Anzeigebild
schirm, der mit der Hardwarevorrichtung verbunden ist,
zeichnet. Wie in Fig. 2 gezeigt ist, kommuniziert jedes Bei
spiel eines Hardwaretreibers HWD1, HWD2, . . ., HWDN mit einer
jeweiligen Graphik-API, API1, API2, . . ., APIN.
Bei dem Beispiel, das in Fig. 2 gezeigt ist, sind alle Hard
waretreiber mit einer einzelnen Graphikhardwarevorrichtung
150 verbunden. Es ist für Fachleute jedoch offensichtlich,
daß der Hostcomputer mit einer Mehrzahl unterschiedlicher
Graphikhardwarevorrichtungen verbunden sein kann, wobei je
weils ein unterschiedlicher Hardwaretreiber mit jeder Hard
warevorrichtung kommuniziert.
Wenn eine Graphik-API einen Niederpegel-Softwarebefehl lie
fert, um ein mit einer Textur versehenes Polygon unter Ver
wendung einer speziellen Textur, die ebenfalls geliefert
wird, aufzubereiten, übersetzt der Graphikhardwaretreiber
den Niederpegelbefehl in Hardwarebefehle, die für die Hard
warevorrichtung 150 erkennbar sind. Der Graphikhardwaretrei
ber liefert danach die Befehle, um das Polygon aufzuberei
ten, zu der Hardwarevorrichtung 150, indem dieselben in ge
eignete Register und Eingangspuffer in der Hardwarevorrich
tung geschrieben werden. Zusätzlich liefert der Graphikhard
waretreiber die Texturdaten für dieses spezielle Polygon zu
dem Lokalspeicher 155 der Hardwarevorrichtung 150, wo die
selben während der Aufbereitung dieses Polygons temporär ge
speichert werden. Wie hierin beschrieben ist, laden bekannte
Computergraphiksysteme die gesamte Reihe von MIP-Tabellen
für eine einzelne Textur aus dem Graphikhardwaretreiber in
den Lokalspeicher der Hardwarevorrichtung herunter, jedes
mal, wenn diese Textur erforderlich ist, um ein Bild oder
eine Komponente des Bilds aufzubereiten.
Bei herkömmlichen Systemen, beispielsweise dem, das in Fig.
2 gezeigt ist, werden mehrere Kopien einer einzelnen Textur
an unterschiedlichen Orten des Systemsoftwarespeichers des
Hostcomputers gespeichert. Wenn beispielsweise der Kontext
1A und der Kontext 1B des Prozesses PR1 die gleiche Textur
erfordern, um unterschiedliche Ansichten eines speziellen
Bilds aufzubereiten, liefert der Benutzer eine erste Kopie
dieser Textur, wenn dieselbe anfänglich definiert und in den
Prozeß eingeführt wird. Die Graphik-API1 erstellt eine Kopie
der Textur für den Kontext 1A (die zweite Kopie) und eine
weitere Kopie dieser Textur für den Kontext 1B (die dritte
Kopie) und speichert dieselben in einem Speicher, der von
der API und der Hardware gemeinsam verwendet wird. Folglich
sind drei einzelne Kopien der gleichen Textur an unter
schiedlichen Orten des Systemsoftwarespeichers gespeichert,
um zwei Ansichten des gleichen Bilds unter Verwendung der
gleichen Textur aufzubereiten. Zusätzlich werden eine vierte
und eine fünfte Kopie der Textur der Hardwarevorrichtung ge
liefert und in dem Lokalspeicher derselben gespeichert.
Wie offensichtlich wird, kann eine Reihe von Textur-MIP-Ta
bellen zur Speicherung eine große Systemsoftwarespeichermen
ge erfordern. Beispielsweise erfordert eine Reihe von
MIP-Tabellen für eine Textur mit einer Texturbasistabelle von
1.024×1.024 Texeln mehr als 5 MByte Systemsoftwarespeicher,
um eine Kopie der MIP-abgebildeten Textur zu speichern.
Folglich verbraucht die Mehrzahl gespeicherter Kopien der
MIP-abgebildeten Textur einen signifikanten Systemsoftware
speicherbetrag.
Obwohl Systemsoftwarespeicher in der Lage sein können, Soft
waredaten bis zu einigen Gigabyte zu speichern, können typi
sche, zweckgebundene, lokale Hardwaretexturspeicher einer
Texturhardwarevorrichtung viel weniger Daten speichern. Der
artige lokale Texturhardwarespeicher liegen typischerweise
in einem Bereich von vier MByte bis sechzehn MByte. In vie
len Texturabbildungsanwendungen übersteigt daher der System
speicherbetrag, der durch Texturen verbraucht wird, den des
lokalen Hardwaretexturspeichers weit. Obwohl der Systemspei
cher typischerweise mehrere MIP-abgebildete Texturen für die
Verwendung mit mehreren Kontexten eines Prozesses speichert,
kann der lokale Hardwarevorrichtungsspeicher gleichzeitig
nur eine Textur einer begrenzten Größe speichern. Daher ist
die ordnungsgemäße Verwaltung des Lokaltexturspeichers der
Hardwarevorrichtung kritisch, um ein maximales Verhalten des
Systems zu erreichen.
Zusätzlich zu dem großen Systemsoftwarespeicherverbrauch
aufgrund der Speicherung mehrerer Kopien von Texturen leidet
die Systembandbreite allgemein unter herkömmlichen lokalen
Hardwaretexturspeicher-Verwaltungsschemata. Herkömmliche lo
kale Hardwarespeicher-Verwaltungsschemata ersetzen wieder
holt ganze Reihen von Textur-MIP-Tabellen in dem lokalen
Hardwarespeicher. Die Reihe von MIP-Tabellen für eine Textur
wird in dem lokalen Speicher jedesmal ersetzt, wenn diese
Textur benötigt wird, um ein Polygon aufzubereiten. Derarti
ge Schemata sind weder in der Lage, die Geschichte der Ver
wendung dieser Textur zu berücksichtigen, noch die zukünfti
ge Verwendung dieser Textur vorherzusagen. Durch das wieder
holte Herunterladen der gesamten Reihe der gleichen Textur
von dem Systemspeicher in den lokalen Hardwaretexturspeicher
wird die Systembandbreite negativ beeinflußt.
Obwohl herkömmliche Texturhardwarespeicher-Ersetzungsalgo
rithmen ganze Textur-MIP-Tabellen-Reihen herunterladen, darf
jede Textur-MIP-Tabellen-Reihe die physikalischen Speicher
fähigkeitsgrenzen des lokalen Hardwaretexturspeichers nicht
überschreiten. Daher muß der Benutzer des Graphikprozesses,
der mit der speziellen Hardwarevorrichtung verbunden ist,
die Kapazität des Lokaltexturspeichers kennen, so daß keine
Texturen verwendet werden, die größer sind als diese Kapazi
tät. Obwohl viele Anwendungen (Prozesse) mit mehreren, un
terschiedlichen, darunterliegenden Hardwarevorrichtungen
arbeiten können, von denen jede eindeutige Lokaltexturspei
cher-Beschränkungen aufweist, fällt die Last dem Benutzer
zu, Kenntnis von solchen Beschränkungen zu besitzen und Bil
der auf eine vorrichtungsabhängige Art und Weise zu erzeu
gen.
Wie oben angezeigt wurde, ist es möglich, daß für jede gege
bene Textur eine große Anzahl von Softwarekopien erzeugt
werden muß. Jedoch existiert in vielen Fällen niemals ein
Bedarf nach all diesen Softwarekopien. In diesen Fällen
fragt der Benutzer die Textur niemals wieder ab, wobei wäh
rend der Lebensdauer der Textur stets Raum benötigt wird, um
dieselbe in dem Texel-Cache zu speichern. Frühere Lösungen
für dieses Problem richteten sich auf das Reduzieren der An
zahl von Operationen, die bezüglich der Texturtabelle durch
geführt wurden, bevor dieselbe in den Graphikkernspeicher
kopiert wurde, wobei dieselben jedoch nicht die verschiede
nen Softwarekopien beseitigten, da davon ausgegangen wurde,
daß die Softwarekopien benötigt werden würden, da der Gra
phikkern zukünftige Funktionen, die auf der Textur durchge
führt werden könnten (beispielsweise eine Abfrage der Tex
tur), nicht bestimmen kann.
Entsprechend ist in der U.S.-Patentanmeldung Seriennr. 08/
486,447, eingereicht am 8. Juni 1995 mit dem Titel TEXEL
CACHE INTERRUPT DAEMON FOR VIRTUAL MEMORY MANAGEMENT OF TEX-
TURE MAPS, von Ethan W. Gannett, auf die oben Bezug genommen
wurde, ein TIM beschrieben, der die gemeinsame Speicherung
von Texturen unter dem Verwalter (dem "TIM"), dem Hardware
treiber und der entsprechenden Graphik-API in dem System
speicher liefert. Der Verwalter liefert ferner eine gemein
same Speicherung von Texturen unter mehreren Kontexten eines
einzelnen Prozesses. Das Verwaltungsschema, das von Gannett
beschrieben ist, ermöglicht ferner, daß der Benutzer der
Hochpegel-Graphikprozesse Bilder auf eine vorrichtungsunab
hängige Art und Weise erzeugt, ohne Kenntnis der Speicherfä
higkeitsgrenzen der Lokalspeicher der darunterliegenden
Hardwarevorrichtungen.
Ein Ausführungsbeispiel der Erfindung von Gannett ist in
Blockdiagrammform in Fig. 3 gezeigt, bei der zur Bezeichnung
von Elementen, die identisch zu denen von Fig. 2 sind, glei
che Bezugszeichen verwendet sind. Wie bei dem bekannten Aus
führungsbeispiel von Fig. 2 (vor Gannett) weist das System
mehrere Benutzer-interaktive Prozesse PR1, PR2, . . ., PRN
auf, die auf dem Systemprozessor laufen. In jedem Prozeß
kann der Benutzer mehrere Kontexte erzeugen, die die glei
chen Texturtabellen benötigen. Das System weist ferner eine
darunterliegende Graphik-API und einen Graphikhardwaretrei
ber für jeden Prozeß auf.
Die Erfindung von Gannett bezog sich auf ein Texturunterbre
chungsverwaltungs-Hintergrundprogramm ("TIM"-Daemon) 160,
das ein unabhängiger alleinstehender Softwareprozeß ist, der
auf dem Prozessor des Hostcomputers ohne Kenntnis des Benut
zers abläuft. Der TIM 160 der Erfindung von Gannett steht
mit jedem der Graphikhardwaretreiber über einen unterschied
lichen Sockel in Verbindung. Wie für Fachleute offensicht
lich ist, ist ein Sockel ein Softwarekommunikationsweg, über
den zwei Softwareprogramme kommunizieren können. Der TIM
kommuniziert mit der Hardwarevorrichtung 150 ferner über ei
nen Bus 162.
Der TIM der Erfindung von Gannett kann auf herkömmlichen
Prozessoren von Computergraphik-Systemhostcomputern, die als
Computergraphikworkstations bekannt sind, ablaufen. Ein Bei
spiel einer derartigen Workstation ist die Hewlett-Packard-
9000-Reihe J200.
Der TIM 160 verwaltet das Speichern von Texturdaten in dem
Lokalspeicher 155 der Hardwarevorrichtung 150, wobei der TIM
einen vorrichtungsunabhängigen Abschnitt enthielt, der die
Softwaretexturspeicher-Verwaltung handhabte und sockelmäßige
Verbindungen mit den Graphikhardwaretreibern und einem vor
richtungsabhängigen Abschnitt, der über den Bus 162 in die
Hardwarevorrichtung schreibt und von derselben liest.
Bei einem Ausführungsbeispiel der Erfindung von Gannett ist
der Lokalspeicher der Hardwarevorrichtung als ein
Cache-Speicher angeordnet, bei dem Abschnitte von Texturen zu je
der einzelnen Zeit in dem Lokalspeicher der Hardwarevorrich
tung gespeichert sind. Die vorrichtungsunabhängigen Ab
schnitte des TIM verfolgen die Verwendung der Abschnitte von
Texturdaten, die in dem Cache gespeichert sind und überwa
chen die Prioritäten der Texturen, um die zukünftige Verwen
dung dieser Abschnitte vorherzusagen. Ein Cache-Fehlgriff in
der Hardware findet statt, wenn von der Hardwarevorrichtung
Texturdaten benötigt werden, um ein Bild aufzubereiten, die
gegenwärtig nicht in dem Cache gespeichert sind. Wenn ein
Cache-Fehlgriff stattfindet, bestimmt der TIM, welcher Block
von Texturdaten in dem Cache zu ersetzen ist, indem berück
sichtigt wird, welcher Block oder welche Blöcke von Textur
daten in dem Cache zuletzt verwendet wurden, und welche Tex
turen die geringste Priorität aufweisen.
Bei einem Ausführungsbeispiel der Erfindung von Gannett
weist der TIM einen gemeinsam verwendeten Speicherort in dem
Systemspeicher auf, an dem eine große Textur oder ein Tex
turabschnitt gespeichert ist, und zwischen der Graphik-API,
dem Graphikhardwaretreiber und dem TIM für einen speziellen
Prozeß gemeinsam verwendet wird. Sowohl die Graphik-API als
auch der Graphikhardwaretreiber (für einen speziellen Pro
zeß) als auch der TIM 160 weisen einen Zeiger auf einen Ort
in dem gemeinsam verwendeten Systemspeicherbereich auf, um
auf die gespeicherte Texturkopie zuzugreifen. Zusätzlich
liefert der TIM ein Speicherverwaltungsschema derart, daß
alle Kontexte, die in einem einzelnen Prozeß erzeugt werden,
die gleiche Kopie jeder Textur, die für diese Kontexte benö
tigt wird, gemeinsam verwenden. Für bestimmte Anwendungen
liefert der TIM der Erfindung von Gannett daher enorme Ein
sparungen an Systemsoftwarespeicherraum.
Bezüglich des Beispiels, das oben bezugnehmend auf Fig. 2
beschrieben wurde, bei dem der Kontext 1A und der Kontext 1B
des Prozesses PR1 die gleiche Textur benötigen, um unter
schiedliche Ansichten eines speziellen Bilds aufzubereiten,
lieferte der TIM der Erfindung von Gannett enorme System
speicherraumeinsparungen, wenn die Textur groß ist. Im Ge
gensatz zu dem bekannten beschriebenen System (vor Gannett)
kann eine einzelne Kopie der Textur gespeichert werden, die
zwischen dem Kontext 1A und dem Kontext 1B gemeinsam verwen
det wird. Wenn die Textur groß genug war, um zu gewährlei
sten, daß dieselbe an dem gemeinsam verwendeten Speicherort
gespeichert ist, wird zusätzlich nur eine weitere Kopie der
Textur an dem gemeinsam verwendeten Systemspeicherort ge
speichert und zwischen dem TIM, der Graphik-API1 und dem
Graphikhardwaretreiber HWD1 gemeinsam verwendet werden.
Folglich werden bei diesem Beispiel nur drei einzelne Kopien
der gleichen Textur an unterschiedlichen Orten des System
softwarespeichers gespeichert, um zwei Ansichten des glei
chen Bilds unter Verwendung der gleichen Textur aufzuberei
ten. Eine Kopie ist die Benutzerkopie, eine Kopie wird zwi
schen den zwei Kontexten des Prozesses PR1 gemeinsam verwen
det, und eine Kopie wird zwischen der Graphik-API, dem Gra
phikhardwaretreiber und dem TIM gemeinsam verwendet. Bei dem
bekannten System von Fig. 2 (vor Gannett), das oben be
schrieben ist, hätten fünf Kopien dieser gleichen Textur in
dem Systemsoftwarespeicher gespeichert werden müssen. Daher
müssen bei dem TIM der Erfindung von Gannett zwei Kopien der
Textur weniger in dem Systemsoftwarespeicher gespeichert
werden, was für eine große Textur große Speicherraumeinspa
rungen zur Folge hat.
Andererseits erfordert die Verwendung der Vorrichtung der
vorliegenden Erfindung, wie hierin nachfolgend erklärt wird,
daß nur eine einzelne Kopie der Textur existiert, und daß
dieselbe in der Graphikhardware beibehalten wird.
Unter Verwendung der Erfindung von Gannett war es notwendig,
mehrere Schritte durchzuführen, um ein mit einer Textur ver
sehenes Dreieck zu zeichnen. Wie in Fig. 4 gezeigt ist, spe
zifizierte das Anwendungsprogramm zuerst unter Verwendung
eines API-Aufrufs eine Textur 12. Die API-Bibliothek verifi
zierte, daß der API-Aufruf gültig war 14, woraufhin die API
die Textur in einen privaten Bibliothekspuffer kopierte 16,
wodurch die erste Kopie der Textur erzeugt wurde.
Als nächstes kopierte das Texturhintergrundprogramm ("TIM")
die Textur in den privaten Puffer des Hintergrundprogramms
(möglicherweise unformatiert, um Hintergrundprogrammanforde
rungen zu erfüllen), wobei die zweite Kopie der Textur er
zeugt wird 18.
Ein Anwendungsprogramm zeichnet ein Dreieck unter Verwendung
der Textur, indem die Graphikhardware das Texturhintergrund
programm auffordert, Abschnitte der Textur, die erforderlich
sind, um das Dreieck zu zeichnen, zu liefern. Folglich muß
das Texturhintergrundprogramm die erforderlichen Abschnitte
der Textur für das Anwendungsprogramm herunterladen, wodurch
die dritte Kopie der Textur erstellt wird 24.
In ähnlicher Weise wird entsprechend der Erfindung von Gan
nett eine zusätzliche Kopie der Textur beibehalten, um die
Abfrage durch die Anwendung des momentanen Werts der Textur
zu handhaben, oder um die Beseitigung der Textur aus der
Graphikhardware zu handhaben, wenn eine neue Textur benötigt
wird.
Ausgehend von dem genannten Stand der Technik besteht die
Aufgabe der vorliegenden Erfindung darin, ein Verfahren zum
schnellen Herunterladen von Texturen in einem Computergra
phik-Hardwaresystem zu schaffen, das nur eine geringe Anzahl
von Kopien der Textur benötigt.
Diese Aufgabe wird durch ein Verfahren gemäß Anspruch 1 ge
löst.
Gemäß dem bevorzugten Ausführungsbeispiel der Erfindung wird
das Erstellen der Softwarekopie der Textur verzögert, bis
dieselbe absolut benötigt wird oder die Textur durch den Be
nutzer verworfen wird.
Ferner verallgemeinert die vorliegende Erfindung ein Textur
herunterladen, um stets diesen Mechanismus zu verwenden, was
die Softwarearchitektur stark vereinfacht und das Verhalten
in Fällen wie z. B. Rahmenpufferkopien in den Textur-Cache
verbessert, wobei wiederum keine Softwarekopie benötigt
wird, es sei denn, eine solche wird angefordert.
Das schnelle Herunterladen von Texturen zu einer Hardware
für beschleunigte Graphiken, das einfach als "schnelles Her
unterladen" bezeichnet wird, liefert einen Mechanismus, um
Texturen direkt in den Hardware-Texel-Cache herunterzuladen,
wobei der Bedarf nach einer Softwarekopie der Texel verzö
gert oder möglicherweise vollständig beseitigt wird. Dies
verbessert das Verhalten des Herunterladens von Texturen in
die Hardware dramatisch, was ferner das Verhalten von Anwen
dungen, die sich dynamisch ändernde Texturen aufweisen,
stark verbessert.
Bevorzugte Ausführungsbeispiele der vorliegenden Erfindung
werden nachfolgend bezugnehmend auf die beiliegenden Zeich
nungen näher erläutert. Es zeigen:
Fig. 1 eine graphische Darstellung eines Satzes von Tex
tur-MIP-Tabellen;
Fig. 2 ein Blockdiagramm, teils Hardware, teils hierarchi
sche Software, eines bekannten Computergraphiksy
stems;
Fig. 3 ein Blockdiagramm, teils Hardware, teils Software,
eines Computergraphiksystems gemäß der bekannten
Erfindung von Gannett;
Fig. 4 ein Flußdiagramm, das das Verfahren, das durch die
bekannte Erfindung von Gannett verwendet wird, dar
stellt; und
Fig. 5 und 6 Flußdiagramme, die das Verfahren der vorlie
genden Erfindung zeigen.
Um die zahlreichen Kopien von Texturen zu vermeiden, zusam
men mit der Zeit, die benötigt wird, um derartige Kopien zu
erstellen, ebenso wie die große Menge von Speicherbetriebs
mitteln, die derartige Kopien besetzen, liefert die vorlie
gende Erfindung eine Einrichtung zum Plazieren von Texturen
aus dem Benutzerpuffer direkt in die Graphikhardware. Die
Verwendung der vorliegenden Erfindung verbessert die Tex
tur-Herunterladungsgeschwindigkeit ebenso wie das Aufberei
tungsverhalten von Anwendungen, die sich dynamisch ändernde
Texturen aufweisen. Dieselbe ermöglicht, daß Benutzer einer
Texturabbildung ihre Texturen effizient direkt in den Hard
ware-Texel-Cache herunterladen.
Die Erfindung verwendet einen Mechanismus, um Texturen, die
nur hardwaremäßig gespeichert sind, zu verfolgen, bewahrt
jedoch die Fähigkeit, eine softwaremäßige Kopie der Textur
zu liefern, wenn eine solche benötigt wird. Wenn folglich
ein Benutzer die Textur wieder abfragt, oder wenn sich der
Graphikkontext ändert, kann die Textur dem Benutzer wieder
geliefert werden.
Wie oben erläutert wurde, speichern gegenwärtige Texturab
bildungsimplementierungen eine Kopie der Benutzertextur
softwaremäßig, um einen Mechanismus für eine Texturabfrage
zu liefern, und um eine hardwaremäßige Zwischenspeicherung
von Texeln zu ermöglichen, wenn nicht genügend Speicher exi
stiert, daß alle Texel gleichzeitig in die Graphikhardware
passen. In vielen Fällen wird diese Softwarekopie der Textur
niemals benötigt. In diesen Fällen fragt der Benutzer die
Textur nicht wieder ab, wobei während der Lebensdauer der
Textur stets Raum existiert, um dieselbe in dem Texel-Cache
zu speichern. Die vorliegende Erfindung optimiert diesen
Fall, indem die Softwarekopie der Textur verzögert wird, bis
dieselbe absolut benötigt wird, oder bis die Textur durch
den Benutzer ausrangiert wird.
Zusätzlich verallgemeinert die vorliegende Erfindung das
Texturherunterladen, um stets diesen Mechanismus zu verwen
den, was die Softwarearchitektur stark vereinfacht und das
Verhalten in Fällen wie z. B. Rahmenpufferkopien in den Tex
tur-Cache erhöht - wobei wiederum keine Softwarekopie benö
tigt wird, es sei denn, eine solche wird beantragt.
Wie nun in dem Flußdiagramm von Fig. 5 gezeigt ist, spezifi
ziert gemäß dem vorliegenden erfinderischen Verfahren 50 das
Anwendungsprogramm unter Verwendung eines API-Aufrufs 52 ei
ne Textur, um ein mit einer Textur versehenes Dreieck zu
zeichnen. Die API-Bibliothek verifiziert, daß der API-Aufruf
gültig ist 54, woraufhin dieselbe unmittelbar die Textur in
die Graphikhardware herunterlädt 56. Gemäß der vorliegenden
Erfindung ist die Graphikhardwarekopie der Textur die einzi
ge Kopie, die von der Textur gemacht wird, es sei denn,
außergewöhnliche Dinge geschehen.
Gemäß der Erfindung wird eine Buchführung durchgeführt, um
sowohl die Bibliothek als auch das Texturhintergrundprogramm
zu informieren, daß sich die einzige Kopie der Textur in der
Hardware 51 befindet. Diese Softwarekopie wird dann als
"dirty" betrachtet, da sich die Textur nur in der Hardware
befindet.
Das Anwendungsprogramm zeichnet dann ein Dreieck unter Ver
wendung der Textur, indem die Graphikhardware dasselbe ein
fach zeichnet 60, da die Graphikhardware bereits eine gegen
wärtige Kopie der Textur besitzt.
In dem Fall, in dem eine Textur aus der Graphikhardware wie
dergewonnen werden muß, wurde gemäß dem alten Algorithmus
zum Wiedergewinnen der Textur aus der Graphikhardware (ent
weder da der Benutzer ihren Wert anfordert, oder da die Gra
phikhardware eine andere Textur benötigt, die nicht paßt),
die Textur entweder zu dem Benutzer zurückkopiert (Abfrage)
oder dieselbe wurde in der Graphikhardware einfach über
schrieben (neue Textur benötigt).
Wie nun in Fig. 6 gezeigt ist, überprüft das Anwendungspro
gramm gemäß der vorliegenden Erfindung andererseits zuerst
den Buchführungseintrag, um zu sehen, ob die Textur "dirty"
ist 74, d. h., ob dieselbe bereits in der Graphikhardware
ist, wenn das Anwendungsprogramm eine Textur benötigt. Wenn
dies der Fall ist, lädt das Texturhintergrundprogramm die
Textur von der Hardware herauf 76. Wenn die API-Bibliothek
die Textur benötigt, gibt das Texturhintergrundprogramm die
selbe danach zu der API-Bibliothek 78.
Für Fachleute auf dem Gebiet der Computergraphiken ist es
offensichtlich, daß die Verwendung des Verfahrens gemäß der
vorliegenden Erfindung das Verhalten für Benutzer von Tex
turabbildungen stark verbessert, speziell für Benutzer, die
Anwendungen mit sich dynamisch ändernden Texturtabellen be
sitzen. Unter Verwendung dieser Technik sind die Zeit und
der Speicher, die benötigt werden, um eine Softwarekopie der
Texturtabelle zu erstellen, beseitigt. Schlimmstenfalls sind
dieselben beseitigt, bis der Benutzer den Texel-Cache-Raum
überschreitet, ohne die Textur auszurangieren, oder bis die
Textur aufgrund einer Benutzerabfrage oder einer anderen
Software-Anforderung zurückgelesen wird. Im besten Fall sind
die Zeit und der Speicher, die benötigt werden, vollständig
beseitigt.
Claims (5)
1. Verfahren zum schnellen Herunterladen von Texturen in
einem Computergraphik-Hardwaresystem, das ein Textur
unterbrechungs-Verwaltungshintergrundprogramm
("TIM"-Daemon) verwendet, mit folgenden Schritten:
- (a) Veranlassen der Graphikanwendungs-Programmier schnittstelle ("API"), eine Textur als Reaktion auf einen gültigen Anwendungs-Programmierschnitt stellenaufruf durch ein Anwendungsprogramm in die Graphikhardware zu laden (56); und
- (b) Durchführen eines Buchführungs-Eintrags (58), um die Existenz und die Gültigkeit der Textur in der Graphiksoftware aufzuzeichnen, so daß die Graphik bibliothekssoftware und das Anwendungs-Program mierschnittstellenhintergrundprogramm den Buchhal tungseintrag überprüfen können (74), um zu bestim men, ob die Textur aus der Graphikhardware wieder erlangt werden muß oder nicht, sollte die Textur benötigt werden.
2. Verfahren zum schnellen Herunterladen gemäß Anspruch 1,
bei dem der Schritt des Veranlassens der Graphik-Anwen
dungsprogrammierschnittstelle, eine Textur als Reaktion
auf einen gültigen Anwendungsprogrammierschnittstel
len-Aufruf durch ein Anwendungsprogramm in die Graphik
hardware zu laden, das Laden von Daten, die die Textur
darstellen, in die Graphikhardware aufweist.
3. Verfahren zum schnellen Herunterladen gemäß Anspruch 2,
bei dem der Schritt des Durchführens eines Buchfüh
rungseintrags das Setzen einer Flag in einer gemeinsam
verwendeten Speicherregion aufweist, wobei die gemein
sam verwendete Speicherregion sowohl durch das Textur
unterbrechungsverwaltungs-Hintergrundprogramm als auch
die Graphik-Anwendungsprogrammierschnittstelle zugreif
bar ist.
4. Verfahren zum schnellen Herunterladen gemäß Anspruch 3,
bei dem der Schritt des Setzens einer Flag das Setzen
einer Variable auf einen Wert aufweist, der anzeigt, ob
die Texturdaten, die in der Graphikhardware gehalten
sind, sich geändert haben, seit die Texturdatenkopie,
die in der Graphik-Anwendungsprogrammierschnittstelle
gehalten ist, zuletzt modifiziert wurde, oder nicht.
5. Verfahren zum schnellen Herunterladen gemäß Anspruch 4,
das ferner den Schritt des Wiedererlangens der Textur
daten aus der Graphikhardware aufweist, wenn die Flag
einen Wert aufweist, der anzeigt, daß die Texturdaten
kopie geändert wurde, seit die Texturdatenkopie, die in
der Graphik-Anwendungsprogrammierschnittstelle gehalten
ist, zuletzt modifiziert wurde.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US08/690,426 | 1996-07-26 | ||
US08/690,426 US5936632A (en) | 1996-07-26 | 1996-07-26 | Method for fast downloading of textures to accelerated graphics hardware and the elimination of extra software copies of texels |
Publications (2)
Publication Number | Publication Date |
---|---|
DE19709227A1 true DE19709227A1 (de) | 1998-01-29 |
DE19709227B4 DE19709227B4 (de) | 2006-05-24 |
Family
ID=24772404
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE19709227A Expired - Fee Related DE19709227B4 (de) | 1996-07-26 | 1997-03-06 | Verfahren zum schnellen Herunterladen von Texturen auf eine Hardware für beschleunigte Graphiken und zur Beseitigung von zusätzlichen Softwarekopien von Texeln |
Country Status (3)
Country | Link |
---|---|
US (1) | US5936632A (de) |
JP (1) | JPH10116346A (de) |
DE (1) | DE19709227B4 (de) |
Families Citing this family (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3104643B2 (ja) * | 1997-05-07 | 2000-10-30 | 株式会社セガ・エンタープライゼス | 画像処理装置及び画像処理方法 |
US6046747A (en) * | 1997-08-04 | 2000-04-04 | Hewlett-Packard Company | Graphics application programming interface avoiding repetitive transfer of texture mapping data |
JP3630934B2 (ja) * | 1997-08-29 | 2005-03-23 | 三洋電機株式会社 | テクスチャ記録方法 |
KR100300972B1 (ko) * | 1997-09-19 | 2001-09-03 | 윤종용 | 텍스춰매핑수행장치및텍스춰캐시의데이터억세스방법 |
US6762763B1 (en) * | 1999-07-01 | 2004-07-13 | Microsoft Corporation | Computer system having a distributed texture memory architecture |
AU2001251353A1 (en) * | 2000-04-08 | 2001-10-23 | Sun Microsystems, Inc. | Streaming a single media track to multiple clients |
US6529970B1 (en) * | 2000-04-13 | 2003-03-04 | Fujitsu Microelectronics America, Inc. | Method and microprocessor with fast program downloading features |
US6604175B2 (en) | 2001-03-01 | 2003-08-05 | Sony Corporation | Data cache and method of storing data by assigning each independently cached area in the cache to store data associated with one item type |
US7161599B2 (en) | 2001-10-18 | 2007-01-09 | Microsoft Corporation | Multiple-level graphics processing system and method |
US7443401B2 (en) * | 2001-10-18 | 2008-10-28 | Microsoft Corporation | Multiple-level graphics processing with animation interval generation |
US7619633B2 (en) * | 2002-06-27 | 2009-11-17 | Microsoft Corporation | Intelligent caching data structure for immediate mode graphics |
US7064766B2 (en) * | 2001-10-18 | 2006-06-20 | Microsoft Corporation | Intelligent caching data structure for immediate mode graphics |
US7219352B2 (en) * | 2002-04-15 | 2007-05-15 | Microsoft Corporation | Methods and apparatuses for facilitating processing of interlaced video images for progressive video displays |
US7451457B2 (en) | 2002-04-15 | 2008-11-11 | Microsoft Corporation | Facilitating interaction between video renderers and graphics device drivers |
JP4718763B2 (ja) * | 2002-04-15 | 2011-07-06 | マイクロソフト コーポレーション | ビデオ・レンダラーとグラフィックス・デバイス・ドライバの間の相互作用を促進すること |
US7486294B2 (en) | 2003-03-27 | 2009-02-03 | Microsoft Corporation | Vector graphics element-based model, application programming interface, and markup language |
US7417645B2 (en) | 2003-03-27 | 2008-08-26 | Microsoft Corporation | Markup language and object model for vector graphics |
US7088374B2 (en) * | 2003-03-27 | 2006-08-08 | Microsoft Corporation | System and method for managing visual structure, timing, and animation in a graphics processing system |
US7466315B2 (en) | 2003-03-27 | 2008-12-16 | Microsoft Corporation | Visual and scene graph interfaces |
US7139002B2 (en) * | 2003-08-01 | 2006-11-21 | Microsoft Corporation | Bandwidth-efficient processing of video images |
US7643675B2 (en) | 2003-08-01 | 2010-01-05 | Microsoft Corporation | Strategies for processing image information using a color information data structure |
US7158668B2 (en) * | 2003-08-01 | 2007-01-02 | Microsoft Corporation | Image processing using linear light values and other image processing improvements |
US7511718B2 (en) | 2003-10-23 | 2009-03-31 | Microsoft Corporation | Media integration layer |
US9563971B2 (en) | 2011-09-09 | 2017-02-07 | Microsoft Technology Licensing, Llc | Composition system thread |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4445174A (en) * | 1981-03-31 | 1984-04-24 | International Business Machines Corporation | Multiprocessing system including a shared cache |
JPH05257899A (ja) * | 1992-02-19 | 1993-10-08 | Nec Corp | キャッシュメモリユニット |
US5404428A (en) * | 1993-12-07 | 1995-04-04 | Sun Microsystems, Inc. | Method and system for updating derived items in a view model which includes multiple coordinate systems |
US5745118A (en) * | 1995-06-06 | 1998-04-28 | Hewlett-Packard Company | 3D bypass for download of textures |
US5790130A (en) * | 1995-06-08 | 1998-08-04 | Hewlett-Packard Company | Texel cache interrupt daemon for virtual memory management of texture maps |
-
1996
- 1996-07-26 US US08/690,426 patent/US5936632A/en not_active Expired - Fee Related
-
1997
- 1997-03-06 DE DE19709227A patent/DE19709227B4/de not_active Expired - Fee Related
- 1997-06-30 JP JP9173485A patent/JPH10116346A/ja not_active Withdrawn
Also Published As
Publication number | Publication date |
---|---|
JPH10116346A (ja) | 1998-05-06 |
US5936632A (en) | 1999-08-10 |
DE19709227B4 (de) | 2006-05-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE19709227B4 (de) | Verfahren zum schnellen Herunterladen von Texturen auf eine Hardware für beschleunigte Graphiken und zur Beseitigung von zusätzlichen Softwarekopien von Texeln | |
DE102008026431B4 (de) | Extrapolation von nicht residenten Mipmap-Daten unter Verwendung residenter Mipmap-Daten | |
DE102014004841B4 (de) | Grafik auf Kachelbasis | |
DE69635009T2 (de) | Programmunterbrechung durch einen Pufferspeicher um Texturabbildungsdaten in einem virtuellen Speicher zu verwalten | |
DE69635403T2 (de) | Grafikbibliothek auf geteilten Ebenen | |
DE102013017639B4 (de) | Zwischenspeicherung von adaptiv dimensionierten Cache-Kacheln in einem vereinheitlichten L2-Cache-Speicher mit Oberflächenkomprimierung | |
DE19620847B4 (de) | Verfahren und Vorrichtung zur Texturabbildung | |
DE60127253T2 (de) | Bildkachelung und -kompression für die 3D-Bilddarstellung | |
DE60126967T2 (de) | Verfahren und Vorrichtung für Anti-Aliasing durch Überabtastung | |
DE3619420C2 (de) | ||
DE69632578T2 (de) | Computer-grafiksystem zum schaffen und verbessern von texturabbildungssystemen | |
DE69725057T2 (de) | Gleitkommaprozessor für einen dreidimensionalen graphischen Beschleuniger | |
DE102013017640B4 (de) | Verteilte gekachelte Zwischenspeicherung | |
DE60019516T2 (de) | Programmierbarer Aufbau zur Visualisierung von Abtastdaten und geometrischen Daten | |
DE69635066T2 (de) | Unterbrechungsschema zum Aktualisieren eines Lokalspeichers | |
DE69630165T2 (de) | Herunterladen von Texturdaten unter Umgehung der 3D-Schaltungen | |
DE102016211642A1 (de) | Patch-speichersystem | |
EP1716543A1 (de) | Vorrichtung zur photorealistischen darstellung von dynamischen komplexen dreidimensionalen szenen mittels des ray-tracing verfahrens | |
DE69917799T2 (de) | Texturierungssysteme zur verwendung in drei-dimensionalen abbildungssystemen | |
DE102009039231A1 (de) | Einzeldurchgang-Kachelung | |
DE112006003473T5 (de) | Parallel-Array-Architektur für einen Grafikprozessor | |
DE112018004343T5 (de) | Mehrraum-rendering mit konfigurierbaren transformationsparametern | |
DE102018125295A1 (de) | Vorrichtung und Verfahren zum Ausführen eines kachelbasierten Renderns unter Verwendung von vorabgerufenen Grafikdaten | |
DE102019101871A1 (de) | Verfahren und Vorrichtung zum Gewinnen von Abtastpositionen von Textuieroperationen | |
DE102020118860A1 (de) | Techniken zum vorladen von texturen beim rendering von graphik |
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), |
|
8127 | New person/name/address of the applicant |
Owner name: HEWLETT-PACKARD DEVELOPMENT CO., L.P., HOUSTON, TE |
|
8364 | No opposition during term of opposition | ||
8339 | Ceased/non-payment of the annual fee |