DE60009486T2 - Verfahren und anordnung zur auswahl eines mip-map-niveaus - Google Patents

Verfahren und anordnung zur auswahl eines mip-map-niveaus Download PDF

Info

Publication number
DE60009486T2
DE60009486T2 DE60009486T DE60009486T DE60009486T2 DE 60009486 T2 DE60009486 T2 DE 60009486T2 DE 60009486 T DE60009486 T DE 60009486T DE 60009486 T DE60009486 T DE 60009486T DE 60009486 T2 DE60009486 T2 DE 60009486T2
Authority
DE
Germany
Prior art keywords
value
mip
card
polygon
level
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 - Lifetime
Application number
DE60009486T
Other languages
English (en)
Other versions
DE60009486D1 (de
Inventor
Shannon Posniewski
Vadim Kochubievski
Glenn Nissen
Aleksandr Movshovich
C. Michael LEWIS
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.)
Broadcom Corp
Original Assignee
Broadcom Corp
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 Broadcom Corp filed Critical Broadcom Corp
Publication of DE60009486D1 publication Critical patent/DE60009486D1/de
Application granted granted Critical
Publication of DE60009486T2 publication Critical patent/DE60009486T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/00Three-dimensional [3D] image rendering
    • G06T15/04Texture mapping

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Graphics (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Image Generation (AREA)
  • Instructional Devices (AREA)
  • Processing Or Creating Images (AREA)

Description

  • GEBIET DER ERFINDUNG
  • Die vorliegende Erfindung betrifft die Grafikverarbeitung in einem Computersystem, insbesondere ein Verfahren und ein System zum Auswählen einer MIP-Karten-Stufe bzw. einer MIP-Zuordnungs-Stufe beim Durchführen der Texturverarbeitung.
  • HINTERGRUND DER ERFINDUNG
  • Ein herkömmliches Computergrafiksystem kann graphische Abbildungen von Objekten auf einer Anzeige darstellen. Die Anzeige beinhaltet eine Mehrzahl von Anzeigeelementen, die als Pixel bekannt sind und üblicherweise in einem Gitter angeordnet sind. Um die Objekte anzuzeigen, unterteilt das herkömmliche Computergrafiksystem üblicherweise jedes Objekt in eine Mehrzahl von Polygone. Ein herkömmliches System rendert dann die Polygone Pixel für Pixel in einer bestimmten Reihenfolge.
  • Jedes der Polygone bedeckt oder schneidet eine bestimmte Anzahl von Pixel in der Anzeige. Daten für einen Abschnitt eines Polygons, der ein bestimmtes Pixel schneidet, werden Fragment für dieses Polygon und dieses Pixel genannt. Daher beinhaltet jedes Polygon üblicherweise eine Anzahl von Fragmenten. Das Fragment beinhaltet Daten in Bezug auf das Polygon bei dem Pixel, das das Fragment schneidet. Beispielsweise enthält das Fragment üblicherweise Informationen in Bezug auf die Farbe, Mischungs-Modi und Textur. Um jedes Fragment eines Polygons zu rendern, muß ein Grafikverarbeitungssystem die Farbe und die Textur für das Fragment verarbeiten. Die Textur kann als eine andere Farbe gedacht werden, die üblicherweise von einer Texturkarte abgeleitet wird. So werden in den meisten herkömmlichen Systemen die Textur von der Texturkarte und die Farbe zusammengemischt, um einen endgültigen Farbwert für das Fragment zu erhalten.
  • Obwohl das Textur-Mapping im allgemeinen die Qualität des Abbildes verbessert, können Artefakte durch das Textur-Mapping eingeführt werden. Beispielsweise kann Aliasing für Objekte auftreten, die von der Betrachtungsebene entfernt sind. Aliasing tritt auf, da Polygone, die zum Rendern von entfernten Objekten verwendet werden, bei einer geringeren Frequenz als die Textur gesampelt werden. Beispielsweise kann eine Textur so betrachtet werden, als ob sie sich aus Texel zusammensetzt, welches Pixel entspricht. Ein Polygon, das nahe an der Betrachtungsebene ist, schneidet üblicherweise wenigstens so viele Pixel, wie es Texel in der Textur gibt. Ein Polygon jedoch, das von der Betrachtungsebene weit entfernt und daher klein ist, schneidet weniger Pixel als Texel in der auf das Polygon abzubildenden Textur enthalten sind. Wenn die Textur auf das Polygon abgebildet wird, können visuelle Artefakte auftreten, wie beispielsweise unerwünschte Muster oder ein Flackern.
  • Um die Bildqualität zu verbessern, werden in multum in parvo (MIP bzw. vieles im Kleinen)-Karten zur Texturverarbeitung verwendet. Unter Verwendung von MIP-Karten zur Texturabbildung können die Größe und die Entfernung von der Betrachtungsebene eines Objekts berücksichtigt werden. Jede MIP-Karte beinhaltet Karten für eine Textur auf verschiedenen Niveaus bzw. Stufen. Jede Stufe der MIP-Karte enthält Karten für die Textur bei einer unterschiedlichen Auflösung. Beispielsweise kann die erste MIP-Karten-Stufe die Textur bei einer ersten, vollen Auslösung enthalten. Die zweite MIP-Karten-Stufe enthält eine Version der Textur bei geringerer Auflösung. Üblicherweise ist die zweite MIP-Karten-Stufe bei der Hälfte der Auflösung der ersten MIP-Karten-Stufe. Die dritte MIP-Karten-Stufe enthält eine Version der Textur mit noch geringerer Auflösung. Die dritte MIP-Karten-Stufe ist üblicherweise ein Viertel der Auflösung der ersten MIP-Karten-Stufe. Höhere MIP-Karten-Stufen enthalten Versionen der Textur mit geringeren Auflösungen.
  • Um die MIP-Karte zu verwenden, wird wenigstens eine geeignete MIP-Karten-Stufe für ein gerade gemischtes Pixel ausgewählt. Die Textur für diese MIP-Karten-Stufe kann dann bei der Texturabbildung für das gerade gerenderte Pixel verwendet werden. In einigen herkömmlichen Verfahren wird die MIP-Karten-Stufe unter Verwendung eines Verhältnisses ausgewählt, das von einer herkömmlichen Anzeigefläche und einer herkömmlichen Texturfläche abhängt. Die Anzeigefläche ist die Fläche, die auf der Anzeige (Anzeigeraum) von einem Polygon oder einem Teil eines Polygons belegt wird. Die herkömmliche Texturfläche ist die entsprechende Fläche in der Textur (Texturraum). Die herkömmliche Anzeigefläche dividiert durch die herkömmliche Texturfläche liefert ein Verhältnis, das verwendet wird, um eine MIP-Karten-Stufe auszuwählen und um in einigen herkömmlichen Systemen zwischen MIP-Karten-Stufen zu interpolieren. Da das Verhältnis verwendet wird, weist die ausgewählte MIP-Karten-Stufe Texel auf, die bei einer Frequenz nahe der Frequenz auftreten, bei der Pixel in dem gerade gerenderten Bereich auftreten. Als ein Ergebnis kann das Aliasing verringert werden.
  • Auch wenn die Verwendung von MIP-Karten die Bildqualität verbessert, können Artefakte immer noch auftreten. Die gerenderten Polygone sind oft in Bezug auf die Betrachtungsebene gekippt. In anderen Worten ausgedrückt, kann die Perspektive die Erscheinung der Objekte und der Polygone verändern, die die Objekte ausmachen. Da sie gekippt sein können, kann die Projektion des Polygons auf die Betrachtungsebene (der Teil des Polygons, der für einen Betrachter sichtbar ist) in eine oder mehrere Richtungen komprimiert sein. Auch wenn einige herkömmliche Verfahren die Perspektive berücksichtigen, ist die Fähigkeit von einigen der herkömmlichen Verfahren, dies zu tun, relativ begrenzt. Als ein Ergebnis, kann die für einige Pixel in dem Polygon ausgewählte MIP-Karten-Stufe eine schlechte Übereinstimmung für die Pixel sein. So wird die Bildqualität verschlechtert. Ein anderes herkömmliches Verfahren zum Auswählen einer MIP-Karten-Stufe berücksichtigt die Perspektive, indem die maximale Kompression entlang der Kanten eines Polygons ermittelt wird. Ein solches herkömmliches Verfahren zum Auswählen einer MIP-Karten-Stufen jedoch ist relativ rechenintensiv und daher langsam.
  • Entsprechend wird ein System und ein Verfahren zum Auswählen einer MIP-Karten-Stufe benötigt, welche weniger sichtbare Artefakte besitzen. Es wäre ebenso wünschenswert, wenn das Verfahren und das System keine große Anzahl von Berechnungen pro Pixel benötigen. Die vorliegende Erfindung richtet sich auf eine solche Notwendigkeit.
  • SHIRMAN L et al: „A new look at mipmap level estimation techniques" COMPUTERS AND GRAPHICS, GB, PERGAMON PRESS LTD. OXFORD, vol. 23, Nr. 2, April 1999 (1999–04), Seiten 223–231, offenbart verschiedene Verfahren zum Schätzen der MIP-Karten-Stufe, die inverse homogene Koordinaten verwenden.
  • Die vorliegende Erfindung schafft ein Verfahren und ein System zum Verarbeiten von Texturen für eine grafische Abbildung auf einer Anzeige. Die grafische Abbildung beinhaltet eine Mehrzahl von Polygonen. Jedes der Mehrzahl von Polygonen beinhaltet wenigstens ein Fragment. Das Fragment beinhaltet wenigstens eine Textur und einen w-Wert für das Fragment. Der w-Wert ist ein Maß für die Tiefe (z-Wert) des Polygons. Jedes Polygon besitzt eine Mehrzahl von Scheitelpunkten, eine Anzeigefläche und eine Texturraumfläche. Jeder der Scheitelpunkte hat einen Scheitelpunkt-w-Wert. Die wenigstens eine Textur ist wenigstens einer MIP-Karte zugeordnet. Die MIP-Karte beinhaltet eine Mehrzahl von MIP-Karten-Stufen. Das Verfahren und das System beinhalten das Bestimmen eines Auswahlwerts für jedes Fragment eines Polygons der Mehrzahl von Polygonen. Der Auswahlwert wird bestimmt, indem ½ multipliziert mit dem Basis-Zwei-Logarithmus der Texturfläche dividiert durch die Anzeigefläche und dividiert durch das Produkt der Scheitelpunkt-w-Werte für jeden der Mehrzahl von Scheitelpunkten zu einer MIP-Karten-Bias-Stufe addiert wird, um einen Bias-Wert zu erhalten. Der Bias-Wert wird zu 3/2 multipliziert mit dem Basis-2-Logarithmus des w-Werts für jeden des wenigstens einen Fragments addiert. Das Verfahren und das System beinhalten ebenso das Auswählen von wenigstens einer der Mehrzahl von MIP-Karten-Stufen-Karten für jedes Fragment auf der Grundlage des Auswahlwerts für jedes Fragment.
  • Gemäß dem hierin offenbarten System und Verfahren schafft die vorliegende Erfindung einen genaueren Mechanismus zum Auswählen der MIP-Karten-Stufen. Dementsprechend wird die Bildqualität verbessert.
  • Die begleitenden Zeichnungen sind nur als Beispiel angegeben:
  • 1A ist ein Diagramm eines grafischen Abbilds, wie es von einem Betrachter gesehen wird.
  • 1B ist ein Diagramm der grafischen Anzeige, wie es von der Seite gesehen werden würde.
  • 2A ist ein Diagramm eines Dreiecks im Anzeigenraum, wie es in einem ersten herkömmlichen Verfahren zum Auswählen einer MIP-Karten-Stufe verwendet wird.
  • 2B ist ein Diagramm des in 2A dargestellten Dreiecks in dem Texturraum, wie es in dem ersten herkömmlichen Verfahren zum Auswählen einer MIP-Karten-Stufe verwendet wird.
  • 2C ist ein Flußdiagramm, das das erste herkömmliche Verfahren zum Auswählen einer MIP-Karten-Stufe zeigt.
  • 3A ist ein Diagramm eines Dreiecks in Anzeigenraum, wie es in einem zweiten herkömmlichen Verfahren zum Auswählen einer MIP-Karten-Stufe verwendet wird.
  • 3B ist ein Diagramm des in 3A dargestellten Dreiecks im Texturraum, wie es in dem zweiten herkömmlichen Verfahren zum Auswählen einer MIP-Karten-Stufe verwendet wird.
  • 3C ist ein Flußdiagramm, das das zweite herkömmliche Verfahren zum Auswählen einer MIP-Karten-Stufe zeigt.
  • 4A ist ein Diagramm eines Dreiecks im Anzeigenraum, wie es in einem dritten herkömmlichen Verfahren zum Auswählen einer MIP-Karten-Stufe verwendet wird.
  • 4B ist ein Flußdiagramm, das das dritte herkömmliche Verfahren zum Auswählen einer MIP-Karten-Stufe zeigt.
  • 5 ist ein Blockdiagramm eines Computersystems auf hoher Ebene, bei dem ein System zum Bereitstellen eines grafischen Abbildes gemäß der vorliegenden Erfindung implementiert werden kann.
  • 6 ist ein detaillierteres Blockdiagramm eines Ausführungsbeispiels eines Grafiksystems gemäß der vorliegenden Erfindung.
  • 7 ist ein Flußdiagramm eines Ausführungsbeispiels eines Verfahrens zum Auswählen einer MIP-Karten-Stufe gemäß der vorliegenden Erfindung auf hoher Ebene.
  • 8 ist ein detaillierteres Flußdiagramm eines Ausführungsbeispiels eines Verfahrens zum Bestimmen eines Auswahlwerts zum Auswählen der MIP-Karten-Stufe gemäß der vorliegenden Erfindung.
  • 9 ist ein detaillierteres Flußdiagramm eines Ausführungsbeispiels eines Verfahrens zum Rendern eines grafischen Abbilds gemäß der vorliegenden Erfindung.
  • DETAILLIERTE BESCHREIBUNG DER ERFINDUNG
  • Die vorliegende Erfindung betrifft eine Verbesserung bei der Texturverarbeitung für Grafiksysteme. Die folgende Beschreibung ist angegeben, um einen Fachmann auf dem Gebiet in die Lage zu versetzen, die Erfindung zu machen und zu verwenden, und ist in dem Zusammenhang einer Patentanmeldung und deren Erfordernissen angegeben. Zahlreiche Modifizierungen zu dem bevorzugten Ausführungsbeispiel werden schnell für einen Fachmann erkennbar sein und die grundsätzlichen Prinzipien hier können auf andere Ausführungsbeispiele angewendet werden. So ist nicht beabsichtigt, die vorliegende Erfindung auf das dargestellte Ausführungsbeispiel zu begrenzen, sondern es soll ihm der weiteste Umfang zugeteilt werden, der mit den hier beschriebenen Prinzipien und Merkmalen vereinbar ist.
  • 1A ist ein Diagramm einer Anzeige 1, die ein grafisches Abbild zeigt. Die Anzeige 1 beinhaltet eine Mehrzahl von Pixel 6, von denen nur eins mit einer Bezugsziffer versehen ist. Das grafische Abbild beihaltet Polygone 2, 3, 4 und 5, die Teil eines Objekts sein können. Ein Polygon kann im allgemeinen eine beliebige Anzahl von Pixel bedecken und wird von einer entsprechenden Anzahl von Fragmenten gebildet. Auch wenn jedes abgebildete Polygon 2, 3, 4 und 5 ein Dreieck ist, könnte ein Polygon eine andere Form besitzen. Üblicherweise werden jedoch Dreiecke derzeit zum Rendern von grafischen Abbildern verwendet. Jedes der Polygone 2, 3, 4 und 5 bedeckt verschiedene Pixel und beinhaltet eine Mehrzahl von Fragmenten. Jedes Fragment beihaltet Daten für ein Pixel, das von dem entsprechenden Polygon geschnitten wird. So kann ein Fragment Daten in Bezug auf die Farbe, die Textur, α-Werte und Tiefen-Werte für ein bestimmtes Polygon 2, 3, 4 oder 5 und ein bestimmtes Pixel beinhalten.
  • Das in 1 gezeigte grafische Abbild soll ein dreidimensionales Bild sein. Daher zeigt 1B die Polygone 2, 3, 4 und 5, wie sie von der Seite gesehen werden würden. Die Betrachtungsebene 8 ist ebenso in 1B dargestellt. In 1A sind die Polygone 2, 3, 4 und 5 so dargestellt, wie sie von einem Betrachter gesehen werden. Daher sind die Teile der Polygone 2, 3, 4 und 5, die in 1A dargestellt sind, die Projektionen der Polygone 2, 3, 4 und 5 auf die Betrachtungsebene 8.
  • Es wird auf die 1A und 1B Bezug genommen; um ein realistischeres, grafisches Abbild zu erzielen, wird beim Rendern der Polygone 2, 3, 4 und 5 eine Textur-Zuordnung verwendet. Üblicherweise werden eine oder mehrere Texturen auf die Polygone 2, 3, 4 und 5 angewendet. Wenn die Texturen direkt auf die entsprechenden Polygone 2, 3, 4 und 5 angewendet werden, können sichtbare Artefakte, wie beispielsweise Aliasing, auftreten. Diese Artefakte treten auf, da die Sample-Rate der Polygone 2, 3, 4 oder 5, die von der Anzahl der von dem Polygon 2, 3, 4 oder 5 geschnittenen Pixel abhängt, verschieden von der Sample-Rate einer Version der Textur mit voller Auflösung ist, die von der Anzahl von Texel abhängt, die von der Textur belegt werden.
  • Um das Aliasing der Polygone 2, 3, 4 und 5 zu berücksichtigen, werden multum in parvo (MIP bzw. vieles im Kleinen)-Karten verwendet. Jede MIP-Karte beinhaltet mehrfache MIP-Karten-Stufen. Jede MIP-Karten-Stufe enthält eine Version der Textur bei einer bestimmten Auflösung. Üblicherweise enthält die niedrigste (erste) MIP-Karten-Stufe die Version der Textur mit der höchsten Auflösung. Höhere MIP-Karten-Stufen enthalten Versionen der Textur, bei denen die Auflösung um einen Faktor 2 von der nächstniedrigeren Stufe verringert ist. Beispielsweise besitzt die zweite MIP-Karten-Stufe eine Version der Textur mit halber Auflösung, wohingegen die dritte MIP-Karten-Stufe üblicherweise eine Version der Textur mit einem Viertel der Auflösung aufweist.
  • Üblicherweise wird die Textur-Zuordnung verwendet, um die Textur bzw. die Texturen zum Rendern eines Pixels in einem Polygon 2, 3, 4 oder 5 zur Verfügung zu stellen. Beim Rendern eines bestimmten Pixels in einem bestimmten Polygon 2, 3, 4 oder 5 werden die Textur bzw. die Texturen, die von dem dem bestimmten Pixel entsprechenden Fragment angegeben werden, und das bestimmte Polygon 2, 3, 4 oder 5 mit der Farbe für das Fragment gemischt. Um die Textur bzw. die Texturen für ein bestimmtes Pixel in einem bestimmten Polygon bereitzustellen, wird wenigstens eine MIP-Karten-Stufe für die Texturen) ausgewählt. Um die MIP-Karte für die Texturzuordnung zu verwenden, wird daher wenigstens eine MIP-Karten-Stufe für jede Textur ausgewählt.
  • Die 2A bis 2C können verwendet werden, um ein erstes herkömmliches Verfahren zum Auswählen einer MIP-Karten-Stufe zur Verwendung bei der Texturzuordnung darzustellen. Zur Vereinfachung der Erklärung wird die Auswahl einer MIP-Karten-Stufe für ein Fragment erörtert, das einem von dem Polygon 3 geschnittenen Pixel entspricht. Die 2A und 2B zeigen das Polygon 3 im Anzeigenraum bzw. im Texturraum. Der Anzeigenraum, der durch eine x- und eine y-Achse gekennzeichnet ist, ist eine geometrische Beschreibung von dem, was von dem Benutzer gesehen wird. Daher besitzt jeder Scheitelpunkt 12, 14 und 16 des Polygons 3 entsprechende x- und y-Koordinaten (x12, y12), (x14, y14) bzw. (x16, y16). Daher zeigt die 2A die Projektion des Polygons 3 auf die Betrachtungsebene 8. Unter Bezugnahme auf 2B ist der Texturraum der Raum in einer Version der abzubildenden Textur in einer vollen Auflösung. Der Texturraum entspricht ebenso dem Anzeigenraum. Daher entspricht das Polygon 3' dem Polygon 3. Die Scheitelpunkte 12', 14' und 16' entsprechen den Scheitelpunkten 12, 14 bzw. 16. Der Texturraum ist durch s- und t-Achsen gekennzeichnet, die den x- und y-Achsen des Anzeigenraums entsprechen. Daher besitzen die Scheitelpunkte 12', 14' und 16' die Koordinaten (s12', t12'), (s14', t14') und (s16', t16'). Im allgemeinen dürfen s und t zwischen 0 und 1 variieren. Um die Anzahl der von einer Textur belegten Texel zu bestimmen, werden daher die Koordinaten auf der s- und t-Achse mit der Breite bzw. Höhe der Textur multipliziert.
  • Das Polygon 3' kann teilweise von dem Polygon 3 abweichen, da die Anzahl der Pixel, die das Polygon 3 schneidet, verschieden sein kann von der Anzahl der Texel, die das Polygon 3' schneidet. Wie oben erörtert kann dies zu unerwünschten sichtbaren Artefakten führen. Um dies zu berücksichtigen, wird die geeignete MIP-Karten-Stufe oder Auflösung für die Textur ausgewählt. Ein Maß für die geeignete auszuwählende MIP-Karten-Stufe ist das Verhältnis der Anzahl von Pixel, die von dem Polygon 3 in dem Anzeigenraum geschnitten werden, zu der Anzahl von Texel, die von dem entsprechenden Polygon 3' im Texturraum geschnitten werden.
  • Die 2C zeigt ein herkömmliches Verfahren 20 zum Auswählen der MIP-Karten-Stufe auf der Grundlage des Verhältnisses der Anzahl von Texel, die von dem Polygon 3' geschnitten werden, zu der Anzahl von Pixel, die von dem Polygon 3 geschnitten werden. Die gesamte Fläche im Anzeigenraum des Polygons 3 wird mittels des Schritts 81 berechnet. Daher beinhaltet der Schritt 21 das Berechnen der Größe: Axy = (x14 – x12)(y16 – y12) – (x16 – x12)(y14 – y12)
  • Die gesamte Fläche des Polygons 3' im Texturraum wird dann mittels des Schritts 22 berechnet. Daher beinhaltet der Schritt 22 das Berechnen der Größe: Ast = [(s14' – s12')(t16' – t12') – (s16' – s12')(t14' – t12')](Texturhöhe)(Texturbreite)
  • Das Verhältnis der Gesamtfläche des Polygons 3' im Texturraum zu der Gesamtfläche des Polygons 3 im Anzeigenraum, RherkömmlichesVerfahren1 = ASt/Axy, wird dann mittels des Schritts 23 bestimmt. Der Basis-2-Logarithmus des Verhältnisses, log2(R1), wird in Schritt 24 berechnet. Die MIP-Karten-Stufe, die am nächsten an dem Basis-2-Logarithmus des Verhältnis, log2 (R1), ist, wird dann mittels des Schritts 25 ausgewählt. Üblicherweise beinhaltet der Schritt 25 das Zur-Verfügung-Stellen eines Zeigers auf die gewünschte MIP-Karten-Stufe. Wenn beispielsweise der Basis-2-Logarithmus des Verhältnisses 0 ist, wird in Schritt 25 die erste (höchste Auflösung) MIP-Karten-Stufe ausgewählt. Wenn der Basis-2-Logarithmus des Verhältnisses 1,3 ist, dann wird in Schritt 25 die zweite (nächst höchste Auflösung) MIP-Karten-Stufe ausgewählt. Das Verfahren 20 ist relativ einfach und fordert relativ wenig Berechnungen.
  • Auch wenn das erste herkömmliche Verfahren 20 funktioniert, erkennt ein Fachmann auf dem Gebiet, dass die ausgewählte MIP-Karten-Stufe nur für alle Pixel in einem Polygon richtig ist, wenn das Polygon in z-Richtung nicht gekippt ist. Da das Polygon 3 in Bezug auf die Betrachtungsebene gekippt ist, wie es in 1B gezeigt ist, wählt das in 2C gezeigte Verfahren 20 nicht die beste MIP-Karten-Stufe für alle Pixel in dem Polygon 3 aus. Statt desssen wählt es die durchschnittliche MIP-Stufe für alle Pixel aus. Daher kann für einen Teil des Polygons 3 Aliasing auftreten. Zusätzlich zu den Fehlern bei der MIP-Karten-Stufe, die für bestimmte Pixel eines bestimmten Polygons ausgewählt worden ist, können große Diskontinuitäten bei benachbarten Polygonen auftreten, wie beispielsweise den Polygonen 2 und 4, die ähnlich erscheinen können. So wird die Bildqualität verschlechtert.
  • Diesem Nachteil wendet man sich herkömmlicherweise durch Interpolieren zwischen MIP-Karten-Stufen zu. Beispielsweise kann zusätzlich zu dem Auswählen der MIP-Karten-Stufe in Schritt 25 der gebrochene Teil des Basis-2-Logarithmus des Verhältnisses verwendet werden, um zwischen MIP-Karten-Stufen zu interpolieren, wobei üblicherweise Software verwendet wird. Auch wenn dies die Übereinstimmung zwischen der MIP-Karten-Stufe und dem Polygon 3 verbessert, wird immer noch eine einzige MIP-Karten-Stufe für alle Pixel in dem Polygon 3 ausgewählt. Da das Polygon 3 gekippt ist, ist die ausgewälte MIP-Karten-Stufe für viele Pixel in dem Polygon 3 immer noch nicht korrekt. Zusätzlich können Diskontinuitäten zwischen benachbarten Polygonen immer noch auftreten. So wird die Bildqualität immer noch verschlechtert.
  • Die 3A bis 3C können verwendet werden, um ein zweites herkömmliches Verfahren zum Auswählen einer MIP-Karten-Stufe zur Verwendung bei der Texturzuordnung zu zeigen. Zur Vereinfachung der Erklärung wird die Auswahl der MIP-Karten-Stufe für ein Fragment erörtert, das einem von dem Polygon 3 geschnittenen Pixel entspricht. Die 3A zeigt das Polygon 3 im Anzeigenraum. Die 3B zeigt das Polygon 3'' im Texturraum. Die 3C zeigt das zweite herkömmliche Verfahren 30 zum Auswählen der MIP-Karten-Stufe. Unter Bezugnahmen auf die 3A, 3B und 3C wird mittels des Schritts 31 die Fläche im Anzeigenraum eines kleinen Teils des Polygons 3 um jeden der Scheitelpunkte 12, 14 und 16 berechnet. So beinhaltet der Schritt 31 das Berechnen der Größen: Axy,12 = (x13 – x11)(y13 – y12) – (x13 – x11)(y12 – y11) Axy,14 = (x15 – x14)(y17 – y14) – (x17 – x14)(y15 – y14) Axy16 = (x18 – x16)(y19 – y16) – (x19 – x16)(y18 – y16)
  • Die perspektivisch korrekte Fläche eines kleinen Teils des Polygons 3' um jeden der Scheitelpunkte 12', 14' und 16' im Texturraum wird mittels des Schritts 32 berechnet. So beinhaltet der Schritt 32 das Berechnen der Größe: Ast,12' = [(s13' – s11')(t13' – t12') – (s13' – s11')(t12' – t11')](Texturhöhe)(Texturbreite) Ast,14' = [(s15' – s14')(t17' – t14') – (s17' – s14')(t15' – t14')](Texturhöhe)(Texturbreite) Ast,16' = [(s18' – s16')(t19' – t16') – (s19' – s16')(t18' – t16')](Texturhöhe)(Texturbreite)
  • Die in Schritt 32 berechneten Flächen sind für die Perspektive korrekt. Wenn beispielsweise das Polygon 3 in der z-Richtung gekippt ist, wie es in den 1A und 1B gezeigt ist, dann kann die in Schritt 32 der 3C berechnete Fläche größer sein, um die Verkippung zu berücksichtigen. Es wird auf die 3A, 3B und 3C Bezug genommen; wenn Entfernungen für die Perspektive korrigiert werden, streckt die Verkippung in dem Polygon 3 die Entfernung in der t-Richtung für das Polygon 3' und verändert den Wert für die Textunaumfläche. Die Verhältnisse der Fläche nahe jedes Scheitelpunkts des Polygons 3' im Texturraum zu der Fläche von jedem Scheitelpunkt des Polygons 3 im Anzeigenraum, R12 = Ast12,/Axy12, R14 = Ast14'/Axy14, und R16 = Ast,16'/Axy16 werden dann mittels des Schritts 33 bestimmt. Für jedes Pixel in dem Polygon 33 wird ein Verhältnis zum Auswählen der geeigneten MIP-Karten-Stufen berechnet, indem zwischen den Verhältnissen, die für jeden Scheitelpunkt berechnet worden sind, mittels des Schritts 34 interpoliert wird. In dem Bereich nahe dem Scheitelpunkt 12 beispielsweise kann das Verhältnis R12 als das interpolierte Verhältnis verwendet werden. Für ein Pixel zwischen dem Scheitelpunkt 12 und dem Scheitelpunkt 14 kann eine Interpolierung zwischen den Verhältnissen des Scheitelpunkts 12 und des Scheitelpunkts 14 durchgeführt werden, um das Verhältnis für dieses Pixel zu berechnen. Der Basis-2-Logarithmus, log2 (Rinterpoliert) für jedes Pixel wird mittels des Schritts 35 berechnet. Für jedes Pixel wird die MIP-Karten-Stufe, die am nächsten zu dem Basis-2-Logarithmus des interpolierten Verhältnisses, log2 (Rinterpoliert), ist, dann mittels des Schritts 36 ausgewählt. In einem alternativen Verfahren könnte der Schritt 36 das Berücksichtigen von gebrochenen MIP-Karten-Stufen umfassen. Zusätzlich könnte in einem anderen Verfahren ähnlich zu dem Verfahren 30 die MIP-Karten-Stufe für jeden Scheitelpunkt ausgewählt werden und die MIP-Karten-Stufen für jedes Pixel interpoliert werden. Üblicherweise umfasst der Schritt 36 das Liefern eines Zeigers auf die gewünschte MIP-Karten-Stufe. Das Verfahren 30 schafft daher eine bessere MIP-Karten-Stufe für jedes Pixel als das Verfahren 20, da das Verfahren 30 die Perspektive berücksichtigt. Weiterhin liefert das Verfahren 30 eine interpolierte MIP-Karten-Stufe für jedes Pixel im Gegensatz zu einer einzigen MIP-Karten-Stufe für alle Pixel in dem Polygon.
  • Auch wenn das herkömmliche Verfahren 30 eine MIP-Karten-Stufe für jedes Pixel liefert, wird ein Fachmann auf diesem Gebiet schnell erkennen, dass das herkömmliche Verfahren 30 mehrere Nachteile hat. Das herkömmliche Verfahren 30 ist eine Approximierung bei der richtigen MIP-Karten-Stufe und kann zu nicht konsistenten Ergebnissen für benachbarte Polygone führen, wie beispielsweise für die Polygone 2 und 4. Die Textur wird dann Diskontinuitäten zwischen benachbarten Polygonen unterworfen. In Folge wird die Bildqualität verschlechtert. Weiterhin sind die Flächen relativ aufwendig zu berechnen, wobei sie Zeit bei den Software-Berechnungen und Raum für einen Chip für zusätzliche Hardware benötigen, wenn die Berechnungen in Hardware durchgeführt werden.
  • Die 4A bis 4B können verwendet werden, um ein drittes herkömmliches Verfahren zum Auswählen einer MIP-Karten-Stufe zur Verwendung bei der Texturzuordnung zu zeigen. Zur Vereinfachung der Erklärung wird die Auswahl einer MIP-Karten-Stufe für ein Fragment erörtert, das einem von dem Polygon 3 geschnittenen Pixel entspricht. Die 4A zeigt das Polygon 3 im Anzeigenraum. Die 4B zeigt das dritte herkömmliche Verfahren 50 zum Durchführen der MIP-Karten-Auswahl. In 4A ist das Polygon 3 als mit einem Viereck 40 umgeben dargestellt. Die obere Kante des Vierecks 40 zwischen den Ecken 42 und 44 stellt die obere Scan-Linie oder obere waagrechte Linie von Pixel dar, die das Polygon 3 schneiden. Die untere Kante des Vierecks zwischen den Ecken 46 und 48 stellen die untere Scan-Linie oder untere waagrechte Linie von Pixel dar, die das Polygon 3 schneiden. Die linke und rechte Kante des Vierecks 40 sind die äußerste linke und rechte senkrechte Linie von Pixel, die das Polygon 3 schneiden.
  • Die 4B zeigt das dritte herkömmliche Verfahren 50 zum Auswählen einer MIP-Karten-Stufe für jedes Pixel in dem gerenderten Polygon 3. Das Verfahren 50 verwendet die maximale Komprimierung, die entlang von Kanten des Polygons 3 erforderlich ist, und verwendet die Komprimierung, um die Perspektive zu korrigieren und eine MIP-Karten-Stufe auszuwählen. Daher wird mittels des Schritts 52 die maximale Kantenkomprimierung in der y-Richtung für den Bereich der x-Werte des Polygons berechnet. Die maximale Komprimierung in der y-Richtung ist durch die Quadratwurzel der Größe angegeben: y1 = (e – ax)2 – (f – bx)2 wobei e = [dx/(zdy)](1/z0) – [d(1/z)/dy](s/z0) a = [ds/zdx)][d(1/z)dy] – [d(1/z)/dx][ds/(zdy)] f = [dt/(zdy)](1/z0) – [d(1/z)//dy](t/Z0) b = [dt/(zdx)][d(1/z)/dy] – [(1/z)/dx][(dt/(zdy)]
  • Die x-, y-, s- und t-Werte können in die geeigneten Koordinaten für das Polygon 3 eingetragen werden. Die maximale Kantenkomprimierung in der y-Richtung wird dann für jede Scan-Linie mittels des Schritts 54 berechnet. Die maximale Komprimierung in der x-Richtung ist durch die Quadratwurzel der Größe angegeben: x1 = (c + ay)2 – (d + bx)2 wobei c = [ds/(zdx)](1/z0) – [d(1/z)/dx)(s/z0) a = [ds/zdx)][d(1/z)dy – [d(1/z)/dx][ds/(zdy)] d = (dt/(zdx)](1/z0) – [d(1/z)/dx](t/Z0) b = [dt/(zdx)][d(1/z)/dy] – [(1/z)/dx][dt/zdy)]
  • Die x-, y-, s- und t-Werte können in die geeigneten Koordinaten für das Polygon 3 eingetragen werden. Die MIP-Karten-Stufe wird dann auf der Grundlage der x1- und y1-Werte mittels des Schritts 56 ausgewählt.
  • Auch wenn das Verfahren 50 die MIP-Karten-Stufen besser auswählt und weniger sichtbare Artefakte aufweist, wird ein Fachmann auf dem Gebiet erkennen, dass die zum Auswählen der MIP-Karten-Stufen erforderlichen Berechnungen komplex sind. Auch wenn daher Software verwendet werden kann, um die Kantenkomprimierungswerte zu berechnen, die zum Auswählen der MIP-Karten-Stufe verwendet werden, würde der Auswahlvorgang relativ langsam sein. Weiterhin liefern die Komprimierungswerte immer noch nur eine Schätzung der geeigneten MIP-Karten-Stufe für jedes Pixel.
  • Die vorliegende Erfindung schafft ein Verfahren und ein System zur Texturverarbeitung für ein grafisches Abbild auf einer Anzeige. Das grafische Abbild beinhaltet eine Mehrzahl von Polygonen. Jedes der Mehrzahl von Polygonen beinhaltet wenigstens ein Fragment. Das Fragment beinhaltet wenigstens eine Textur und einen w-Wert für das Fragment. Jedes Polygon besitzt eine Mehrzahl von Scheitelpunkten, eine Anzeigefläche und eine Texturraumfläche. Jeder der Scheitelpunkte hat einen Scheitelpunkt-w-Wert. Die wenigstens eine Textur ist wenigstens einer MIP-Karte zugeordnet. Die MIP-Karte beinhaltet eine Mehrzahl von MIP-Karten-Stufen. Das Verfahren und das System beinhalten das Bestimmen eines Auswahlwerts für jedes Fragment eines Polygons der Mehrzahl von Polygonen. Der Auswahlwert beinhaltet ½ multipliziert mit dem Basis-2-Logarithmus der Texturfläche dividiert durch die Anzeigefläche und dividiert durch das Produkt der Scheitelpunkt-w-Werte für jeden der Mehrzahl von Scheitelpunkten. Der Auswahlwert beinhaltet ebenso 3/2 multipliziert mit dem Basis-2-Logarithmus des w-Werts für jedes der wenigstens einen Fragmente. Der Auswahlwert beinhaltet ebenso einen MIP-Karten-Bias. Das Verfahren und das System beinhalten ebenso das Auswählen wenigstens einer der Mehrzahl von MIP-Karten-Stufen-Karten für jedes Fragment auf der Grundlage des Auswahlwerts für jedes Fragment.
  • Die vorliegende Erfindung wird in den Begriffen eines bestimmten Systems zum Durchführen von Grafikverarbeitung beschrieben. Ein Fachmann auf dem Gebiet wird jedoch schnell erkennen, dass dieses Verfahren und System effektiv für andere Systeme mit anderen Komponenten funktioniert. Das Grafikverarbeitungssystem könnte ebenso zusätzliche Komponenten für andere Funktionen beinhalten. Beispielsweise könnte das Grafikverarbeitungssystem, auch wenn es nicht dargestellt ist, Anti-Aliasing oder andere Funktionen durchführen. Weiterhin wird die vorliegende Erfindung in einem System beschrieben, das Objekte Pixel für Pixel rendert, in einer Rasterreihenfolge. Ein Fachmann auf dem Gebiet wird jedoch schnell erkennen, dass das Verfahren und das System in einem System verwendet werden kann, das Objekte in einer anderen Reihenfolge rendert. Weiterhin wird die vorliegende Erfindungin in dem Zusammenhang der Durchführung bestimmter mathematischer Operationen beschrieben. Ein Fachmann auf dem Gebiet wird jedoch schnell erkennen, dass das Verfahren und das System mit der Verwendung von äquivalenten mathematischen Operationen vereinbar ist.
  • Um das Verfahren und das System gemäß der vorliegenden Erfindung spezieller darzustellen, wird nun auf 5 Bezug genommen, welche ein Ausführungsbeispiel eines Computersystems zeigt, in dem ein System zum Liefern eines grafischen Abbilds gemäß der vorliegenden Erfindung implementiert werden kann. Das Computergrafiksystem 100 kann verwendet werden, um grafische Abbilder für eine Anwendung zu erzeugen, wie beispielsweise eine Anwendung, die in dem Speicher 110 abgelegt ist. Insbesondere wird das Computergrafiksystem 100 zur Anzeige von Objekten verwendet, insbesondere dreidimensionalen Objekten. Das Computergrafiksystem 100 beinhaltet eine zentrale Verarbeitungseinheit (CPU) 102, eine Anzeige 104, eine Benutzerschnittstelle 106, wie beispielsweise eine Tastatur oder Maus oder eine andere Kommunikationseinrichtung, einen Speicher 110 und eine Bilderzeugungseinheit 120, die mit einem Bus 108 gekoppelt sind. Die Anzeige 104 beinhaltet eine Mehrzahl von Pixel, wie beispielsweise die Pixel 6 in der Anzeige 1. Jedes der Mehrzahl von Pixel besitzt eine Fläche. Die Anzeige 104 kann einen Anzeigenspeicher (nicht explizit dargestellt) beinhalten, in den Pixel geschrieben werden, sowie einen Bildschirm (nicht explizit dargestellt), auf dem die Pixel einem Benutzer angezeigt werden. Es soll jedoch angemerkt werden, dass nichts entgegensteht, das Verfahren und das System in ein davon verschiedenes Computersystem mit anderen Komponenten zu implementieren. In einem bevorzugten Ausführungsbeispiel wird jedes Objekt, das angezeigt wird, vorzugsweise in Polygone aufgebrochen, die beim Rendern der Objekte verwendet werden. In einem bevorzugten Ausführungsbeispiel sind die gerenderten Polygone Dreiecke, wie beispielsweise die Dreiecke 2, 3, 4 und 5 von 1. Unter Bezugnahme zurück auf 5 werden in einem bevorzugten Ausführungsbeispiel die Polygone in einer Rasterreihenfolge gerendert, die Reihenfolge der Pixel in der Anzeige 104. Die Erfindung ist jedoch auch mit dem Rendern der Pixel in einer anderen Reihenfolge vereinbar.
  • Die 6 zeigt relevante Abschnitte der Bilderzeugungseinheit 120. Die Bilderzeugungseinheit 120 beinhaltet eine Verarbeitungseinheit 130, eine Interpolierungseinheit 140, eine Polygon-Bias-Wert-Berechnungs-Einheit 160, einen Bias-Wert-Speicher 160, eine Logarithmus-Einheit 170, eine Auswahl-Wert-Einheit 180, eine Textur-Einheit 190 und MIP-Karten 195. Die Bilderzeugungseinheit 120 beinhaltet ebenso zusätzliche Komponenten, die im allgemeinen durch den Verarbeitungsblock 196 dargestellt sind. Auch wenn es nicht explizit dargestellt ist, könnte die Bilderzeugungseinheit 120 wenigstens eine andere Funktionseinheit zusätzlich oder anstatt der dargestellten Komponenten besitzen. Weiterhin können andere Einheiten, die ähnliche oder zusätzliche Funktionen bereitstellen, zusätzlich oder anstelle der Verarbeitungseinheit 130 und der Interpolierungseinheit 140 verwendet werden.
  • Die Verarbeitungseinheit 130 identifiziert Daten, die Abschnitte von Polygonen („schneidende Polygone") beschreiben, die die Fläche schneiden, die sich entlang einer z-Achse von einem ausgewählten Pixel in einer x-y-Ebene erstrecken, die einer Betrachtungsebene der Anzeige 104 entspricht. In einem bevorzugten Ausführungsbeispiel werden die schneidenden Polygone parallel verarbeitet. Die Daten für den Abschnitt des schneidenden Polygons, das dem ausgewählten Pixel zugeordnet ist, werden Fragment genannt. Im Zusammenhang mit dieser Offenbarung wird ein Fragment für ein schneidendes Polygon so beschrieben, dass es das Pixel schneidet, das das Polygon schneidet. Ein Fragment kann die Farbe, Textur und den Tiefenwert für das entsprechende Polygon beinhalten. Daher beinhaltet in einem bevorzugten Ausführungsbeispiel jedes Fragment ebenso eine Angabe des Polygons, von dem das Fragment ein Teil ist. In einem bevorzugten Ausführungsbeispiel beinhaltet die Verarbeitungseinheit 130 mehrfache Prozessoren, sodass mehrfache Fragmente, die das gleiche Pixel schneiden, parallel verarbeitet werden können.
  • Die Interpolierungseinheit 140 kann einen oder mehrere Interpolierer beinhalten. In einem bevorzugten Ausführungsbeispiel wird ein einziger Interpolierer verwendet. Die Interpolierungseinheit 126 empfängt die Fragmente und interpoliert die Daten für die Fragmente. In einem Ausführungsbeispiel berechnet die Interpolierungseinheit ebenso den w-Wert für jedes Pixel. Der w-Wert ist proportional zu 1/(z + k), wobei k eine Konstante ist. So ist der w-Wert ein Tiefenwert. In einem bevorzugten Ausführungsbeispiel wird der w-Wert für das Fragment von der Software bereitgestellt, die die Daten für die Bilderzeugungseinheit 120 liefert. Wenn jedoch der w-Wert nicht von der Bilderzeugungseinheit 120 geliefert wird, berechnet vorzugsweise die Interpolierungseinheit 140 den w-Wert durch 1 über dem w-Wert (1/w), welches im allgemeinen an die Bilderzeugungseinheit 120 geliefert wird, oder von einer anderen Information.
  • Die Polygon-Bias-Wert-Berechnungseinheit 150 berechnet einen Bias-Wert, der nachstehend erörtert ist, für jedes Polygon. Der Bias-Wert wird in einer Bias-Wert-Speichereinheit 160 gespeichert, die vorzugsweise eine Tabelle in einem Speicher auf der Bilderzeugungseinheit 120 ist. Der Bias-Wert wird später beim Auswählen der geeigneten MIP-Karte verwendet. Die Logarithmuseinheit 170 berechnet vorzugsweise eine Konstante multipliziert mit dem Basis-2-Logarithmus des w-Werts für jedes Fragment. Daher führt die Logarithmuseinheit 170 vorzugsweise einen Look-Up durch, um den Basis-2-Logarithmus von dem w-Wert für das Fragment durchzuführen, und multipliziert dann diesen Wert mit einer Konstante. Das Ergebnis der Logarithmuseinheit 170 wird an die Auswahlwerteinheit 180 geliefert. Die Auswahlwerteinheit 180 beinhaltet einen MIP-Karten-Auswahl-Wert für jedes Fragment. Um dies zu tun, verwendet die Auwahlwerteinheit 180 ebenso den Bias-Wert für das Polygon, das dem Fragment entspricht. Der Bias-Wert wird in der Bias-Wert-Speichereinheit 160 gespeichert. Der Auswahlwert, der von der Auwahlwerteinheit 180 berechnet worden ist, sowie andere Informationen für dieses Fragment, werden dann an die Textureinheit 190 geliefert. Die Textureinheit 190 verwendet den Auswahlwert, um die geeignete zu verwendende MIP-Karten-Stufe von den MIP-Karten 195 zu bestimmen.
  • Die Komponenten, die beim Bestimmen der Werte pro Polygon verwendet werden, wie beispielsweise die Polygon-Bias-Wert-Berechnungseinheit 150, sind vorzugsweise von den Einheiten getrennt, die Berechnungen für jedes Pixel durchführen, wie beispielsweise die Logarithmuseinheit 170 und die Auswahlwerteinheit 180. Als ein Ergebnis können die Komponenten, die Werte pro Polygon bestimmen, zusätzliche Taktzyklen benötigen, um deren Berechnungen durchzuführen, ohne den Durchsatz nachteilig zu beeinflussen. In einem bevorzugten Ausführungsbeispiel kann die Polygon-Bias-Wert-Berechnungs-Einheit 150 bis zu 30 oder mehr Taktzyklen benötigen, ohne die Leistung nachteilig zu beeinflussen. Zusätzlich soll angemerkt werden, dass die Textureinheit 190, die Verarbeitungseinheit 130 und in einigen Ausführungsbeispielen die Interpolierungseinheit 140 sich nicht des bestimmten Mechanismus bewußt sind, der beim Berechnen des Auswahlwerts verwendet wird. So kann die Berechnung des Auswahlwerts von einer oder mehreren getrennten Einheiten behandelt werden und kann das Ergebnis in die Pipeline der Bilderzeugungseinheit 120 zurückgespeist werden.
  • Die 7 zeigt ein Blockdiagramm auf hoher Ebene eines Ausführungsbeispiels eines Verfahrens 200 zum Auswählen von MIP-Karten-Stufen gemäß der vorliegenden Erfindung. Der Auswahlwert wird mittels des Schritts 210 berechnet. Der Auswahlwert ist gegeben durch: Auswahlwert = (1/2)log2[(Flächest/Flächexy)(1/w0)(1/w1)(1/w2)] + MIPBias + (3/2)log2w; wobei Flächexy= Fläche des Polygons im Anzeigenraum; = abst[(x1 – x0)(y2 – y0) – (x2 – x0)(y1 – y0)]; (x0, y0) = x- und y-Koordinaten des ersten Scheitelpunkts des Polygons im Anzeigenraum;
    (x1, y1) = x- und y-Koordinaten des zweiten Scheitelpunkts des Polygons in dem Anzeigenraum;
    (x2, y2) = x- und y-Koordinaten des dritten Scheitelpunkts des Polygons im Anzeigenraum; Flächest = Fläche des Polygons im Texturraums; = abs[(s1 – s0)(t2 – t0) – (s2 – s0)(t1 – t0)](Texturhöhe)(Texturbreite)(unter der Annahme, dass s und t zwischen 0 und 1 variieren);
    (s0, t0) = s- und t-Koordinaten des ersten Scheitelpunkts des Polygons im Texturraum;
    (s1, t1) = s- und t-Koordinaten des zweiten Scheitelpunkts des Polygons im Texturraum;
    (s2, t2) = s- und t-Koordinaten des dritten Scheitelpunkts des Polygons im Texturraum;
    w0 = w-Wert für den ersten Scheitelpunkt des Polygons;
    w1 = w-Wert für den zweiten Scheitelpunkt des Polygons;
    w2 = w-Wert für den dritten Scheitelpunkt des Polygons;
    w = perspektivisch korrekt interpolierter w-Wert für das gerenderte Pixel;
    0, 1 und 2 bezeichnen die drei Scheitelpunkte des Polygons; und
    MIPBias = ein Bias-Wert, der für einen gewünschten sichtbaren Effekt hinzugefügt werden kann.
  • Es wird angemerkt, dass MIPBias 0 sein kann. In einem bevorzugten Ausführungsbeispiel ist der Auwahlwert eine Acht-Bit-Nummer. Der Auswahlwert wird dann beim Auswählen von einem oder mehrer MIP-Karten-Stufen mittels des Schritts 220 verwendet. In einem bevorzugten Ausführungsbeispiel wird eine einzige MIP-Karten-Stufe in Schritt 220 ausgewählt. Ebenso wird in einem bevorzugten Ausführungsbeispiel ein Zeiger auf die MIP-Karten-Stufe im Schritt 220 geliefert. Der Schritt 220 könnte ebenso das Interpolieren zwischen MIP-Karten-Stufen umfassen, beispielsweise um gebrochene Auswahlwerte zu berücksichtigen.
  • Die 8 zeigt ein detaillierteres Flußdiagramm eines Ausführungsbeispiels eines Verfahrens zum Berechnen des Auswahlwerts in Schritt 210. Ein Verhältnis wird mittels des Schritts 211 für jedes Polygon berechnet. Das in Schritt 211 berechnete Verhältnis ist die Fläche im Texturraum geteilt durch die Fläche im Anzeigenraum multipliziert mit dem Kehrwert der w-Werte für die Scheitelpunkte des Polygons. So berechnet der Schritt 211 die Größe: RPolygon = (Flächest/Flächexy)(1/w0)(1/w1)(1/w2)
  • Vorzugsweise wird der Schritt 211 von der Polygon-Bias-Wert-Berechnungseinheit 51 durchgeführt. Der Bias-Wert für das Polygon wird dann mittels des Schritts 212 berechnet. Vorzugsweise wird der Schritt 212 ebenso von der Bias-Wert-Berechnungseinheit 150 durchgeführt. Daher berechnet der Schritt 212 die Größe: Bias-Wert = (1/2)log2(RPolygon) + MIPBias = (1/2)log2[(Flächest/Flächexy)(1/w0)(1/w1)(1/w2)] + MIPBias
  • So berechnen die Schritte 211 und 212 einen Bias-Wert, der nicht für jedes der Fragmente wechselt, die dem gleichen Polygon entsprechen. Wie oben erörtert werden die Schritte 211 und 212 beide von der Polygon-Bias-Wert-Berechnungseinheit 150 durchgeführt. Da die Schritte 211 und 212 getrennt von den Berechnungen in Bezug auf die einzelnen Fragmente durchgeführt werden können, können die Schritte 211 und 212 viele Taktzyklen zur Vervollständigung benötigen, ohne den Durchsatz und daher die Leistung nachteilig zu beeinflussen. Es kann jedoch eine Verzögerung für das erste in einem Bild verarbeitete Pixel eingeführt werden. Der Bias-Wert für das Polygon wird dann in der Bias-Wert-Speichereinheit 160 mittels des Schritts 213 gespeichert. Es wird eine Konstante multipliziert mit dem Basis-2-Logarithmus des w-Werts mittels des Schritts 214 bestimmt. Der Schritt 214 wird vorzugsweise von der Logarithmuseinheit 170 durchgeführt. So beinhaltet der Schritt 214 vorzugsweise das Berechnen der Größe (3/2)log2w. Der Auswahlwert für jeden Wert wird dann mittels des Schritts 215 bestimmt. Daher beinhaltet der Schritt 215 das Bestimmen der Größe: Auswahlwert = Bias-Wert + (3/2)log2w
  • Der Schritt 215 wird vorzugsweise von der Auwahlwerteinheit 180 durchgeführt. Vorzugsweise berechnet der Auswahlwert 180 den Auswahlwert in Schritt 215, indem der Bias-Wert von der Bias-Wert-Speichereinheit 160 und (3/2)log2w von der Logarithmuseinheit 170 erhalten wird. In einem bevorzugten Ausführungsbeispiel ist der Auswahlwert eine Acht-Bit-Nummer.
  • Die 9 zeigt ein detaillierteres Flußdiagramm eines Verfahrens 250, das eine MIP-Karten-Stufe gemäß der vorliegenden Erfindung auswählt. Die 9 wird zusammen mit dem Ausführungsbeispiel der in 6 dargestellten Bilderzeugungseinheit 120 erörtert. Für ein bestimmtes Fragment in der Bilderzeugungseinheit werden die Daten in Bezug auf das Polygon an die Polygon-Bias-Wert-Berechnungseinheit 150 geliefert, wohingegen die Daten in dem für ein Pixel spezifischen Fragment mittels des Schritts 252 an die Verarbeitungseinheit 130 geliefert werden. Ebenso werden in Schritt 252 Informationen, die das Polygon anzeigen, dem das Fragment entspricht, an die Polygon-Bias-Wert-Berechnungseinheit 150 und die Verarbeitungseinheit 130 geliefert. Es wird mittels des Schritts 254 bestimmt, ob das Fragment Teil eines Polygons ist, für das dessen Bias-Wert zuvor nicht berechnet worden ist. In einem Ausführungsbeispiel wird der Schritt 254 von der Polygon-Bias-Wert-Berechnungseinheit 150 durchgeführt. Wenn nicht, dann wird Schritt 216 wie nachstehend erörtert durchgeführt. Wenn der Bias-Wert für das Polygon nicht berechnet worden ist, dann wird der Bias-Wert mittels des Schritts 256 berechnet. Der Schritt 256 wird vorzugsweise von der Polygon-Bias-Wert-Berechnungseinheit 150 durchgeführt. Der Bias-Wert für das Polygon wird dann mittels des Schritts 258 in der Bias-Wert-Speichereinheit 160 gespeichert. Da die Schritte 254 bis 256 parallel mit Berechnungen für einzelne Fragmente durchgeführt werden können, können die Schritte 254 bis 256 zur Vervollständigung mehrere Taktzyklen benötigen, ohne die Leistung nachteilig zu beeinflussen.
  • Die Daten für das individuelle Fragment werden mittels des Schritts 260 verarbeitet und interpoliert. (3/2) multipliziert mit dem Basis-2-Logarithmus des w-Werts für das Fragment wird dann mittels des Schritts 262 berechnet. Der Schritt 262 wird vorzugsweise von der Logarithmuseinheit 170 durchgeführt. Der Bias-Wert für das Polygon, dem das Fragment entspricht, wird mittels des Schritts 264 geholt. Der Auswahlwert für das Fragment wird dann mittels des Schritts 266 bestimmt. Der Schritt 266 wird vorzugsweise von der Auswahlwerteinheit 180 durchgeführt und beinhaltet das Addieren des Bias-Werts zu (3/2) multipliziert mit dem Basis-2-Logarithmus des w-Werts für das Fragment. In einem bevorzugten Ausführungsbeispiel ist der Auswahlwert eine Acht-Bit-Nummer. Der Auswahlwert wird dann mittels des Schritts 268 an die geeignete Einheit geliefert. Vorzugsweise beinhaltet der Schritt 268 das Liefern des Auswahlwerts an die Textureinheit 190. Die Verarbeitung wird mittels des Schritts 270 fortgesetzt. Der Schritt 270 beinhaltet vorzugsweise das Auswählen der geeigneten MIP-Karten-Stufe von den MIP-Karten 195, das Interpolieren zwischen den MIP-Karten-Stufen wenn gewünscht, das Mischen und andere Operationen zum Bereitstellen des grafischen Abbilds. Das Verfahren 250 wird dann für die verbleibenden Fragmente in dem gerenderten grafischen Abbild mittels des Schritts 272 wiederholt.
  • Verfahren 200, 210 und 250 liefern eine Auswahlstufe, die für jedes Fragment und jedes Pixel in einem Polygon berechnet ist. Daher kann die Auswahlstufe über das Polygon variieren. Die Auswahlstufe, die von den Verfahren 200, 210 und 250 geliefert wird, ist im wesentlichen die augenblickliche Auswahl-Stufe, die für jedes Fragment korrekt ist. In anderen Worten ausgedrückt, können die Verfahren 200, 210 und 250 so betrachtet werden, dass sie das augenblickliche Verhältnis der Texturraumfläche zu der Bildschirmraumfläche für jedes Fragment berechnen. Somit führen Annäherungen aufgrund des Verfahrens der Berechnung der Auswahlstufe, wie beispielsweise die Verwendung der Gesamtfläche des Polygons, nur einen geringen oder keinen Fehler in die Berechnung der Auswahlstufe ein. Das Runden und andere mathematische Fehler können sich jedoch auswirken. Da die Auswahlstufe für jedes Pixel korrekt ist, werden beim Auswählen der MIP-Karten-Stufe weniger visuelle Artefakte eingeführt. So wird das Aliasing verringert. Da die Auswahlstufe korrekt ist und von Pixel zu Pixel variiert, werden weiterhin Diskontinuitäten zwischen benachbarten Polygonen verringert oder eliminiert. Zusätzlich sind die erforderlichen Berechnungen relativ einfach. Somit kann die Zeit oder der Hardwareplatz verringert werden, die beim Implementieren der Verfahren 200, 210 oder 250 benötigt werden. Wenn ein System, wie beispielsweise das System 120, verwendet wird, werden die Berechnungen für den Bias-Wert, der der gleiche für alle Fragmente in einem Polygon bleibt, von den Berechnungen getrennt, die von Fragment zu Fragment (Pixel zu Pixel) variieren. In anderen Worten wird der Bias-Wert nur einmal pro Polygon berechnet, anstelle einmal für jedes Pixel. Daher sind mehr Taktzyklen zum Berechnen des Bias-Werts erlaubt. Dies begünstigt die Leistung des Verfahrens 200, 210 oder 250, ohne nachteilig den Durchsatz und daher die Leistungs des Systems 120 zu beeinflussen. So wird die Bildqualität verbessert, vorzugsweise ohne signifikante Opfer in Bezug auf die Zeit oder die Chipfläche, die zum Erzeugen des Bilds verwendet werden.
  • Weiterhin kann die Auswahlstufe, die unter Verwendung des Verfahrens 200, 210 oder 250 berechnet worden ist, beim Bestimmen einer anderen Information verwendet werden, die zum Verbessern der Bildqualität nützlich sein kann. Beispielsweise kann die Auswahlstufe beim Durchführen einer anisotropen Filterung oder beim Bestimmen einer perspektivischen Korrektur verwendet werden, wie beispielsweise ds/dx oder dt/dy.
  • Beispielsweise haben Interpolierungen einer Variable, die mit x variiert, wie beispielsweise a, im allgemeinen die Form: A – (a1 – a0)*q(x) + a0 wobei 0,0 ≤ q(x) ≤ 1,0
    a hängt wenigstens von x ab
    a1 = Wert von a bei dem ersten in der Interpolation verwendeten Punkt
    a2 = Wert von a beim zweiten in der Interpolation verwendeten Punkt
  • Zur perspektivisch korrekten Interpolierung wird die Perspektiven-Korrektur-Funktion qp(x) verwendet, um a zu interpolieren. Diese Perspektiven-Korrektur-Funktion ist angegeben durch: gp(x) = w0*(x – x0)/[W0*(x – x0) + w1*(x1 – x)]
  • So kann die Perspektiven-Korrektur-Veränderung in einer Größe in Bezug auf x ausgedrückt werden als:
    Figure 00210001
    wobei: D(x) = w0w1(x1 – x0)/(AplusB)2 AplusB = w0(x – x0) + w1(x1 – x)aL = der Wert von a an der linken Kante des Polygons bei dem gleichen y-Wert wie der gerade interpolierte Punkt
    aR = der Wert von a an der rechten Kante des Polygons bei dem gleichen y-Wert wie der gerade interpolierte Punkt
  • So kann da/dx relativ einfach berechnet werden. Weiterhin ist der Auswahlwert ein Maß für die Perspektiven-Korrektur-Durchschnitts-Veränderung in einer Größe für die x- und y-Richtung. Unter Verwendung von da/dx, die oben berechnet sind, und dem Auswahlwert, kann daher die Größe da/dy berechnet werden. Die Größen da/dx und da/dy können in anderen Operationen verwendet werden, die die Bildqualität verbessern können, wie beispielsweise anisotropes Filtern.
  • Ein Verfahren und ein System zum Auswählen einer MIP-Karten-Stufe sind offenbart worden. Die Verfahren führen zu einer verbesserten Bildqualität, vorzugsweise ohne ungebührlich Raum oder Leistung zu opfern. Auch wenn die vorliegende Erfindung gemäß den gezeigten Ausführungsbeispielen beschrieben worden ist, wird ein Fachmann auf dem Gebiet schnell erkennen, dass es Variationen zu den Ausführungsbeispielen geben könnte und dass diese Variationen innerhalb des Geistes und des Umfangs der vorliegenden Erfindung liegen. Dementsprechend können von einem Fachmann auf dem Gebiet zahlreiche Modifikationen durchgeführt werden, ohne den Umfang der beigefügten Ansprüche zu verlassen.

Claims (22)

  1. Ein Verfahren zur Verarbeitung von Texturen für ein grafisches Abbild auf einer Anzeige (1), wobei das grafische Abbild eine Mehrzahl von Polygonen (2, 3, 4, 5) umfasst, jedes der Mehrzahl von Polygonen wenigstens ein Fragment umfasst, das wenigstens eine Fragment wenigstens eine Textur und einen w-Wert für das Fragment umfasst, der w-Wert ein Maß für die Tiefe (z-Wert) des Polygons ist, jedes der Mehrzahl von Polygonen eine Mehrzahl von Scheitelpunkte (12, 14, 16) besitzt, und das grafische Abbild einen Anzeigenbereich (3) und einen Texturraumbereich (3') aufweist, wobei jeder der Mehrzahl von Scheitelpunkten einen Scheitelpunkt-w-Wert aufweist, die wenigstens eine Textur wenigstens einer multum in parvo (MIP)-Karte zugeordnet ist, die MIP-Karte eine Mehrzahl von MIP-Karten-Stufen aufweist und das Verfahren die Schritte umfasst: (a) Bestimmen eines Auswahlwerts für jedes der wenigstens einen Fragmente eines Polygons der Mehrzahl von Polygonen, und (b) Auswählen wenigstens einer der Mehrzahl von MIP-Karten-Stufen für jedes der wenigstens einen Fragmente auf der Grundlage des Auswahlwerts für jedes der wenigstens einen Fragmente, dadurch gekennzeichnet, dass: der Auswahlwert bestimmt wird durch Addieren von ½ multipliziert mit dem Basis-2-Logarithmus der Texturfläche dividiert durch die Anzeigenfläche und dividiert durch das Produkt der Scheitelpunkt-w-Werte für jeden der Mehrzahl von Scheitelpunkten zu einer MIP-Karten-Bias-Stufe um einen Bias-Wert zu erhalten und indem der Bias-Wert zu 3/2 multipliziert mit dem Basis-2-Logarithmus des w-Werts für jedes der wenigstens einen Fragmente addiert wird.
  2. Ein Verfahren nach Anspruch 1, wobei der Schritt der Bestimmung des Auswahlwerts (a) weiterhin die Schritte aufweist: (a1) Berechnen eines Verhältniswerts für ein Polygon der Mehrzahl von Polygonen, wobei der Verhältniswert die Texturfläche dividiert durch die Anzeigenfläche und multipliziert mit dem Kehrwert des Produkts des Scheitelpunkt-w-Werts für jeden der Mehrzahl von Scheitelpunkten ist; (a2) Berechnen eines Bias-Werts für das Polygon, wobei der Bias-Wert eine MIP-Karten-Bias-Stufe addiert zu einer Größe beinhaltend ½ multipliziert mit dem Basis-2-Logarithmus des Verhältnis-Werts für das Polygon ist; und (a3) Bestimmen des Auswahlwerts für jedes der wenigstens einen Fragmente des Polygons, wobei der Auswahlwert der Bias-Wert für das Polygon addiert zu 3/2 multipliziert mit dem Basis-2-Logarithmus des w-Werts für jedes der wenigstens einen Fragmente ist.
  3. Das Verfahren nach Anspruch 1, das weiterhin den Schritt aufweist: (c) Interpolieren zwischen dem wenigstens einen der Mehrzahl der MIP-Karten-Stufen, die in Schritt (b) ausgewählt worden sind, und einer anderen Stufe der Mehrzahl von MIP-Karten-Stufen, wenn der Auswahlwert ein Bruch ist.
  4. Ein Verfahren nach Anspruch 3, wobei der Interpolierschritt (c) weiterhin die Schritte aufweist: (c1) Auswählen einer ersten MIP-Karten-Stufe der Mehrzahl von MIP-Karten-Stufen auf der Grundlage der größten ganzen Zahl kleiner als die Auswahlstufe; und (c2) Interpolieren zwischen der ersten MIP-Karten-Stufe und einer zweiten MIP-Karten-Stufe auf der Grundlage der Differenz zwischen der Auswahlstufe und der größten ganzen Zahl kleiner als die Auswahlstufe.
  5. Ein Verfahren nach Anspruch 1, das weiterhin den Schritt aufweist: (c) Wiederholen der Schritte (a) und (b) für verbleibende Polygone in der Mehrzahl von Polygonen.
  6. Ein Verfahren nach Anspruch 1, wobei die MIP-Karten-Bias-Stufe Null ist.
  7. Ein Verfahren nach Anspruch 1, wobei die Anzeige durch eine Mehrzahl von x-Koordinaten und eine Mehrzahl von y-Koordinaten gekennzeichnet ist, wobei ein bestimmtes Polygon der Mehrzahl von Polygonen eine ihm zugeordnete Größe aufweist, die Größe in der Lage ist, von einer x-Koordinate der Mehrzahl von x-Koordinaten und der y-Koordinate der Mehrzahl von y-Koordinaten abzuhängen, und wobei das Verfahren weiterhin den Schritt aufweist: (c) Berechnen einer ersten Perspektiven-Korrektur-Veränderung in der Größe gegenüber der x-Koordinate; (d) Berechnen einer zweiten Perspektiven-Korrektur-Veränderung in der Größe gegen die y-Koordinate auf der Grundlage der ersten Perspektiven-Korrektur-Veränderung in der Größe und dem Auswahlwert; und (e) Verwenden der ersten Perspektiven-Korrektur-Veränderung in der Größe und der zweiten Perspektiven-Korrektur-Veränderung in der Größe zur Verbesserung einer Bildqualität des grafischen Abbilds.
  8. Ein computerlesbares Medium, das ein Programm zum Verarbeiten von Texturen für ein grafisches Abbild auf einer Anzeige 1 enthält, wobei das grafische Abbild eine Mehrzahl von Polygonen (2, 3, 4, 5) aufweist, wobei jedes der Mehrzahl von Polygonen wenigstens ein Fragment umfasst, das wenigstens eine Fragment wenigstens eine Textur und einen w-Wert für das Fragment umfasst, der w-Wert ein Maß für die Tiefe (z-Wert) des Polygons ist, jedes der Mehrzahl von Polygonen eine Mehrzahl von Scheitelpunkten (12, 14, 16) aufweist, und wobei das grafische Abbild eine Anzeigefläche (3) und eine Texturraumfläche 3' aufweist, wobei jeder der Mehrzahl von Scheitelpunkten einen Scheitelpunkt-w-Wert aufweist, die wenigstens eine Textur wenigstens einer multum in parvo (MIP)-Karte zugeordnet ist, wobei die MIP-Karte eine Mehrzahl von MIP-Karten-Stufen umfasst, und wobei das Programm Anweisungen aufweist zum: (a) Bestimmen eines Auswahlwerts für jedes der wenigstens einen Fragmente eines Polygons der Mehrzahl von Polygonen, und (b) Auswählen wenigstens einer der Mehrzahl von MIP-Karten-Stufen-Karte für jedes der wenigstens einen Fragmente auf der Grundlage des Auswahlwerts für jedes der wenigstens einen Fragmente, dadurch gekennzeichnet, dass der Auswahlwert bestimmt wird durch Addieren von ½ multipliziert mit dem Basis-2-Logarithmus der Texturfläche dividiert durch die Anzeigenfläche und dividiert durch das Produkt der Scheitelpunkt-w-Werte für jeden der Mehrzahl von Scheitelpunkten zu einer MIP-Karten-Bias-Stufe, um einen Bias-Wert zu erhalten, und Addieren des Bias-Werts zu 3/2 multipliziert mit dem Basis-2-Logarithmus des w-Werts für jedes der wenigstens einen Fragmente.
  9. Ein computerlesbares Medium nach Anspruch 1, wobei die Anweisungen (a) zum Bestimmen des Auswahlwerts weiterhin Anweisungen umfassen zum: (a1) Berechnen eines Verhältniswerts für ein Polygon der Mehrzahl von Polygonen, wobei der Verhältniswert die Texturfläche dividiert durch die Anzeigenfläche und multipliziert mit dem Kehrwert des Produkts des Scheitelpunkt-w-Werts für jeden der Mehrzahl von Scheitelpunkten ist; (a2) Berechnen eines Bias-Werts für das Polygon wobei der Bias-Wert eine MIP-Karten-Bias-Stufe addiert zu einer Größe beinhaltend ½ multipliziert mit dem Basis-2-Logarithmus des Verhältnis-Werts für das Polygon ist; und (a3) Bestimmen des Auswahlwerts für jedes der wenigstens einen Fragmente des Polygons, wobei der Auswahlwert der Bias-Wert für das Polygon addiert zu 3/2 multipliziert mit dem Basis-2-Logarithmus des w-Werts für jedes der wenigstens einen Fragmente ist.
  10. Ein computerlesbares Medium nach Anspruch 1, wobei das Programm weiterhin Anweisungen aufweist zum: (c) Interpolieren zwischen dem wenigstens einen der Mehrzahl der MIP-Karten-Stufen, die in Schritt (b) ausgewählt worden sind, und einer anderen Stufe der Mehrzahl von MIP-Karten-Stufen, wenn der Auswahlwert ein Bruch ist.
  11. Ein computerlesbares Medium nach Anspruch 10, wobei die Anweisungen zum Interpolieren (c) weiterhin Anweisungen umfassen zum: (c1) Auswählen einer ersten MIP-Karten-Stufe der Mehrzahl von MIP-Karten-Stufen auf der Grundlage der größten ganzen Zahl kleiner als die Auswahlstufe; und (c2) Interpolieren zwischen der ersten MIP-Karten-Stufe und einer zweiten MIP-Karten-Stufe auf der Grundlage der Differenz zwischen der Auswahlstufe und der größten ganzen Zahl kleiner als die Auswahlstufe.
  12. Ein computerlesbares Medium nach Anspruch 1, wobei das Programm weiterhin Anweisungen umfasst zum: (c) Wiederholen der Schritte (a) und (b) für verbleibende Polygone in der Mehrzahl von Polygonen.
  13. Ein computerlesbares Medium nach Anspruch 1, wobei die MIP-Karten-Bias-Stufe Null ist.
  14. Ein computerlesbares Medium nach Anspruch 1, wobei die Anzeige durch eine Mehrzahl von x-Koordinaten und eine Mehrzahl von y-Koordinaten gekennzeichnet ist, wobei ein bestimmtes Polygon der Mehrzahl von Polygonen eine ihm zugeordnete Größe aufweist, die Größe in der Lage ist, von einer x-Koordinate der Mehrzahl von x-Koordinaten und der y-Koordinate der Mehrzahl von y-Koordinaten abzuhängen, und wobei das Verfahren weiterhin den Schritt aufweist: (c) Berechnen einer ersten Perspektiven-Korrektur-Veränderung in der Größe gegenüber der x-Koordinate; (d) Berechnen einer zweiten Perspektiven-Korrektur-Veränderung in der Größe gegen die y-Koordinate auf der Grundlage der ersten Perspektiven-Korrektur-Veränderung in der Größe und dem Auswahlwert; und (e) Verwenden der ersten Perspektiven-Korrektur-Veränderung in der Größe und der zweiten Perspektiven-Korrektur-Veränderung in der Größe zur Verbesserung einer Bildqualität des grafischen Abbilds.
  15. Ein System zum Verarbeiten von Texturen für ein grafisches Abbild auf einer Anzeige (1), wobei das grafische Abbild eine Mehrzahl von Polygonen (2, 3, 4, 5) umfasst, jedes der Mehrzahl von Polygonen wenigstens ein Fragment umfasst, das wenigstens eine Fragment wenigstens eine Textur und einen w-Wert für das Fragment umfasst, der w-Wert ein Maß für die Tiefe (z-Wert) des Polygons ist, jedes der Mehrzahl von Polygonen eine Mehrzahl von Scheitelpunkten (12, 14, 16) aufweist, wobei das grafische Abbild eine Anzeigefläche (3) und eine Texturraumfläche (3') aufweist, wobei jeder der Mehrzahl von Scheitelpunkten einen Scheitelpunkt-w-Wert aufweist und das System umfasst: wenigstens eine multum in parvo (MIP)-Karte (195), die der wenigstens einen Textur zugeordnet ist, wobei die MIP-Karte eine Mehrzahl von MIP-Karten-Stufen umfasst; gekennzeichnet durch: eine Bias-Wert-Einheit 150 zum Berechnen eines Bias-Werts für jedes der Mehrahl von Polygonen, wobei der Bias-Wert eine MIP-Karten-Bias-Stufe addiert zu einer Größe einschließlich ½ multipliziert mit dem Basis-2-Logarithmus eines Verhältniswerts für das Polygon ist, der Verhältniswert die Texturfläche dividiert durch die Anzeigenfläche und multipliziert mit dem Kehrwert des Scheitelpunkt-w-Werts für jeden der Mehrzahl von Scheitelpunkten ist; wenigstens einen Interpolierer (140) zum Liefern von Informationen in Bezug auf jedes der Mehrzahl von Fragmenten; Eine Logarithmus-Einheit (170), die mit dem wenigstens einen Interpolierer zum Bestimmen eines Basis-2-Logarithmus des w-Werts für jedes der wenigstens einen Fragmente gekoppelt ist; eine Auswahlwerteinheit (180), die mit der Logarithmus-Einheit und der Bias-Wert-Berechnungs-Einheit gekoppelt ist, zum Bestimmen eines Auswahlwerts für jede der wenigstens einen Textur für jedes der wenigstens einen Fragmente, wobei der Auswahlwert der Bias-Wert für ein Polygon entsprechend jedem von dem wenigstens einen Fragment addiert zu 3/2 multipliziert mit dem Basis-2-Logarithmus des w-Werts für jedes der wenigstens einen Fragmente ist; und eine Textureinheit (190) zum Auswählen wenigstens einer der Mehrzahl von MIP-Karten-Stufen-Karte für jedes des wenigstens einen Fragments auf der Grundlage des Auswahlwerts für jedes des wenigstens einen Fragments.
  16. Ein System nach Anspruch 15, das weiterhin aufweist: mit der Bias-Wert-Einheit gekoppelte Mittel zum Speichern des Bias-Werts für jedes der Mehrzahl eines Abschnitts der Polygone; wobei die Auswahl-Wert-Einheit mit den Bias-Wert-Berechnungs-Mitteln mittels der Speichermittel gekoppelt sind.
  17. Ein System nach Anspruch 15, wobei der Interpolierer weiterhin den w-Wert für jedes der Mehrzahl von Fragmenten berechnet.
  18. Ein Sytem nach Anspruch 15, wobei die Bias-Wert-Einheit eine Mehrzahl von Taktzyklen zum Berechnen eines Bias-Werts für jedes der Mehrzahl von Polygonen verbraucht.
  19. Ein System nach Anspruch 15, wobei die Auswahl-Wert-Einheit einen bestimmten Auswahlwert eines bestimmten Fragments des wenigstens einen Fragments jeden Taktzyklus liefert.
  20. Ein Sytem nach Anspruch 15, wobei die Textureinheit weiterhin zwischen der wenigstens einen der Mehrzahl von MIP-Karten-Stufen, die ausgewählt ist, und einer anderen Stufe der Mehrzahl von MIP-Karten-Stufen interpoliert, wenn der Auswahlwert ein Bruch ist.
  21. Ein System nach Anspruch 20, wobei die Textureinheit weiterhin eine erste MIP-Karten-Stufe der Mehrzahl von MIP-Karten-Stufen auf der Grundlage der größten ganzen Zahl kleiner als die Auswahlstufe auswählt; und zwischen der ersten MIP-Karten-Stufe und einer zweiten MIP-Karten-Stufe auf der Grundlage der Differenz zwischen der Auswahlstufe und der größten ganzen Zahl kleiner als der Auswahlstufe interpoliert.
  22. Ein System nach Anspruch 15, wobei die MIP-Karten-Bias-Stufe Null ist.
DE60009486T 1999-06-04 2000-05-25 Verfahren und anordnung zur auswahl eines mip-map-niveaus Expired - Lifetime DE60009486T2 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US32611599A 1999-06-04 1999-06-04
US326115 1999-06-04
PCT/US2000/014629 WO2000075874A1 (en) 1999-06-04 2000-05-25 Method and system for performing mip map level selection

Publications (2)

Publication Number Publication Date
DE60009486D1 DE60009486D1 (de) 2004-05-06
DE60009486T2 true DE60009486T2 (de) 2004-08-19

Family

ID=23270875

Family Applications (1)

Application Number Title Priority Date Filing Date
DE60009486T Expired - Lifetime DE60009486T2 (de) 1999-06-04 2000-05-25 Verfahren und anordnung zur auswahl eines mip-map-niveaus

Country Status (6)

Country Link
US (1) US6356273B1 (de)
EP (1) EP1183652B1 (de)
AT (1) ATE263400T1 (de)
AU (1) AU5167800A (de)
DE (1) DE60009486T2 (de)
WO (1) WO2000075874A1 (de)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4300650B2 (ja) * 1999-09-07 2009-07-22 ソニー株式会社 演算処理回路およびその方法と画像処理装置
US6486887B1 (en) * 2000-06-08 2002-11-26 Broadcom Corporation Method and system for improving color quality of three-dimensional rendered images
US7295212B2 (en) * 2002-04-30 2007-11-13 Silicon Graphics, Inc. Method, system, and computer program product for blending textures in a texture paging scheme
US6809739B2 (en) * 2002-04-30 2004-10-26 Silicon Graphics, Inc. System, method, and computer program product for blending textures during rendering of a computer generated image using a single texture as a mask
US20040174379A1 (en) * 2003-03-03 2004-09-09 Collodi David J. Method and system for real-time anti-aliasing
US8212835B1 (en) * 2006-12-14 2012-07-03 Nvidia Corporation Systems and methods for smooth transitions to bi-cubic magnification
JP5695746B2 (ja) * 2010-08-27 2015-04-08 シリコンアーツ インコーポレイテッド ミップマップレベル選択方法及びこれを利用したテクスチャマッピングシステム

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5224208A (en) * 1990-03-16 1993-06-29 Hewlett-Packard Company Gradient calculation for texture mapping
US5719599A (en) * 1995-06-07 1998-02-17 Seiko Epson Corporation Method and apparatus for efficient digital modeling and texture mapping

Also Published As

Publication number Publication date
WO2000075874A1 (en) 2000-12-14
EP1183652A1 (de) 2002-03-06
ATE263400T1 (de) 2004-04-15
EP1183652B1 (de) 2004-03-31
DE60009486D1 (de) 2004-05-06
AU5167800A (en) 2000-12-28
US6356273B1 (en) 2002-03-12

Similar Documents

Publication Publication Date Title
DE69624878T2 (de) Verfahren und Vorrichtung zur Volumendarstellung
DE69602728T2 (de) Vorrichtung zur bildmanipulation und -generation
DE69408473T2 (de) Direktes rendering von texturierten höhenfeldern
US5734386A (en) System and method for displaying textured polygons using planar texture interpolation
DE69610341T2 (de) 3-D-Bildertexturierung und -schattierung
DE69424900T2 (de) Verfahren und Gerät zur Durchführung von Texturabbildung auf komplexen Oberflächen
DE19646194B4 (de) Echtzeit-Wiedergabeverfahren zum wahlweisen Ausführen von Bump-Mapping- und Phong-Schattierungs-Prozessen und zugehörige Vorrichtung
DE69816824T2 (de) Texturabbildung in 3-d-rechnergraphik
DE102005035012B4 (de) Hochleistungsschattierung von großen volumetrischen Daten unter Verwendung von partiellen Schirmraumableitungen
DE69836924T2 (de) Block- und bandorientierter durchlauf in dreidimensionaler dreieckswiedergabe
DE69424716T2 (de) Verfahren und Vorrichtung zur adaptiven Steuerung der Texturabbildung
DE69932059T2 (de) Trilineare texturfilterung mit optimiertem speicherzugriff
DE19782086B4 (de) Multiplizierer zur Durchführung von 3D-Graphik-Interpolationen
DE19807053B4 (de) Strahltransformationsverfahren für eine schnelle Volumenaufbereitung für eine perspektivische Betrachtung
EP1792281B1 (de) Verfahren und system zur alias-beseitigung durch pixel-abtastung
DE19620263B4 (de) Datensynchronisation zwischen einer Mehrzahl von asynchronen Datenaufbereitungen
DE102005023964A1 (de) Volumenvisualisierung mittels Texturverschiebung
EP0984397A2 (de) Verfahren und Vorrichtung zum Eliminieren unerwünschter Stufungen an Kanten bei Bilddarstellungen im Zeilenraster
EP1616303B1 (de) Effizientes bump-mapping unter verwendung von höhenkarten
DE69606177T2 (de) Verfahren und gerät zur texturabbildung
DE60008867T2 (de) Antialiasingverfahren und -anordnung zur effizienten nutzung von wenigen mischeinheiten
DE60122333T2 (de) Verfahren und System zur kachelweisen Bildwiedergabe
DE69529732T2 (de) Korrektur der Perspektive von Texturen in graphischen Bildern durch adaptive Approximation
US5528738A (en) Method and apparatus for antialiasing raster scanned, polygonal shaped images
DE69427809T2 (de) Vorrichtung und Verfahren zur graphischen Darstellung

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8328 Change in the person/name/address of the agent

Representative=s name: BOSCH JEHLE PATENTANWALTSGESELLSCHAFT MBH, 80639 M