DE602005006264T2 - Grafik-pipeline zur wiedergabe von grafiken - Google Patents

Grafik-pipeline zur wiedergabe von grafiken Download PDF

Info

Publication number
DE602005006264T2
DE602005006264T2 DE602005006264T DE602005006264T DE602005006264T2 DE 602005006264 T2 DE602005006264 T2 DE 602005006264T2 DE 602005006264 T DE602005006264 T DE 602005006264T DE 602005006264 T DE602005006264 T DE 602005006264T DE 602005006264 T2 DE602005006264 T2 DE 602005006264T2
Authority
DE
Germany
Prior art keywords
texture
input
coordinates
space
texels
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.)
Active
Application number
DE602005006264T
Other languages
English (en)
Other versions
DE602005006264D1 (de
Inventor
Bart G. Barenbrug
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.)
Entropic Communications LLC
Original Assignee
NXP BV
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
Family has litigation
First worldwide family litigation filed litigation Critical https://patents.darts-ip.com/?family=34966273&utm_source=google_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=DE602005006264(T2) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Application filed by NXP BV filed Critical NXP BV
Publication of DE602005006264D1 publication Critical patent/DE602005006264D1/de
Application granted granted Critical
Publication of DE602005006264T2 publication Critical patent/DE602005006264T2/de
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/10Geometric effects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/04Texture mapping
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/20Processor architectures; Processor configuration, e.g. pipelining

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Graphics (AREA)
  • Geometry (AREA)
  • Image Generation (AREA)
  • Digital Computer Display Output (AREA)

Description

  • Gebiet der Erfindung
  • Die Erfindung betrifft eine Grafik-Pipeline zur Wiedergabe von Grafiken, wobei die Grafik-Pipeline einen Eingang zum Empfangen der Textur-Daten und Vertex-Daten umfasst, wobei die Textur-Daten Textur-Abbildungen in einem Textur-Raum definieren, wobei jede Textur-Abbildung mit Textur-Raum-Gitternetzkoordinaten verknüpfte Texel umfasst, wobei die Vertex-Daten Textur-Raum-Eingabekoordinaten von Eingabe-Polygonen und Bildschirm-Raum-Eingabekoordinaten von Ausgabe-Polygonen umfassen, wobei jedes der Eingabe-Polygone mit einem entsprechenden Ausgabe-Polygon verknüpft ist, einen Rasterplotter zum Empfangen der Textur-Raum-Eingabekoordinaten der Eingabe-Polygone und zum Bereitstellen der Textur-Raum-Gitternetzkoordinaten der Texel innerhalb der Eingabe-Polygone und einen Mapper zum Abbilden der Texel innerhalb der Eingabe-Polygone auf die Ausgabe-Polygone, wobei das Abbilden durch Berechnen von Bildschirm-Raum-Ausgabekoordinaten aus den Textur-Raum-Gitternetzkoordinaten der Texel innerhalb der Eingaberechtecke ausgeführt wird. Hierbei ist ein Texel ein Texturelement.
  • Des Weiteren betrifft die Erfindung ein Verfahren zur Wiedergabe von auf eifern Display anzuzeigenden Grafiken in einem Computer und in einer Vorrichtung zum Anzeigen von Grafiken.
  • Hintergrund der Erfindung
  • Die Textur-Abbildung ist eine Kerntechnologie gängiger 3D-Grafiksysteme. Solche Grafiksysteme werden für Grafikanwendungen wie 3D-Computerspiele für PCs oder Spielkonsolen wie der Nintendo Game Cube, die Sony Playstation und die Microsoft Xbox verwendet. Mit Textur-Abbildung wird die Geometrie einer 2D-Darstellung von 3D-Objekten mit Textur versehen. Dadurch gleichen sowohl die Form als auch die Farben der Grafik auf dem Bildschirm wirklichkeitsgetreu den 3D-Objekten. Zwei Techniken werden häufig zur Textur-Abbildung eingesetzt, Invers-Textur-Abbildung (ITM) und Vorwärts-Textur-Abbildung (FTM). Mit ITM werden die Pixel in Bildschirm-Raum übergeführt und ein Mapper bildet die Pixel-Gitternetzkoordinaten auf Texel-Koordinaten ab. Die Intensität der abgebildeten Texel-Koordinaten wird durch Gewichtung von in einem Textur-Speicher gespeicherten und an eine Texel-Koordinate umgebenden Texel-Gitternetzpositionen auftretenden Texel-Intensitäten bestimmt. Mit FTM werden Bildschirm-Raumpositionen aus den Textur-Gitternetzkoordinaten berechnet. Die Intensitäten an den Bildschirm-Raumpositionen werden über umgebende Bildschirm-Raum-Gitternetzpositionen verteilt, und die verteilten Intensitäten an den Bildschirm-Raum-Gitternetzpositionen werden in einem Bild-Buffer gespeichert. Die erfindungsgemäße Grafik-Pipeline beruht auf der FTM-Technik.
  • Eine typische 3D-FTM-Grafik-Pipeline umfasst einen Eingang zum Empfangen von Textur-Daten und Grafik-Daten, einen Textur-Speicher zum Speichern der Textur-Daten, einen Rasterplotter zum Rasterplotten von Eingabe-Polygonen im Textur-Raum und einen Mapper zum Abbilden der Textur auf dem Bildschirm. Die Textur-Daten bestimmen Textur-Abbildungen, jede Textur-Abbildung umfasst einen Array von Texeln, wobei jedes Texel mit Textur-Raum-Gitternetzkoordinaten und einer Textur-Farbe verknüpft ist. Die Vertex-Daten umfassen Textur-Raum-Eingabekoordinaten, die die Eckpunkte von Eingabe-Polygonen definieren, und Bildschirm-Raum-Eingabekoordinaten, die die Eckpunkte von Ausgabe-Polygonen definieren. Die Ausgabe-Polygone bilden eine Geometrie einer 2D-Darstellung eines 3D-Objektes. Jedes Eingabe-Polygon ist mit einem entsprechenden Ausgabe-Polygon verknüpft. Die 2D-Darstellung wird zum Anzeigen auf einem Display-Bildschirm verwendet und stellt eine perspektivische Ansicht auf die 3D-Objekte von einem bestimmten Blickpunkt aus dar. Der Textur-Speicher speichert die Textur-Daten. Ein Rasterplotter empfängt die Textur-Raum-Eingabekoordinaten der Eingabe-Polygone und stellt die Textur-Raum-Gitternetzkoordinaten der Texel innerhalb der Eingabe-Polygone bereit. Die Textur-Raum-Eingabekoordinaten, die die Eckpunkte der Eingabe-Polygone sind, müssen nicht auf den Gitternetzpositionen liegen. Ein Mapper bildet die Texel-Farben und Koordinaten auf die Ausgangs-Polygone ab. Das Abbilden wird durch Berechnen von Bildschirm-Raum-Ausgabekoordinaten aus den Textur-Raum-Gitternetzkoordinaten ausgeführt. Die Bildschirm-Raum-Ausgabekoordinaten befinden sich im Allgemeinen nicht auf Pixel-Gitternetzpositionen in dem Bildschirm-Raum. Häufig wird ein Bildschirm-Raum-Resampler zum Splatten einer Farbe der abgebildeten Textur-Raum-Gitternetzkoordinate über die die Bildschirm-Raum-Ausgabekoordinaten umgebenden Pixel-Gitternetzpositionen verwendet.
  • Zum Beispiel wird in K. Meinds und B. Barenburg, Resample Hardware for 3D Graphics, Eurographics Workshop an Graphics Hardware, 2002, Seiten 17–27 ein twopass Vorwärts-Textur-Abbildungsverfahren in einer effizienten, zeitgleichen Hardware-Implementierung vorgestellt.
  • Bekannte FTM-Grafiksysteme verwenden perspektivisches Abbilden zum Abbilden von Polygonen im Textur-Raum auf Polygone im Bildschirm-Raum. Ein Beispiel für ein perspektivisches Abbilden wird in 1 gezeigt. Im Bildschirm-Raum 5 wird eine perspektivische Projektion einer Pyramide gezeigt. In der Wirklichkeit ist die Pyramide aus vier Dreiecken auf einer quadratischen Basis gebildet, von welchen nur drei Dreiecke von dem die 2D-Darstellung im Bildschirm-Raum 5 bestimmenden Blickpunkt aus sichtbar sind. Der Textur-Raum 4 umfasst die Textur der in der Bildschirm-Raum-Darstellung sichtbaren drei Dreiecke 1, 2 und 3. Die Dreiecke 1, 2 und 3 in dem 2D-Textur-Raum 4 sind gleich wie die aus einer für die Dreiecke üblichen Blickrichtung gesehenen Dreiecke in dem 3D-Wirklichkeitsraum (nicht gezeigt). Jedes Dreieck im Textur-Raum 4 durchläuft eine andere Umwandlung, je nach seiner Orientierung im Wirklichkeitsraum bezüglich der Betrachtungsebene (= Bildschirm-Raum 5). In diesem Fall ist die Form eines Dreiecks 2 in dem Wirklichkeitsraum parallel zu der Betrachtungsebene 5 und die Form der Textur dieses Dreiecks 2 bleibt in der 2D-Darstellung erhalten. Die perspektivische Projektion der Pyramide auf den Bildschirm-Raum 5 ergibt eine Umwandlung der zwei Dreiecke 1 und 3 in anders geformte Dreiecke. Die Textur auf diesen zwei Dreiecken 1 und 3 wird ebenfalls umgewandelt, weil alle Texel innerhalb der Dreiecke 1 und 3 gemeinsam mit den Dreiecken 1 und 3 selbst umgewandelt werden. Das Ergebnis aus der in 1 gezeigten perspektivischen Projektion ist, dass die Polygone im Textur-Raum in eine 2D-Darstellung der selben Dreiecke umgewandelt werden, wie sie aus einer von der Betrachtungsebene 5 aus gesehenen Blickrichtung nicht üblich sind.
  • Die allgemeine Form des in 3D-Grafik verwendeten perspektivischen Abbildens ist:
    Figure 00040001
    wobei das h anzeigt, dass es sich um homogene Koordinaten handelt, welche noch durch die dritte Koordinate (w h / c) zu dividieren sind um zu den tatsächlichen Bildschirm-Raum-Ausgabekoordinaten xc und yc zu gelangen, ug und vg sind die Textur-Raum-Gitternetzkoordinaten der abzubildenden Texel.
  • Homogene Koordinaten werden verwendet um die nicht-linearen perspektivischen Projektionen in leicht implementierbare lineare Operationen und eine Division aufzuteilen. Der Mapper berechnet zuerst die Abbildungskoeffizienten A–I unter Verwendung der Textur-Raum-Eingabekoordinaten von Eingabe-Polygonen und Bildschirm-Raum-Eingabekoordinaten von Ausgabe-Polygonen. Da alle Polygone im Wirklichkeitsraum eine andere Orientierung bezüglich der Betrachtungsebene 5 einnehmen, sind die Abbildungskoeffizienten für verschiedene Polygone unterschiedlich. Wenn die Abbildungskoeffizienten bekannt sind, werden alle Texel innerhalb des Polygons auf die Ausgabe-Polygone abgebildet.
  • Ein Nachteil des vorstehend beschriebenen Grafiksystems sind die Komplexität und die hohen Kosten des Rasterplotters. Die Eingabe-Polygone können zum Beispiel Dreiecke, Vierecke oder Fünfecke sein, definiert durch die Textur-Raumkoordinaten ihrer Eckpunkte. Zum Bestimmen, welche Texel sich innerhalb des Polygons befinden, muss der Rasterplotter zuerst die Kanten der Polygone bestimmen. Daraufhin ist bestimmbar, welche Texel innerhalb des Polygons sind und weiter zu bearbeiten sind. Für die Kantenberechnung ist ein komplexer und teurer Rasterplotter nötig. Deshalb ist ein solcher Rasterplotter nicht für kostengünstige Grafiksysteme geeignet. Solche kostengünstigen Systeme sind erwünscht, um 3D-Grafiktechnologie zum Beispiel zu Fernsehgeräten und Handys beizufügen.
  • Zusammenfassung der Erfindung
  • Es ist eine Aufgabe der Erfindung, ein System zur Wiedergabe von auf einem Display anzuzeigenden Grafiken bereitzustellen, wobei das System einen weniger komplexen und weniger teuren Rasterplotter umfasst.
  • Die Erfindung ist durch die unabhängigen Ansprüche definiert. Die abhängigen Ansprüche definieren vorteilhafte Ausführungsformen.
  • Zur Lösung der Aufgabe der Erfindung wird ein Rasterplotter bereitgestellt, welcher nur auf eine Achse ausgerichtete Rechtecke zu rasterplotten hat. Auf eine Achse ausgerichtete Rechtecke sind durch nur zwei Koordinatenpaare definierbar. Zum Rasterplotten dieser auf eine Achse ausgerichteten Rechtecke sind keine komplexen Kantenberechnungen nötig. Die Texel innerhalb eines auf eine Achse ausgerichteten Rechtecks sind leicht verarbeitbar, zum Beispiel Zeile für Zeile unter Verwendung des folgenden Samplecodes:
    Figure 00050001
    wobei ur1 und vr1 die Koordinaten des ersten das auf eine Achse ausgerichtete Rechteck definierenden Koordinatenpaares sind und ur2 und vr2 die Koordinaten des zweiten das auf eine Achse ausgerichtete Rechteck definierenden Koordinatenpaares sind.
  • Bei der erfindungsgemäßen Grafik-Pipeline bildet ein Mapper die Texel innerhalb der Eingaberechtecke auf Ausgabevierecke durch Berechnen von Bildschirm-Raum-Ausgabekoordinaten aus den Textur-Raum-Gitternetzkoordinaten der Texel ab. Die Bildschirm-Raum-Ausgangskoordinaten werden mit einer Abbildungsfunktion berechnet, die zumindest eine lineare Kombination der Textur-Raum-Gitternetzkoordinaten der Texel innerhalb der Eingaberechtecke und zumindest ein Produkt realer Potenzen der Textur-Raum-Gitternetzkoordinaten der Texel innerhalb der Eingaberechtecke umfasst.
  • Die von dem Mapper in der erfindungsgemäßen Grafik-Pipeline verwendete Abbildungsfunktion umfasst nicht nur Terme, welche konstant sind oder nur linear von einer der Eingabekoordinaten abhängen, sondern sie muss auch nicht-lineare oder bilineare Terme umfassen. Das Einführen von nicht-linearen oder bilinearen Termen ermöglicht das Umwandeln der auf eine Achse ausgerichteten Eingaberechtecke und der innerhalb derselben befindlichen Texel in beliebig geformte Ausgabevierecke mit wirklichkeitsnah umgewandelten Texeln im Bildschirm-Raum 5. Mit perspektivischem Abbilden sind auf eine Achse ausgerichtete Rechtecke in dem Textur-Raum 4 nur in die Vierecke umwandelbar, die sichtbar sind, wenn das Rechteck aus einem anderen Winkel gesehen wird. Es ist unmöglich, alle 3D-Objekte nur unter Verwendung von Rechtecken zu modellieren. Die erfindungsgemäße Grafik-Pipeline ermöglicht das Umwandeln von auf eine Achse ausgerichteten Rechtecken im Textur-Raum 4 in beliebig geformte, aus beliebig gewählten Blickwinkeln gesehene Vierecke im Bildschirm-Raum 5, ohne dass dafür ein komplexer und teurer Rasterplotter benötigt wird.
  • Um die zusätzlichen Terme einzuführen, muss das Abbilden nach der Gleichung (1) erweitert werden. In Matrixform kann das erweiterte Abbilden zum Beispiel sein:
    Figure 00060001
    wobei n, m ∈ R. Wenn die Funktion zum Berechnen von Bildschirm-Raumkoordinaten zumindest ein Produkt realer Potenzen der Textur-Raum-Gitternetzkoordinaten umfasst, ist zumindest einer der Koeffizienten C, G und K nicht gleich Null. Zusätzlich können n und m nicht zugleich gleich Null sein, und wenn n oder m gleich Null ist, kann der andere Wert nicht zugleich gleich Eins sein.
  • Es ist zu beachten, dass die meisten modernen Fernsehgeräte einen Video-Skalierer zum Konvertieren von Videobildern von und in unterschiedliche(n) Videoformate(n), z. B. 4:3 und 16:9, umfassen. Wie der Rasterplotter der erfindungsgemäßen Grafik-Pipeline nehmen solche Video-Skalierer nur rechtwinklige Eingaben an (üblicherweise das gesamte Bild) und bilden die rechtwinkligen Eingaben auf Bildschirm-Raum ab. Solche Video-Skalierer führen ein Abbilden der folgenden Form durch: X = Du|u| + Au + C (2)
  • Diese Gleichung (2) wird für Panorama-Modus verwendet (wenn D ≠ 0) oder für einfache horizontale Vergrößerung oder Verkleinerung (wenn D = 0). Solche bekannten Video-Skalierer sind nicht für die Wiedergabe von 3D-Grafiken geeignet, weil sie Eingaberechtecke nicht auf beliebig geformte Vierecke abbilden können.
  • In einer bevorzugten Ausführungsform der Erfindung ist das Abbilden vom Wirklichkeitsraum in Textur-Raum ein bilineares Abbilden (n = m = 1) der folgenden Form: X(u, v) = a0 + a1u + a2v + a3uv (4)
  • Manche Objekte, z. B. Kugeln, sind nicht ausschließlich mit Rechtecken modellierbar, aber solche Objekte sind unter Verwendung von beliebig geformten Vierecken oder Trapezoiden modellierbar. Durch ein bilineares Abbilden sind ebene Rechtecke und die entsprechende Textur im Textur-Raum in beliebig geformte Vierecke im Bildschirm-Raum umwandelbar. Deshalb kann bilineares Abbilden zum wirklichkeitsnahen Modellieren sphärischer 3D-Objekte verwendet werden.
  • Ein zusätzlicher Vorteil der Verwendung eines bilinearen Abbildens ist der, dass Rechtecke im Textur-Raum und die entsprechende Textur in nicht ebene Vierecke im Bildschirm-Raum umwandelbar sind, was sehr wirklichkeitsnahe Modelle nicht ebener 3D-Objekte ergibt.
  • Kurze Beschreibung der Zeichnungen
  • In den Zeichnungen zeigt/zeigen:
  • 1 ein perspektivisches Abbilden aus Textur-Raum in Bildschirmraum bei einer dem Stand der Technik entsprechenden 3D-Grafik-Pipeline,
  • 2 ein Blockdiagramm einer Ausführungsform einer erfindungsgemäßen Grafik-Pipeline,
  • 3 ein Blockdiagramm einer Ausführungsform eines Grafiksystems, bei welchem eine erfindungsgemäße Grafik-Pipeline vorteilhafter Weise verwendet werden kann,
  • 4A4C schematisch das Rasterplotten eines Eingaberechtecks im Textur-Raum und das Abbilden seiner Textur in Bildschirmraum,
  • 5A und 5B eine Abbildung aus dem Textur-Raum in Bildschirm-Raum bei einer erfindungsgemäßen 3D-Grafik-Pipeline und
  • 6A und 6B eine mit einer erfindungsgemäßen Grafik-Pipeline erstellte 2D-Darstellung einer Kugel.
  • Detaillierte Beschreibung der bevorzugten Ausführungsform
  • 2 zeigt ein Blockdiagramm einer Ausführungsform einer erfindungsgemäßen Grafik-Pipeline 20. Die Pipeline 20 umfasst einen Eingang 21 zum Empfangen der Textur-Daten 22 und Vertex-Daten 23. Die Vertex-Daten 23 umfassen Textur-Raum-Eingabekoordinaten (ur, vr) 24 von Eingaberechtecken und Bildschirm-Raum-Eingabekoordinaten (xh r, yh r, wh r) 25 von Ausgabevierecken. Diese und andere Koordinaten werden im Folgenden unter Bezugnahme auf 4 weiter erläutert. Die Textur-Daten 22 sind im Textur-Speicher 26 gespeichert. Ein Rasterplotter 27 empfangt die Textur-Raum-Eingabekoordinaten (ur, vr) 24 der Eingaberechtecke und stellt die Textur-Raum-Gitternetzkoordinaten (ug, vg) der Texel innerhalb der Eingaberechtecke bereit. Die Funktion des Rasterplotters 27 wird im Folgenden unter Bezugnahme auf 4 weiter erläutert. Ein Mapper 28 bildet die Texel innerhalb der Eingaberechtecke auf die Ausgabevierecke ab. Das Abbilden erfolgt durch Berechnen von Bildschirm-Raum-Ausgabekoordinaten (xc, yc) 29 aus den Textur-Raum-Gitternetzkoordinaten (ug, vg). Die Funktion des Mappers wird im Folgenden unter Bezugnahme auf 5 weiter erläutert.
  • Alle Elemente der Grafik-Pipeline können in Hardware implementiert werden, zum Beispiel als separate Elemente auf einer Video-Grafikkarte für einen PC oder als Teil einer Grafikprozessoreinheit (GPU). Die Grafik-Pipeline kann auch in Treibersoftware für eine Video-Grafikkarte implementiert werden. Ebenso kann die Grafik-Pipeline in Hard- oder Softwareelemente eines Computerdisplays, Fernsehgerätes, Handys, digitalen persön lichen Assistenten (PDA) oder anderer Konsumelektronikprodukte mit einem Display implementiert werden.
  • 3 zeigt ein Blockdiagramm eines Beispiels eines Grafiksystems, bei welchem vorteilhafterweise eine erfindungsgemäße Grafik-Pipeline 20 verwendet werden kann. Das System umfasst die Grafik-Pipeline 20, einen Bildschirm-Raum-Resampler 31, einen Framebuffer 32 und einen Display-Bildschirm 33. Der Resampler 31 splattet die Farbe von jedem einzelnen Texel auf die Bildschirm-Raum-Ausgabekoordinaten (xc, yc) 29 umgebenden Pixel-Positionen, welche aus den Textur-Raum-Gitternetzkoordinaten (ug, vg) des entsprechenden Texels berechnet werden. Die durch den Mapper berechneten Bildschirm-Raum-Ausgabekoordinaten (xc, yc) 29 müssen nicht mit Pixel-Positionen im Bildschirmraum übereinstimmen. Der Bildschirm-Raum-Resampler 31 berechnet für jedes Texel die Verteilung zu den Farbwerten der Pixel-Positionen im Bildschirm-Raum 5 aus den Bildschirm-Raum-Ausgabekoordinaten (xc, yc) und der entsprechenden Farbe. Die Farbwerte für das gesamte Bild werden in einem Framebuffer 32 gespeichert. Wenn die Farbwerte für alle Pixel in einem Bild in den Framebuffer 32 geschrieben wurden, kann das Bild zum Beispiel an einen Display-Bildschirm 33 oder an einen Beamer zum Anzeigen gesendet werden.
  • Die 4A4C zeigen schematisch das Rasterplotten eines Eingaberechtecks 41 im Textur-Raum 4 und das Abbilden seiner Textur in den Bildschirmraum 5. In 4A wird ein auf eine Achse ausgerichtetes Eingaberechteck 41 im Textur-Raum 4, wie es am dem Eingang 21 der Grafik-Pipeline 20 empfangen wird, gezeigt. Auf eine Achse ausgerichtete Rechtecke sind durch nur zwei Koordinatenpaare ((ur1, vr1)(ur2, vr2)) 42 definierbar. In 4B wird das Rasterplotten des auf eine Achse ausgerichteten Rechtecks 41 gezeigt. Das Rechteck 41 wird einem Gitternetz überlagert. Jede Gitternetzposition 43 kann ein Texturelement (Texel) umfassen, welches einen Teil der im Textur-Speicher 26 gespeicherten Textur-Daten 22 bildet. Jedes Texel ist mit Textur-Raum-Gitternetzkoordinaten (ug, vg) und einer Textur-Farbe verknüpft. Ein Teil der Gitternetzpositionen 43 befinden sich außerhalb des Rechtecks 41. Andere Gitternetzpositionen befinden sich innerhalb des Rechtecks 41 und umfassen die abzubildenden Texel 44. Der Rasterplotter bestimmt, welche Texel 44 innerhalb des Rechtecks 41 liegen.
  • Nach dem Rasterplotten wird das Rechteck 41 vom Mapper 28 auf ein Ausgabeviereck im Bildschirm-Raum 5 abgebildet. 4 C zeigt ein abgebildetes Viereck 45 im Bildschirm-Raum 5. Der Mapper 28 berechnet zuerst die Abbildungskoeffizienten A–L (siehe Gleichung (3)) unter Verwendung der Textur-Raum-Eingabekoordinaten (ur, vr) 42 des Eingaberechtecks 41 und Bildschirm-Raum-Eingabekoordinaten (xh r, yh r, wh r) 47 des Ausgaberechtecks 45. Wenn die Abbildungskoeffizienten bekannt sind, werden alle Texel 44 innerhalb des Eingaberechtecks 41 auf das Ausgabeviereck 45 abgebildet. Die Bildschirm-Raum-Ausgabekoordinaten (xc, yc) der abgebildeten Texel 46 werden unter Verwendung einer Abbildungsfunktion, wie derjenigen in Gleichung (3), abgebildet. Zuerst wird die homogene Koordinate xh c berechnet, welche noch durch die dritte Koordinate (wh c) zu dividieren ist, um die tatsächliche Bildschirm-Raum-Ausgabekoordinate xc zu erhalten.
  • Dann wird yc aus der berechneten Ausgabekoordinate xc und der Eingabekoordinate vg berechnet. Bei einer bevorzugten Ausführungsform der Erfindung ist die Abbildung aus Textur-Raum in Bildschirm-Raum eine bilineare Abbildung (n = m = 1). Wenn die Abbildung bilinear ist, werden xc und yc mit den folgenden Gleichungen berechnet:
    Figure 00100001
    wobei po(vg) = (AH – DE) + (AF – BE + CH – DG)vg + (CF – BG)vg 2 p1(vg) = (EL – HI) + (EJ – FI + GL – HK)vg + (GJ – FK)vg 2 p2(vg) = (AL – DI) + (AJ – BI + CL – DK)vg + (CJ – BK)vg 2 (7)
  • Die Farbwerte der abgebildeten Texel 46 werden aus dem Textur-Speicher 26 abgerufen.
  • Die 5A und 5B zeigen eine Abbildung aus Textur-Raum in Bildschirm-Raum in einer erfindungsgemäßen 3D-Grafik-Pipeline. 5A zeigt ein Objekt im Textur-Raum 4. Die Textur des Objektes besteht aus drei auf eine Achse ausgerichteten Rechtecken 51, 52 und 53. Der Mapper bildet die Rechtecke 51, 52 und 53 auf beliebig geformte Vierecke 54, 55 und 56 im Bildschirm-Raum 5 ab (5B). Das in 5B gezeigte 3D-Objekt ist ein verzogener Würfel. Die Vierecke 54, 55 und 56 sind eine 2D-Darstellung von einem bestimmten Blickpunkt aus betrachteter nicht rechtwinkliger Vierecke in der 3D-Welt. Jedes Viereck wird von einem anderen Blickwinkel aus betrachtet, weil jedes Viereck eine andere Orientierung bezüglich des Blickpunktes aufweist.
  • Die 6A und 6B zeigen eine mit einer erfindungsgemäßen Grafik-Pipeline erstellte 2D-Darstellung einer 3D-Kugel. In 6A wird die 2D-Darstellung 61 im Bildschirm-Raum gezeigt. Die Ausgabevierecke im Bildschirm-Raum ergeben sich aus dem Abbilden auf eine Achse ausgerichteter Eingaberechtecke im Textur-Raum. In 6B weisen die Ausgabevierecke zur Unterscheidung der einzelnen Vierecke eine weiße Begrenzungslinie auf.
  • Es ist zu erwähnen, dass die vorstehend beschriebenen Ausführungsformen die Erfindung eher veranschaulichen als begrenzen und dass der Fachmann dazu befähigt sein wird, viele alternative Ausführungsformen zu entwerfen ohne von dem Umfang der angefügten Ansprüche abzuweichen. In den Ansprüchen sind in Klammern stehende Bezugszeichen nicht als Einschränkung des Anspruchs zu interpretieren. Der Gebrauch des Verbs „umfassen" und seiner Beugung schließt das Vorhandensein von anderen als in einem Anspruch erwähnten Elementen oder Schritten nicht aus. Der vor einem Element stehende unbestimmte Artikel „ein" schließt nicht aus, dass eine Mehrzahl solcher Elemente vorhanden ist. Die Erfindung ist mittels mehrere unterschiedliche Elemente enthaltender Hardware und mittels eines in geeigneter Weise programmierten Computers implementierbar. In dem mehrere Mittel aufzählenden Vorrichtungs-Anspruch können mehrere dieser Mittel in ein und derselben Hardwareeinheit eingebaut sein. Die bloße Tatsache, dass gewisse Maßnahmen in von einander unterschiedenen abhängigen Ansprüchen angeführt werden, zeigt nicht an, dass eine Kombination dieser Maßnahmen nicht auf vorteilhafte Weise verwendbar ist.

Claims (7)

  1. Eine Grafik-Pipeline (20) zur Wiedergabe von Grafiken unter Verwendung von Vorwärts-Textur-Abbildung wobei die Pipeline umfasst: einen Eingang (21) zum Empfangen von Textur-Daten (22) und Vertex-Daten (23), wobei die Textur-Daten (22) Textur-Abbildungen (51, 52, 53) in einem Textur-Raum (4) definieren, wobei jede Textur-Abbildung (51, 52, 53) mit Textur-Raum-Gitternetzkoordinaten (ug, vg) verknüpfte Texel (44) umfasst, wobei die Vertex-Daten (23) Textur-Raum-Eingabekoordinaten (ur, vr) (24, 42) von Eingaberechtecken (41) und Bildschirm-Raum-Eingabekoordinaten (xh r, yh r, wh r) (25, 47) von Ausgabevierecken (45) umfassen, wobei die Eingaberechtecke (41) in dem Textur-Raum (4) auf eine Achse ausgerichtet sind, wobei jedes der Eingaberechtecke (41) mit einem entsprechenden der Ausgabevierecke (45) verknüpft ist, einen Rasterplotter (27) zum Empfangen der Textur-Raum-Eingabekoordinaten (ur, vr) (24, 42) der Eingaberechtecke (41) und zum Bereitstellen der Textur-Raum-Gitternetzkoordinaten (ug, vg) der Texel (44) innerhalb der Eingaberechtecke und einen Mapper (28) zum Abbilden der Texel (44) innerhalb der Eingaberechtecke (41) auf die Ausgabevierecke (45), wobei das Abbilden durch Berechnen von Bildschirm-Raum-Ausgabekoordinaten (xc, yc) (46) aus den Textur-Raum-Gitternetzkoordinaten (ug, vg) der Texel (44) und den Bildschirm-Raum-Eingabekoordinaten (xh r, yh r, wh r) (25, 47) der Ausgabevierecke (45) unter Verwendung einer Abbildungsfunktion ausgeführt wird, die umfasst: – zumindest eine lineare Kombination der Textur-Raum-Gitternetzkoordinaten (ug, vg) der Texel (44) innerhalb der Eingaberechtecke (41) und – zumindest ein Produkt realer Potenzen (ug nvg mn, m ∈ R) der Textur-Raum-Gitternetzkoordinaten (ug, vg) der Texel (44) innerhalb der Eingaberechtecke (41).
  2. Eine Grafik-Pipeline (20) nach Anspruch 1, wobei die realen Potenzen natürliche Potenzen (ug nvg mn, m ∈ N) sind.
  3. Eine Grafik-Pipeline (20) nach Anspruch 2, wobei die natürlichen Potenzen gleich eins (ug, vg) sind.
  4. Eine Grafik-Pipeline (20) nach Anspruch 1, welche des Weiteren einen Bildschirm-Raum-Resampler (31) zum Splatten einer Farbe von jedem der Texel (44) auf die Bildschirm-Raum-Ausgabekoordinaten (xc, yc) (46) umgebenden Pixel-Positionen umfasst, welche aus den Textur-Raum-Gitteretzkoordinaten (ug, vg) des entsprechenden Texels (44) berechnet werden.
  5. Ein Verfahren zur Wiedergabe von auf einem Display (33) anzuzeigenden Grafiken unter Verwendung von Vorwärts-Textur-Abbildung, wobei das Verfahren umfasst: das Empfangen von Textur-Daten (22) und Vertex-Daten (23), wobei die Textur-Daten (22) Textur-Abbildungen (51, 52, 53) in einem Textur-Raum (4) definieren, wobei jede Textur-Abbildung (51, 52, 53) mit Textur-Raum-Gitternetzkoordinaten (ug, vg) verknüpfte Texel (44) umfasst, wobei die Vertex-Daten (23) Textur-Raum-Eingabekoordinaten (ur, vr) (24, 42) von Eingaberechtecken (41) und Bildschirm-Raum-Eingabekoordinaten (xh r, yh r, wh r) (25, 47) von Ausgabevierecken (45) umfassen, wobei die Eingaberechtecke (41) in dem Textur-Raum (4) auf eine Achse ausgerichtet sind, wobei jedes der Eingaberechtecke (41) mit einem entsprechenden der Ausgabevierecke (45) verknüpft ist, das Bereitstellen der Textur-Raum-Gitternetzkoordinaten (ug, vg) der Texel (44) innerhalb der Eingaberechtecke (41) aus den Textur-Raum-Eingabekoordinaten (ur, vr) (24, 42) der Eingaberechtecke (41) und das Abbilden der Texel (44) innerhalb der Eingaberechtecke (41) auf die Ausgabevierecke (45), wobei das Abbilden durch Berechnen von Bildschirm-Raum-Ausgabekoordinaten (xc, yc) (46) aus den Textur-Raum-Gitternetzkoordinaten (ug, vg) der Texel (44) und den Bildschirm-Raum-Eingabekoordinaten (xh r, yh r, wh r) (25, 47) der Ausgabevierecke (45) unter Verwendung einer Abbildungsfunktion ausgeführt wird, die umfasst: – zumindest eine lineare Kombination der Textur-Raum-Gitternetzkoordinaten (ug, vg) der Texel (44) innerhalb der Eingaberechtecke (41) und – zumindest ein Produkt realer Potenzen (ug nvg mn, m ∈ R) der Textur-Raum-Gitternetzkoordinaten (ug, vg) der Texel (44) innerhalb der Eingaberechtecke (41).
  6. Einen eine Grafik-Pipeline nach Anspruch 1 umfassenden Computer.
  7. Eine Vorrichtung zum Anzeigen von Grafiken, wobei die Vorrichtung eine Grafik-Pipeline nach Anspruch 1 umfasst und ein Display (33) zum Anzeigen der von der Pipeline wiedergegebenen Daten.
DE602005006264T 2004-05-03 2005-04-29 Grafik-pipeline zur wiedergabe von grafiken Active DE602005006264T2 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
EP04101890 2004-05-03
EP04101890 2004-05-03
PCT/IB2005/051404 WO2005106798A1 (en) 2004-05-03 2005-04-29 Graphics pipeline for rendering graphics

Publications (2)

Publication Number Publication Date
DE602005006264D1 DE602005006264D1 (de) 2008-06-05
DE602005006264T2 true DE602005006264T2 (de) 2008-08-14

Family

ID=34966273

Family Applications (1)

Application Number Title Priority Date Filing Date
DE602005006264T Active DE602005006264T2 (de) 2004-05-03 2005-04-29 Grafik-pipeline zur wiedergabe von grafiken

Country Status (8)

Country Link
US (1) US8059133B2 (de)
EP (1) EP1745440B1 (de)
JP (1) JP2007536668A (de)
KR (1) KR20070008707A (de)
CN (1) CN1981306B (de)
AT (1) ATE393439T1 (de)
DE (1) DE602005006264T2 (de)
WO (1) WO2005106798A1 (de)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090278845A1 (en) * 2005-10-03 2009-11-12 Ssd Company Limited Image generating device, texture mapping device, image processing device, and texture storing method
WO2011155766A2 (ko) * 2010-06-08 2011-12-15 엘지전자 주식회사 영상 처리 방법 및 그에 따른 영상 표시 장치
US9401046B2 (en) * 2011-02-07 2016-07-26 Intel Corporation Micropolygon splatting
EP2973423B1 (de) * 2013-03-15 2020-08-19 Robert Bosch GmbH Vorrichtung und verfahren zur anzeige einer sich wiederholenden, in einem texturatlas gespeicherten, textur
KR102465969B1 (ko) * 2015-06-23 2022-11-10 삼성전자주식회사 그래픽스 파이프라인을 수행하는 방법 및 장치
CN107464274B (zh) * 2017-08-07 2020-07-07 苏州速显微电子科技有限公司 一种基于四边形纹理单元的快速光栅化硬件实现方法
CN112819939B (zh) * 2021-03-08 2023-07-07 网易(杭州)网络有限公司 矫正uv坐标的方法、装置、设备和计算机可读存储介质

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5903270A (en) * 1997-04-15 1999-05-11 Modacad, Inc. Method and apparatus for mapping a two-dimensional texture onto a three-dimensional surface
US5831640A (en) * 1996-12-20 1998-11-03 Cirrus Logic, Inc. Enhanced texture map data fetching circuit and method
US5905500A (en) 1997-02-19 1999-05-18 Seiko Epson Corporation Method and apparatus for adaptive nonlinear projective rendering
GB9716251D0 (en) 1997-08-01 1997-10-08 Philips Electronics Nv Attribute interpolation in 3d graphics
EP1114400A4 (de) 1998-07-16 2006-06-14 Univ New York State Res Found Verfahren und vorrchtung zur echtzeitvolumenbearbeitung und universaler 3d darstellung
US6452595B1 (en) 1999-12-06 2002-09-17 Nvidia Corporation Integrated graphics processing unit with antialiasing
JP4581261B2 (ja) * 2001-02-14 2010-11-17 ソニー株式会社 演算装置、演算処理方法及び画像処理装置
WO2002103633A1 (en) 2001-06-19 2002-12-27 Nvidia Corporation System, method and computer program product for a programmable pixel processing model with instruction set
US7158141B2 (en) * 2002-01-17 2007-01-02 University Of Washington Programmable 3D graphics pipeline for multimedia applications
WO2003065308A2 (en) 2002-02-01 2003-08-07 Koninklijke Philips Electronics N.V. Stepless 3d texture mapping in computer graphics
US20050128209A1 (en) * 2002-02-01 2005-06-16 Kornelius Meinds Using texture filtering for edge anti-aliasing
US6747649B1 (en) 2002-03-19 2004-06-08 Aechelon Technology, Inc. Terrain rendering in a three-dimensional environment
US7038676B2 (en) 2002-06-11 2006-05-02 Sony Computer Entertainmant Inc. System and method for data compression
US7324116B2 (en) 2002-06-20 2008-01-29 Microsoft Corporation Systems and methods for providing controllable texture sampling
US7215340B2 (en) * 2002-07-19 2007-05-08 Mitsubishi Electric Research Laboratories, Inc. Object space EWA splatting of point-based 3D models
US7656416B2 (en) * 2002-11-27 2010-02-02 Ati Technologies, Inc. Apparatus for generating anti-aliased and stippled 3d lines, points and surfaces using multi-dimensional procedural texture coordinates
US7030884B2 (en) * 2003-02-13 2006-04-18 Hewlett-Packard Development Company, L.P. System and method for resampling texture maps
WO2004109651A1 (en) * 2003-05-30 2004-12-16 Dreamworks Shading computer-generated objects using generalized shading regions
US6989838B2 (en) * 2003-06-26 2006-01-24 Intel Corporation Methods, systems, and data structures for generating a rasterizer

Also Published As

Publication number Publication date
EP1745440B1 (de) 2008-04-23
US8059133B2 (en) 2011-11-15
WO2005106798A1 (en) 2005-11-10
CN1981306B (zh) 2010-12-08
US20090167776A1 (en) 2009-07-02
CN1981306A (zh) 2007-06-13
JP2007536668A (ja) 2007-12-13
EP1745440A1 (de) 2007-01-24
KR20070008707A (ko) 2007-01-17
ATE393439T1 (de) 2008-05-15
DE602005006264D1 (de) 2008-06-05

Similar Documents

Publication Publication Date Title
DE69636599T2 (de) Verfahren und system zur wiedergabe von grafischen objekten durch teilung in bildstücke und zusammensetzen von bildlagen zu einem wiedergabebild
DE602005006264T2 (de) Grafik-pipeline zur wiedergabe von grafiken
DE112007002991B4 (de) Computergraphikschattenvolumen unter Verwendung von hierarchischem Okklusions-Culling
DE60107130T2 (de) Sichtbarkeitsprojektion und Bildrekonstruktion für Oberflächenelemente
DE60133166T2 (de) Verfahren und Vorrichtung zur Volumendarstellung
EP0984397B1 (de) Verfahren und Vorrichtung zum Eliminieren unerwünschter Stufungen an Kanten bei Bilddarstellungen im Zeilenraster
DE69924700T2 (de) Verfahren zur Darstellung von durch Oberflächenelemente repräsentierten grafischen Objekten
DE60126967T2 (de) Verfahren und Vorrichtung für Anti-Aliasing durch Überabtastung
DE60300788T2 (de) Bild mit Feldtiefe aus Z-Pufferbilddaten und Alphamischung
DE69130545T2 (de) System zur Erzeugung einer texturierten Perspektivsicht
DE60311359T2 (de) Vorrichtungen und Verfahren zur kontrollierbaren Texturabtastung
US6879328B2 (en) Support of multi-layer transparency
DE19606357A1 (de) Bildverarbeitungsverfahren zur Darstellung von spiegelnden Objekten und zugehörige Vorrichtung
DE69331486T2 (de) Bilddatenverarbeitung
DE602004003111T2 (de) Tiefen-basiertes Antialiasing
DE19708679A1 (de) Bilddarstellungsverfahren und Vorrichtung zur Durchführung des Verfahrens
DE102018125472B4 (de) Grafikprozessor, der Abtastungs-basiertes Rendering durchführt, und Verfahren zum Betreiben desselben
US5977983A (en) Method and apparatus for adjusting graphics processing procedures based on a selectable speed/quality gauge
DE19620263A1 (de) Datensynchronisation zwischen einer Mehrzahl von asynchronen Datenaufbereitungen
US6600487B1 (en) Method and apparatus for representing, manipulating and rendering solid shapes using volumetric primitives
DE602005003575T2 (de) Vorwärts-texturabbildungs-3d-graphiksystem
DE602004011234T2 (de) Verfahren und Vorrichtung zur Erzeugung dreidimensionaler Bilder
DE69910980T2 (de) Antialiasing mit unterabtastung für textur-raender
DE60030401T2 (de) Anzeigetechniken für dreidimensionale virtuelle Realität
DE19620858A1 (de) Computergraphiksystem mit Pixel-Tiefenhinweisgebung

Legal Events

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

Owner name: TRIDENT MICROSYSTEMS (FAR EAST) LTD., GRAND CA, KY

8328 Change in the person/name/address of the agent

Representative=s name: EPPING HERMANN FISCHER, PATENTANWALTSGESELLSCHAFT

R082 Change of representative

Ref document number: 1745440

Country of ref document: EP

Representative=s name: EPPING HERMANN FISCHER, PATENTANWALTSGESELLSCH, DE

R081 Change of applicant/patentee

Ref document number: 1745440

Country of ref document: EP

Owner name: ENTROPIC COMMUNICATIONS, INC., US

Free format text: FORMER OWNER: TRIDENT MICROSYSTEMS (FAR EAST) LTD., GRAND CAYMAN, KY

Effective date: 20121023

R082 Change of representative

Ref document number: 1745440

Country of ref document: EP

Representative=s name: EPPING HERMANN FISCHER, PATENTANWALTSGESELLSCH, DE

Effective date: 20121023