DE102013013562A1 - Kachelbasierte computergraphik - Google Patents

Kachelbasierte computergraphik Download PDF

Info

Publication number
DE102013013562A1
DE102013013562A1 DE102013013562.1A DE102013013562A DE102013013562A1 DE 102013013562 A1 DE102013013562 A1 DE 102013013562A1 DE 102013013562 A DE102013013562 A DE 102013013562A DE 102013013562 A1 DE102013013562 A1 DE 102013013562A1
Authority
DE
Germany
Prior art keywords
primitives
modified
tile
primitive
sequence
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.)
Pending
Application number
DE102013013562.1A
Other languages
English (en)
Inventor
Steven John Fishwick
John William Howson
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.)
Imagination Technologies Ltd
Original Assignee
Imagination Technologies Ltd
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 Imagination Technologies Ltd filed Critical Imagination Technologies Ltd
Publication of DE102013013562A1 publication Critical patent/DE102013013562A1/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/005General purpose rendering architectures
    • 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
    • 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
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/50Lighting effects
    • G06T15/80Shading

Landscapes

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

Abstract

Es wird ein Verfahren und System zur Erzeugung und Schattierung eines Computergraphik-Bildes in einer kachelbasierten Computergraphik bereitgestellt. Geometriedaten werden geliefert und eine Vielzahl von Primitiven aus den Geometriedaten abgeleitet. Eines oder mehrere abgewandelte Primitive werden dann aus dem zumindest einem der Vielzahl von Primitiven abgeleitet. Für jede einer Vielzahl von Kacheln wird eine Objektliste abgeleitet, die Daten enthält, welche das Primitiv identifizieren, aus dem jedes abgewandelte Primitiv, das zumindest teilweise innerhalb der Kachel angeordnet ist, abgeleitet ist. Alternativ kann die Objektliste Daten enthalten, die jedes abgewandelte Primitiv, das zumindest teilweise innerhalb der Kachel angeordnet ist, identifizieren. Jede Kachel wird denn zur Anzeige unter Verwendung ihrer jeweiligen Objektliste schattiert.

Description

  • GEBIET DER ERFINDUNG
  • Die Erfindung betrifft ein Verfahren und ein System zur Erzeugung und Schattierung eines Computergraphik-Bildes in einem kachelbasierten Computergraphiksystem.
  • HINTERGRUND DER ERFINDUNG
  • Ein kachelbasiertes Rendering ist eine bekannte Technik für das Rendering von 2D- oder 3D-Computergraphik-Bildern. Ein Bild wird in eine Vielzahl von Blöcken oder Kacheln unterteilt, die typischerweise rechteckförmig sind und von denen jeder oder jede eine Vielzahl von Bildpunkten enthält.
  • Primitive Daten, die geometrische Objekte darstellen, werden aus dem Speicher gelesen und in Bildschirmplatz umgewandelt. Primitive sind oft Polygone, können aber auch Linien oder Punkte sein. Anschließend wird für jede Kachel eine Objektliste erzeugt, die die Primitive angibt, falls vorhanden, die entweder teilweise oder vollständig innerhalb dieser Kachel angeordnet sind.
  • Jede Kachel wird unabhängig gerendert. Für jede Kachel werden die in der jeweiligen Objektliste identifizierten Primitive verarbeitet und ein Entfernen nicht sichtbarer Flächen durchgeführt. Die resultierenden Bildpunktdaten für sichtbare Objekte werden dann an eine Schattierungseinheit weitergereicht, die Texturen und eine Schattierung auf jeden Bildpunkt innerhalb eines sichtbaren Objekts anwendet. Nachdem die finalen Bildpunktwerte für jeden Bildpunkt in der Kachel bestimmt wurden, werden die Bildpunktdaten für die Kachel in den Speicher zur Anzeige auf einem Ausgabegerät geschrieben.
  • Für dreieckförmige Primitive werden die primitiven Daten typischerweise Daten enthalten, die die von ihnen definierten Eckpunkte und Flächen definieren, mit einer Markierung, die die anzuwendende zutreffende Schattierung und Texturdaten angibt.
  • ZUSAMMENFASSUNG DER ERFINDUNG
  • Gemäß einem ersten Aspekt der Erfindung wird ein Verfahren zur Erzeugung und Schattierung eines Computergraphik-Bildes in einem kachelbasierten Computergraphiksystem bereitgestellt, umfassend die Schritte: Liefern von Geometriedaten; Ableiten einer Vielzahl von Primitiven aus den Geometriedaten; Ableiten einer oder mehrerer abgewandelter Primitive von zumindest einem der Vielzahl von Primitiven; für jede einer Vielzahl von Bildkacheln, Ableiten einer Objektliste, die Daten enthält, die das Primitiv identifizieren, von dem jedes abgewandelte Primitiv, das zumindest teilweise innerhalb dieser Kachel angeordnet ist, abgeleitet ist; und Schattieren jeder Kachel zur Anzeige unter Verwendung ihrer Objektliste.
  • Gemäß einem zweiten Aspekt der Erfindung wird ein Verfahren zur Erzeugung und Schattierung eines Computergraphik-Bildes in einem kachelbasierten Computergraphiksystem bereitgestellt, umfassend die Schritte: Liefern von Geometriedaten, Ableiten einer Vielzahl von Primitiven aus den Geometriedaten; Ableiten einer oder mehrerer abgewandelter Primitive von zumindest einem der Vielzahl von Primitiven; für jedes einer Vielzahl von Kacheln, Ableiten einer Objektliste, die Daten enthält, die jedes abgewandelte Primitiv, das zumindest teilweise innerhalb dieser Kachel angeordnet ist, identifizieren; und Schattieren jeder Kachel zur Anzeige unter Verwendung ihrer jeweiligen Objektliste.
  • Ausführungsbeispiele der Erfindung haben den Vorteil, das alle der abgewandelten Primitive, die (entweder ganz oder teilweise) innerhalb einer bestimmten Kachel angeordnet sind, von der Objektliste für diese Kachel bestimmt werden können.
  • Die Anmelderin hat erkannt, dass in einem kachelbasierten Computergraphiksystem, wenn abgewandelte Primitive für jede Kachel erst abgeleitet werden, nachdem die Objektliste für diese Kachel erzeugt wurde, von einem oder mehreren in dieser Objektliste identifizierten Primitiven, es möglich ist, dass nicht alle der abgewandelten Primitive, die tatsächlich in dieser Kachel angeordnet sind, erzeugt werden. Dies liegt daran, wie die Anmelderin erkannt hat, dass abgewandelte Primitive in einen oder mehreren unterschiedlichen Kacheln im Bezug zu den Primitiven, aus denen sie abgeleitet werden, angeordnet sein können.
  • Zu Illustrationszwecken ist 5 ein Diagramm, das ein Bild 170 zeigt, das in vier rechteckförmige Kacheln T1 bis T4 unterteilt ist. In diesem Diagramm ist ein Primitiv 180 vollständig innerhalb Kachel 3 (T3) angeordnet. Zwei abgewandelte Primitive, die von dem Primitiv 108 abgeleitet sind, sind als schattierte Primitive illustriert. Eines dieser abgewandelten Primitive, angezeigt durch das Bezugszeichen 190, ist ebenfalls innerhalb der Kachel 3 angeordnet. Jedoch befindet sich das andere abgewandelte Primitiv 200 in einer benachbarten Kachel, der Kachel 4 (T4).
  • Somit wäre in diesem Beispiel, wenn die abgewandelten Primitive erst während des Renderings der jeweiligen Kacheln abgeleitet werden, nachdem die Objektliste für jede Kachel abgeleitet wurde, das Bild für Kachel 4 nicht korrekt. Die Objektliste für Kachel 3 würde das Primitiv 180 identifizierende Daten enthalten. Somit könnte beim Rendering der Kachel 3 unter Verwendung ihrer Objektliste das modifizierte Primitiv 190 in Bezug auf diese Kachel abgeleitet und verarbeitet werden. Jedoch würde die Objektliste für Kachel 4 keine das Primitiv 180 identifizierende Daten enthalten, da das Primitiv 180 nicht innerhalb Kachel 4 angeordnet ist. Somit könnte beim Rendering von Kachel 4 unter Verwendung ihrer Objektliste das Primitiv 200 in Bezug auf die Kachel 4 nicht abgeleitet und verarbeitet werden.
  • Somit ermöglicht es die vorliegende Erfindung, eine genauere, bessere Bildqualität in einem kachelbasierten Computergraphik-Renderingsystem zu erzeugen.
  • In einem Ausführungsbeispiel ist zumindest eines der einen oder mehreren abgewandelten Primitive eine verschobene, skalierte und/oder gedrehte Instanz eines der Vielzahl von Primitiven.
  • Die Geometriedaten können ein Objekt für die Anzeige mit dem kachelbasierten Computergraphiksystem definieren. Das Objekt kann ein Patch von Oberflächendaten sein, und der Schritt des Ableitens der Vielzahl von Primitiven kann das Tesselieren des Patches von Oberflächendaten umfassen, um eine Vielzahl von tesselierten Primitiven abzuleiten.
  • In Ausführungsbeispielen des zweiten Aspekts der Erfindung kann jedem der einen oder mehreren abgewandelten Primitive eine eindeutige Kennung zugeordnet sein; und für jede Objektliste können die Daten, die jedes abgewandelte Primitiv, das zumindest teilweise innerhalb der Kachel angeordnet ist, identifizieren, die jeweilige eindeutige Kennung für dieses abgewandelte Primitiv umfassen.
  • Die Anmelderin hat jedoch festgestellt, dass eine alternative Lösung, wie gemäß dem ersten Aspekt der Erfindung definiert, diejenige ist, anstelle des Speicherns von Daten, die jedes abgewandelte Primitiv, das zumindest teilweise innerhalb einer bestimmten Kachel angeordnet ist, identifizieren, Daten gespeichert werden können, die das Primitiv identifizieren, von dem jedes abgewandelte Primitiv, das zumindest teilweise innerhalb der Kachel angeordnet ist, abgeleitet ist. Das bedeutet, dass dem einen oder mehreren abgewandelten Primitiven die gleiche Kennung wie dem Primitiv, von dem sie abgeleitet sind, zugewiesen werden können.
  • Das Primitiv, von dem jedes abgewandelte Primitiv, das zumindest teilweise innerhalb dieser Kachel angeordnet ist, abgeleitet ist, kann sich in einer anderen Kachel befinden.
  • Dieser Aspekt der Erfindung hat den Nachteil, dass es notwendig sein kann, die abgewandelten Primitive wieder abzuleiten, wenn jede Kachel zur Anzeige schattiert wird. Die Anmelderin hat jedoch festgestellt, dass dieser Aspekt der Erfindung den bedeutsamen Vorteil aufweist, dass die Menge an Daten, die in den Objektlisten gespeichert werden müssen, reduziert werden kann und dass es möglich sein kann, die Daten, die in den Objektlisten gespeichert werden, vollständiger zu komprimieren. Somit kann der Speicher, der benötigt wird, um die Objektlisten zu speichern und die Speicherbandbreite, die erforderlich ist, um die Objektlisten in und aus dem Speicher zu lesen und zu schreiben, vorteilhafterweise reduziert werden.
  • Beispielsweise werden benachbarten oder räumlich lokalen Primitiven, beispielsweise tesselierten Primitiven, die aus der Tesselation eines Patches von Oberflächendaten abgeleitet sind, typischerweise fortlaufende ganze Zahlen als Kennungen zugeordnet. Abfolgen von fortlaufenden ganzen Zahlen können unter Verwendung von einfachen Methoden, wie beispielsweise der Lauflängenkodierung, einfach komprimiert werden. Wenn jedoch eine ganze Zahl in einer Objektliste fehlt, weil das zugehörige Primitiv nicht innerhalb dieser Kachel angeordnet ist, ist die Effektivität dieses Komprimierungsansatzes begrenzt. Den abgewandelten Primitiven die gleiche Kennung (ganze Zahl) zuzuweisen wie den Primitiven, von denen sie abgeleitet sind, erhöht die Wahrscheinlichkeit einer längeren Lauflänge von ganzen Zahlen der Primitive, die in einer bestimmten Objektliste vorhanden sind. Dies ist insbesondere deshalb der Fall, weil in vielen Anwendungen zumindest ein abgewandeltes Primitiv in der Nähe des Primitivs sein wird, von dem es abgeleitet ist. Folglich ist es wahrscheinlich, dass, wenn ein Primitiv gerade noch außerhalb einer Kachel angeordnet ist, eines seiner abgewandelten Primitive innerhalb dieser Kachel sein kann.
  • Gemäß diesem Aspekt der Erfindung kann der Schattierungsschritt das Wiederableiten jedes abgewandelten Primitivs umfassen, das sich zumindest teilweise innerhalb der Kachel des Primitivs befindet, von dem das abgewandelte Primitiv abgeleitet ist.
  • In einem Ausführungsbeispiel kann der Schritt des Ableitens der einen oder mehreren abgewandelten Primitive das Anwenden einer Abwandlungsfunktion umfassen, die schrittweise eine Abfolge von abgewandelten Primitiven ableitet.
  • Falls eine Vielzahl von abgewandelten Primitiven in der Abfolge zumindest teilweise innerhalb einer Kachel angeordnet ist, kann das Verfahren ferner das Speichern von Daten umfassen, die die erste und/oder letzte Position in der Abfolge der Vielzahl von abgewandelten Primitiven angibt.
  • In diesem Ausführungsbeispiel kann der Schattierungsschritt das Wiederableiten der Abfolge von abgewandelten Primitiven und das Speichern von zumindest einigen der abgewandelten Primitive in einem Cache-Speicher umfassen. Das bedeutet, dass diese abgewandelten Primitive nicht mehr als einmal wiederabgeleitet werden müssen und dass die Abfolge in Bezug auf unterschiedliche Kacheln wiederaufgenommen werden kann.
  • Der Schattierungsschritt kann das Wiederableiten eines Teils der Abfolge von abgewandelten Primitiven und das Speichern des Zustands der Abwandlungsfunktion und des zuletzt wiederabgeleiteten abgewandelten Primitivs umfassen, wobei die Abwandlungsfunktion das Wiederableiten der Sequenz von abgewandelten Primitiven von dem zuletzt wiederabgeleiteten Primitiv starten kann.
  • Gemäß dem ersten Aspekt der Erfindung wird ein System zur Erzeugung und Schattierung eines Computergraphik-Bildes in einem kachelbasierten Computergraphiksystem bereitgestellt, umfassend eine Schnittstelle zu einer Speichervorrichtung; und einen Prozessor, der eingerichtet ist: Geometriedaten aus der Speichervorrichtung über die Schnittstelle zu lesen; eine Vielzahl von Primitiven aus den Geometriedaten abzuleiten; ein oder mehrere abgewandelte Primitive von zumindest einem der Vielzahl von Primitiven abzuleiten; für jede einer Vielzahl von Kacheln, eine Objektliste abzuleiten, die Daten enthält, die das Primitiv, von dem jedes abgewandelte Primitiv, das zumindest teilweise innerhalb der Kachel angeordnet ist, abgeleitet ist, identifizieren; und jede Kachel zur Anzeige unter Verwendung ihrer jeweiligen Objektliste zu schattieren.
  • Gemäß dem zweiten Aspekt der Erfindung wird ferner ein System zur Erzeugung und Schattierung eines Computergraphik-Bildes in einem kachelbasierten Computergraphiksystem bereitgestellt, umfassend eine Schnittstelle zu einer Speichervorrichtung; und einen Prozessor, der eingerichtet ist: Geometriedaten aus der Speichervorrichtung über die Schnittstelle zu lesen; eine Vielzahl von Primitiven aus den Geometriedaten abzuleiten; ein oder mehrere abgewandelte Primitive aus dem zumindest einem der Vielzahl von Primitiven abzuleiten; für jede einer Vielzahl von Kacheln eine Objektliste abzuleiten, die Daten enthält, die jedes abgewandelte Primitiv, das zumindest teilweise innerhalb der Kachel angeordnet ist, identifizieren; und jede Kachel zur Anzeige unter Verwendung ihrer jeweiligen Objektliste zu schattieren.
  • KURZE BESCHREIBUNG DER ZEICHNUNGEN
  • Ausführungsbeispiele der Erfindung werden nun lediglich beispielhaft unter Bezugnahme auf die beigefügten Zeichnungen beschrieben:
  • 1 ist ein schematisches Diagramm, das eine Vorrichtung zur Erzeugung und Schattierung eines Computergraphik-Bildes in einem kachelbasierten Renderingsystem gemäß einem bevorzugtem Ausführungsbeispiel der vorliegenden Erfindung zeigt;
  • 2 ist ein Ablaufdiagramm, das die Schritte zeigt, die von der Kacheleinheit in einem Ausführungsbeispiel der vorliegenden Erfindung ausgeführt werden;
  • 3 ist ein weiteres Ablaufdiagramm, das die Schritte zeigt, die von der Kacheleinheit in einem Ausführungsbeispiel der vorliegenden Erfindung ausgeführt werden;
  • 4 ist ein Ablaufdiagramm, das die Schritte zeigt, die von der Kacheleinheit in einem bevorzugten Ausführungsbeispiel der vorliegenden Erfindung ausgeführt werden;
  • 5 ist ein Diagramm, das ein Bild illustriert, das in eine Vielzahl von Kacheln unterteilt ist;
  • 6a und 6b sind schematische Illustrationen von Informationen, die in den Objektlisten der in 5 illustrierten Kacheln gespeichert sind gemäß einem Ausführungsbeispiel der vorliegenden Erfindung.
  • DETAILLIERTE BESCHREIBUNG DER BEVORZUGTEN AUSFÜHRUNGSBEISPIELE DER ERFINDUNG
  • In den folgenden bevorzugten Ausführungsbeispielen der vorliegenden Erfindung sind die Vielzahl von Primitiven tesselierte Primitive, erzeugt durch eine Tesselation eines Patches von Oberflächendaten. Allerdings wird darauf hingewiesen, dass die vorliegende Erfindung nicht auf dieses Ausführungsbeispiel beschränkt ist und gleichermaßen mit tesselierten Primitiven, die durch andere Mittel erzeugt werden, oder mit nicht tesselierten Primitiven verwendet werden kann.
  • 1 zeigt ein schematisches Diagramm, das eine Graphik-Pipeline zur Erzeugung und Schattierung eines Computergraphik-Bildes in einem kachelbasierten Renderingsystem gemäß diesem bevorzugten Ausführungsbeispiel der vorliegenden Erfindung zeigt.
  • Geometriedaten 10, die Objekte für die Anzeige definieren, werden an eine geometrische Verarbeitungseinrichtung 20 geliefert, die eine Vielzahl von Primitiven aus den Objektdaten ableitet. In diesem Ausführungsbeispiel umfasst die geometrische Verarbeitungseinheit 20 eine Tesselationseinheit, die eine Vielzahl von tesselierten Primitiven aus einem Patch von Oberflächendaten ableitet.
  • Die Tesselation ist eine bekannte Technik, die eine Zerlegung eines Niedrigdetailmodells, beispielsweise einer Oberfläche höherer Ordnung, allgemein innerhalb der Computergraphikindustrie als ein „Patch” bezeichnet, in eine Vielzahl von tesselierten Primitiven beinhaltet. Ein „Patch” ist typischerweise eine Funktion einer Polynomgleichung, die eine Menge an Kontrollpunkten definiert, welche die Form einer Kurve im Bezug auf ein veränderbares „t” (für eine Kurve in zwei Dimensionen) oder Domain-Koordinaten „u, v” (für eine Kurve in drei Dimensionen) beschreiben. Ein Beispiel für ein in der Computergraphik verwendetes Patch ist ein Bezier-Patch, wobei jedoch andere existieren, was einem Fachmann auf dem Gebiet bekannt ist. Zur Zeit werden am häufigsten flache Patches verwendet, beispielsweise dreieckförmige Patches, die in viele Primitive geteilt werden, die dann von einer Funktion und/oder in Abhängigkeit von einer Verschiebungshöhenkarte verschoben werden, um eine Vielzahl von tesselierten Primitiven zu erzeugen.
  • Wie dem Fachmann bekannt ist, kann die Tesselation von Patches von Oberflächendaten in einer Graphikpipeline durch verschiedene Anwendungsprogrammierschnittstellen (APIs) unterstützt werden, beispielsweise durch Microsoft® Direct3D® 11 API. Microsoft® Direct3D® 11 API unterstützt die Verschiebungsabbildung, bei der die tesselierten Primitive an einem von der Oberfläche des Patches verschobenen Ort sein können.
  • Nachdem die tesselierten Primitive abgeleitet wurden, werden die abzuwandelnden tesselierten Primitive an eine Abwandlungseinheit 30 übergeben, die ein programmatisches Element umfassen kann. Welche Primitive abgewandelt werden, wird durch die Graphikpipeline bestimmt, wie es dem Fachmann bekannt ist.
  • Für jedes der abzuwandelnden tesselierten Primitive sondert die Abwandlungseinheit 30 entweder das Primitiv aus oder wendet eine Abwandlungsfunktion auf die Geometriedaten, die mit dem Primitiv assoziiert sind, an, um eine oder mehrere geometrisch abgewandelte Instanzen dieses Primitivs zu erzeugen (abgewandelte Primitive).
  • Die Abwandlungseinheit 30 kann jede geometrische Transformation, einschließlich einer Translations-, Drehungs- oder Skalierungstransformation, oder jede Kombination hiervon anwenden. Die Abwandlungseinheit 30 kann programmtechnisch eingerichtet sein, welche geometrische Transformation anzuwenden ist. Jedes abgewandelte Primitiv kann einen vollständig unterschiedlichen Bereich des Bildes wie das Primitiv, von dem es abgeleitet ist (Eingabeprimitiv), abdecken, oder der Bereich, der von jedem abgewandelten Primitiv abgedeckt ist, kann den Bereich des Bildes, der von dem Eingabeprimitiv abgedeckt ist, überlappen.
  • In diesem Beispiel erzeugt die Funktion eine Vielzahl von abgewandelten Primitiven. Jedes der Vielzahl abgewandelter Primitive befindet sich an einem Ort, der von dem Ort des Primitivs, von dem sie abgeleitet sind, verschoben ist. Diese Primitive können inkrementell erzeugt werden. Beispielsweise kann das zuerst erzeugte Primitiv am nächsten zu der Position des Eingabeprimitives sein, jede der nachfolgend erzeugten Instanzen ist zunehmend weiter von der Position des Eingabeprimitivsentfernt. Dies ist jedoch nur ein Beispiel, und diese abgewandelten Primitive können in jeder Reihenfolge oder Abfolge einschließlich einer zufälligen Reihenfolge erzeugt werden. Es wird ferner darauf hingewiesen, dass beispielsweise in einer Unschärfeanwendung eine Vielzahl von abgewandelten Primitiven mit einem kleinen Versatz zu dem Eingabeprimitiv erzeugt werden können, ohne sich notwendigerweise in einem zunehmenden Abstand von dem Eingabeprimitiv zu befinden.
  • Die Abwandlungseinheit kann eine programmierbare Funktion auf die Kanten des Eingabeprimitivs anwenden oder eine programmierbare Funktion auf den Patch von Oberflächendaten, von dem das Eingabeprimitiv abgeleitet ist, und dann das abgewandelte Patch von Oberflächendaten tesselieren, um eine abgewandelte Instanz des Eingabeprimitivs abzuleiten.
  • Die sich ergebenden Primitive, einschließlich der nicht abgewandelten und der abgewandelten Primitive, werden an die Kacheleinheit 40 übergeben.
  • Optional können die Primitive zuerst an eine Ausschneide- und Aussonderungseinheit (nicht gezeigt) übergeben werden, die beispielsweise rückseitige, außerhalb des Bildschirms befindliche oder nicht sichtbare Primitive entfernt, und anschließend können die verbleibenden Primitive an eine Projektionseinheit (auch nicht gezeigt) übergeben werden, welche die Primitive in Bildschirmplatz transformiert.
  • 2 ist ein Ablaufdiagramm, das die von der Kacheleinheit 40 durchgeführten Schritte illustriert.
  • Zuerst teilt im Schritt 90 die Kacheleinheit 40 das Bild des Bildschirmplatzdarstellungsfeldes in eine Vielzahl von Kacheln, die jede eine Vielzahl von Bildpunkten enthält. Kacheln sind typischerweise rechteckförmig, können aber auch in anderen Formen ausgebildet sein.
  • Im Schritt 100 bestimmt die Kacheleinheit 40 anschließend für jede Kachel, ob jedes der Primitive zumindest teilweise innerhalb dieser Kachel angeordnet ist. Das bedeutet, ob zumindest ein Teil des Primitivs innerhalb eines sichtbaren Bereichs der Kachel angeordnet ist. Dies kann mit einer Reihe von bekannten Techniken durchgeführt werden.
  • In Schritt 110 leitet die Kacheleinheit 40 eine Objektliste ab, welche für jede Kachel die Primitive angibt, die zumindest teilweise innerhalb dieser Kachel angeordnet sind. Eine Objektliste wird für jede Kachel erzeugt, selbst wenn keine Primitive innerhalb einer Kachel angeordnet sind und folglich die Objektliste für diese Kachel leer ist. Dem Fachmann ist ferner klar, dass es möglich ist, dass nicht jedes Primitiv, von dem bestimmt wurde, innerhalb der Kachel angeordnet zu sein, tatsächlich in der Objektliste für diese Kachel angezeigt wird. Beispielsweise kann bei dem Schritt der Kachelung bestimmt werden, dass ein Primitiv durch andere Primitive in dieser Kachel verdeckt ist und folglich nicht innerhalb dieser Kachel sichtbar ist. Dieses Primitiv kann folglich nicht in der Objektliste für diese Kachel angezeigt werden, um eine unnötige Verarbeitung dieses Primitivs zu einem späteren Zeitpunkt zu ersparen.
  • Die nicht abgewandelten Primitive können in einer Reihe von unterschiedlichen Arten angezeigt werden. Vorzugsweise werden Kennungen zur Identifizierung jeder der Primitive in der jeweiligen Objektliste gespeichert. Jedem Primitiv kann beispielsweise ein Index zugeordnet werden, oder jedem der Eckpunkte der Primitive kann ein Index zugeordnet sein.
  • Diese Kennungen können auf die geometrischen Daten für die jeweiligen Primitive oder Eckpunkte der Primitive verweisen oder einen Zeiger hierauf bereitstellen. In diesem Ausführungsbeispiel werden jedoch für jedes tesselierte Primitiv, wie in der veröffentlichten britischen Patentanmeldung Nr. 2480012 der Anmelderin beschrieben, statt die vollständigen geometrischen Daten für das Primitiv zu speichern, Daten gespeichert, beispielsweise eine Menge an Kontrollpunkten für den Patch und die Tesselierungsparameter, aus denen die geometrischen Daten für das Primitiv nachfolgend abgeleitet werden können.
  • 3 ist ein Ablaufdiagramm, das ein Verfahren zur Kennzeichnung der abgewandelten Primitive in einem Ausführungsbeispiel der Erfindung illustriert.
  • Im Schritt 120 wird jedem der abgewandelten Primitive eine eindeutige Kennung zugeordnet. Beispielsweise kann jedem der abgewandelten Primitive eine fortlaufend ganze Zahlen zugeordnet werden. Wenn dem Eingabeprimitiv die ganze Zahl 0 zugeordnet ist, können der Vielzahl von neuen Instanzen des Primitivs jeweils die ganzen Zahlen 1, 2, 3, 4 ... n zugeordnet werden. Wenn im Schritt 130 bestimmt wird, dass eines oder mehrere der abgewandelten Primitive zumindest teilweise innerhalb einer Kachel angeordnet ist, dann wird im Schritt 140 die eindeutige Kennung für jedes dieser abgewandelten Primitive in der Objektliste für diese Kachel gespeichert.
  • Lediglich zu Illustrationszwecken zeigt die 6a die Information, die in den Objektlisten für die Kacheln 3 und 4, die in 5 illustriert sind, gespeichert werden kann. In diesem Beispiel ist zu beachten, dass dem Primitiv 180 (dem Eingabeprimitiv) die Kennung 0 zugeordnet ist. Dem abgewandelten Primitiv 190 ist die Kennung 1 zugeordnet, und dem abgewandelten Primitiv 200 ist die Kennung 2 zugeordnet. In der Objektliste für Kachel 3 sind die Kennung für das Primitiv 180 (0) und die Kennung für das abgewandelte Primitiv 200 (1) gespeichert. In der Objektliste für die Kachel 4 ist die Kennung für das abgewandelte Primitiv 200 (2) gespeichert.
  • 4 ist ein Ablaufdiagramm, das ein alternatives Verfahren zur Kennzeichnung der abgewandelten Primitive in einem bevorzugten Ausführungsbeispiel der Erfindung illustriert.
  • Im Schritt 150, wenn bestimmt wird, dass eines oder mehrere der abgewandelten Primitive innerhalb einer Kachel angeordnet werden, wird im Schritt 160 die Kennung (Index/Indizes) für das Eingabeprimitiv, aus dem die abgewandelten Primitive erzeugt sind, in der Objektliste für diese Kachel gespeichert. Mit anderen Worten kann jedem der abgewandelten Primitive die gleiche Kennung (Index/Indizes) zugeordnet werden wie dem Eingabeprimitiv. Wird beispielsweise dem Eingabeprimitiv die ganze Zahl 0 zugeordnet, dann wird jedem der abgewandelten Instanzen dieses Primitivs ebenfalls der Index 0 zugeordnet.
  • Der Index/Indizes für das Eingabeprimitiv kann einmal für jedes der abgewandelten Instanzen desjenigen Primitivs, das innerhalb der Kachel angeordnet ist, gespeichert werden, aber vorzugsweise wird der Index/Indizes für das Eingabeprimitiv nur einmal pro Liste gespeichert, unabhängig von der Anzahl der Instanzen dieses Primitivs, die innerhalb einer bestimmten Kachel angeordnet sind.
  • 6b zeigt die Information, die in den Objektlisten für die Kacheln 3 und 4 der 5 in diesem bevorzugten Ausführungsbeispiel gespeichert werden kann. In der Objektliste für Kachel 3 ist die Kennung für das Primitiv 180 (0) gespeichert. Es wird darauf hingewiesen, dass in diesem Beispiel die Kennung für das Primitiv 180 (0) nur einmal gespeichert ist, obwohl sowohl das Primitiv 180 als auch das abgewandelte Primitiv 190, das vom Primitiv 180 abgeleitet ist, innerhalb der Kachel 3 angeordnet sind. In der Objektliste für Kachel 4 ist die Kennung des Primitivs 180 (0) ebenfalls gespeichert.
  • In diesem Ausführungsbeispiel kann es somit sein, dass es nicht möglich ist, aus der Objektliste für eine Kachel zu identifizieren, welche oder wie viele Instanzen eines Primitivs, das in der Objektliste identifiziert ist, innerhalb dieser Kachel angeordnet sind. Dieses Ausführungsbeispiel hat jedoch dennoch den Vorteil, dass das Eingabeprimitiv, aus dem die abgewandelten Primitive abgeleitet sind, in der Objektliste identifiziert ist, falls zumindest eines der Instanzen dieses Primitives innerhalb der Kachel angeordnet ist, unabhängig davon, ob das Eingabeprimitiv selbst innerhalb dieser Kachel angeordnet ist. Folglich können, ähnlich wie in dem oben stehenden Ausführungsbeispiel, alle abgewandelten Primitive, die innerhalb der Kachel angeordnet sind, verarbeitet werden, um die Kachel korrekt unter Verwendung ihrer Objektliste zu schattieren. Ferner ermöglicht es dieses bevorzugte Ausführungsbeispiel die in der Objektliste gespeicherten Daten in einem hochkomprimierten Format zu speichern.
  • Wie nachfolgend noch detaillierter beschrieben, wird, um die Kachel zu schattieren, die gleiche Abwandlungsfunktion auf jedes auf der Objektliste identifizierte Primitiv erneut angewandt. Anschließend, nachdem die abgewandelten Primitive wieder erzeugt wurden, können diejenigen, falls vorhanden, die innerhalb der Kachel angeordnet sind, mit den bekannten Techniken wie zuvor beschrieben bestimmt werden.
  • Dieses Ausführungsbeispiel hat jedoch den Nachteil, dass nicht nur jedes abgewandelte Primitiv, das innerhalb der Kachel angeordnet ist, wieder erzeugt werden muss, sondern dass abgewandelte Primitive, die tatsächlich nicht innerhalb der Kachel angeordnet sind, unnötigerweise berechnet werden könnten. Unter Berücksichtigung der Tatsache, dass jedes Primitiv Hunderte oder Tausende von abgewandelten Instanzen haben kann, ist dies eine bedeutsame Vergeudung von Rechenressourcen.
  • Vorzugsweise kann deshalb eine Kennung, enthaltend eine Anzahl von Bits, in der Objektliste für eine Kachel oder in einem anderen Speicherbereich gespeichert werden, die anzeigt, welches in der Objektliste identifizierte Primitiv eine abgewandelte Instanz innerhalb der Kachel hat. Dies verhindert die Notwendigkeit, die Abwandlungsfunktion erneut auf alle die Primitive, die in der Objektliste identifiziert sind, anzuwenden, unter Beibehaltung des Vorteils, die Daten in der Objektliste in einen hochkomprimierten Format speichern zu können.
  • Wie zuvor erwähnt, werden abgewandelte Primitive oftmals inkrementell erzeugt, so dass ein abgewandeltes Primitiv aus dem Eingabeprimitiv erzeugt wird und anschließend ein zweites abgewandeltes Primitiv aus dem abgewandelten Primitiv erzeugt wird und so weiter, bis eine Abfolge von abgewandelten Primitiven abgeleitet wurde.
  • Weiter vorzugsweise wird in diesem Ausführungsbeispiel zusätzlich zur Speicherung einer Kennung, die das Primitiv identifiziert, aus dem die Abfolge von abgewandelten Primitiven abgeleitet ist, Daten, welche die erste und/oder letzte Position in der Abfolge dieser abgewandelten Primitive, die innerhalb der Kacheln angeordnet sind, angeben, gespeichert. Diese Daten können in der Objektliste für diese Kachel oder in einem anderen Speicherbereich gespeichert werden.
  • Dieses Ausführungsbeispiel hat den Vorteil, dass in dem Falle, wo nur eine Untermenge der Abfolge der abgewandelten Primitive innerhalb einer bestimmten Kachel angeordnet ist, nicht die ganze Sequenz abgewandelter Primitive wieder in Bezug auf diese Kachel abgeleitet werden muss, wie nachfolgend noch detaillierter erklärt wird.
  • In diesem Zusammenhang ist jedoch zu berücksichtigen, dass Daten, welche die erste und/oder letzte Abfolgeposition anzeigen, für jedes der Primitive, die in der Objektivliste identifiziert sind, gespeichert werden müssen. In diesem beschriebenen Ausführungsbeispiel, bei dem die Primitive tesselierte Primitive sind, ist es für den Fachmann klar, dass Tausende Primitive für jeden Patch erzeugt werden können. Das Speichern der Positionsdaten für jeden der Primitive würde eine große Menge an Speicher erfordern.
  • Die Anmelderin hat folglich festgestellt, dass ein guter Kompromiss in diesem Ausführungsbeispiel ist, die höchste und/oder niedrigste Abfolgeposition von jedem der abgewandelten Primitive, die sich innerhalb der Kachel befinden, zu bestimmen, die von den tesselierten Primitiven, die von einem Patch von Oberflächendaten abgleitet sind, abgeleitet werden. Dies bedeutet, dass nur zwei ganze Zahlen für jede Kachel für das gesamte Patch gespeichert werden müssen. Diese Technik kann in einer erhöhten Anzahl nicht erforderlicher, abgewandelter Primitive, die erzeugt werden, resultieren, erfordert aber weniger Speicher, während ein Wiederableiten einiger nicht benötigter abgewandelter Primitive vermieden wird.
  • In manchen Ausführungsbeispielen können mehr als eine Art der Abwandlungseinheit 30 vorgesehen sein, die unterschiedliche Abwandlungsfunktionen auf ein Eingabeprimitiv anwenden. In diesen Ausführungsbeispielen wird jeder Abwandlungsfunktion vorzugsweise eine Kennung zugeordnet, und die Kennung, die die Abwandlungsfunktion, die abgewandelte Primitive, die innerhalb einer bestimmten Kachel angeordnet sind, erzeugt, identifiziert, wird gespeichert. Die Kennung kann in der Objektliste für diese Kachel oder anderswo gespeichert werden.
  • In diesem Ausführungsbeispielen können Daten, welche die erste und/oder letzte Position in der Abfolge der abgewandelten Primitive anzeigen, in Bezug auf jede der abgewandelten Einheiten gespeichert werden.
  • Die Liste der Indizes kann komprimiert werden, beispielsweise unter Verwendung eines Index/Vertex-Puffers, auf eine an sich im Stand der Technik bekannte Weise.
  • Die unveröffentlichte britische Patentanmeldung Nr. 1104066.4 der Anmelderin beschreibt eine Anzahl von Techniken, um eine Liste von Indizes von tesselierten Primitiven, die durch Tesselation eines Patches von Oberflächendaten abgeleitet werden, zu komprimieren, die das Wissen über die interne Struktur eines tesselierten Patches der Oberflächendaten ausnutzen.
  • In diesem Zusammenhang ist zu würdigen, dass ein bedeutender Vorteil, den abgewandelten Primitiven die gleichen Index/Indizes wie den Eingabeprimitiven zuzuordnen, darin liegt, dass die gleichen Komprimierungstechniken eingesetzt werden können, um den Index/Indizes zu komprimieren.
  • Die Objektliste 50 kann im Speicher, beispielsweise in einem Puffer, gespeichert werden.
  • Unter erneuter Bezugnahme auf die 1 werden in einem bevorzugtem Ausführungsbeispiel der Erfindung, um jede Kachel für die Anzeige zu schattieren, die Objektliste für die Kachel gelesen und, wo notwendig, die in der Objektliste gespeicherte Liste der Indizes dekomprimiert.
  • In diesem Ausführungsbeispiel werden die Indizes für die tesselierten Primitive und die assoziierten Patch-Daten und die Tesselationsfaktoren an eine Tesselationseinheit (nicht gezeigt) übergeben. Die Tesselationseinheit tesseliert erneut den Patch von Oberflächendaten, um geometrische Daten für die tesselierten Primitive, die in der Objektliste identifiziert sind, abzuleiten.
  • Eine Abwandlungsfunktion kann dann erneut durch die Abwandlungseinheit 60 auf die geometrischen Daten, die mit einen oder mehreren der Primitive assoziiert sind, angewendet werden, um den einen oder die mehreren abgewandelten Primitive wiederabzuleiten, beispielsweise wenn Daten gelesen werden, die angeben, dass eine abgewandelte Instanz dieses Primitivs innerhalb der Kachel angeordnet ist. Die Abwandlungseinheit 60 kann die gleiche Einheit wie die Abwandlungseinheit 30 oder eine getrennte Einheit sein, welche die gleiche Abwandlungsfunktion wie die Abwandlungseinheit 30 anwendet. Wo mehrere Abwandlungseinheiten, die unterschiedliche Abwandlungsfunktionen anwenden, verwendet werden, um abgewandelte Primitive vor der Kachelung zu erzeugen, ist zu erwähnen, dass die Abwandlungseinheit 60 die gleiche Abwandlungsfunktion wie die Funktion, die auf das Eingabeprimitiv vor der Kachelung angewendet wird, anwenden muss. Welche Abwandlungsfunktion angewendet werden sollte, kann beispielsweise durch Auslesen der Abwandlungsfunktionskennung für dieses Primitiv bestimmt werden.
  • Wie vorstehend erwähnt, können manche Abwandlungseinheiten inkrementell arbeiten, und obwohl es bekannt ist, welche Instanzen des Primitivs innerhalb einer besonderen Kachel sind, kann es nicht möglich sein, nur diese Instanzen zu erzeugen. In diesem Fall können alle von der Abwandlungseinheit 60 erzeugten abgewandelten Instanzen im lokalen Speicher, beispielsweise in einem Cache-Speicher, gespeichert werden.
  • Dies hat den Vorteil, dass in einem Fall, wo die Instanzen über mehr als eine Kachel verteilt sind, die Abwandlungseinheit möglicherweise nicht noch ein zweites Mal für die gleichen Primitive angewendet werden muss in Bezug auf eine weitere Kachel. Bevor die Abwandlungseinheit 60 auf ein Primitiv, das in der Objektliste identifiziert ist, angewendet wird, kann bestimmt werden, ob die abgewandelte Primitiv-Instanz bereits in dem Cache-Speicher gespeichert ist. Ist dies der Fall, so besteht kein Bedarf, die Abwandlungseinheit 60 erneut auf dieses Primitiv anzuwenden.
  • In einem alternativen Ausführungsbeispiel kann die Abwandlungseinheit 60 angehalten werden, nachdem das letzte Primitiv, das innerhalb einer bestimmten Kachel angeordnet ist, erzeugt wurde. Dies kann beispielsweise durch Auslesen von Daten, die das letzte Primitiv in einer Abfolge, die sich innerhalb dieser Kachel befindet, anzeigen, bestimmt werden. In diesem Ausführungsbeispiel kann der Zustand der Abwandlungseinheit 60 gespeichert werden, ebenso wie das zuletzt erzeugte abgewandelte Primitiv, so dass die Abwandlungseinheit die Durchführung an der Stelle fortsetzen kann, wo sie für eine andere Kachel gestoppt hat. Folglich muss, wo beispielsweise die ersten 100 abgewandelten Primitive erzeugt wurden und anschließend das 101ste abgewandelte Primitiv durch eine nachfolgende Kachel benötigt wird, die Abwandlungseinheit nicht anfangen, die Abfolge abgewandelter Primitive von Beginn an wiederabzuleiten. Das erste abgewandelte Primitiv, das innerhalb einer bestimmten Kachel angeordnet ist, kann durch Auslesen der Daten bestimmt werden, welche die Position des ersten abgewandelten Primitivs in der Abfolge, die in dieser Kachel angeordnet ist, anzeigen.
  • In diesem alternativen Ausführungsbeispiel kann, bevor die Abwandlungseinheit 60 auf ein Primitiv angewendet wird, das in der Objektliste identifiziert ist, bestimmt werden, ob ein abgewandeltes Primitiv mit derselben Kennung in dem Cache-Speicher gespeichert ist. Ist dies der Fall, kann das nächstgelegene abgewandelte Primitiv in der Abfolge zu dem benötigten abgewandelten Primitiv geholt werden, und wo der Zustand der Abwandlungseinheit gespeichert wurde, kann die Abwandlungseinheit die Durchführung ausgehend von diesem abgewandelten Primitiv fortsetzen, bis das benötigte abgewandelte Primitiv erzeugt ist. In Anwendungen, bei denen das abgewandelte Primitiv inkrementell erzeugt werden muss, muss das nächstgelegene abgewandelte Primitiv, das vorher in der Abfolge ist, nicht notwendigerweise das naheliegenste abgewandelte Primitiv sein.
  • Nachdem die abgewandelten Instanzen erneut erzeugt wurden, kann, falls erforderlich, bestimmt werden, welche der Instanzen sich innerhalb einer bestimmten Kachel befinden, unter Verwendung aus dem Stand der Technik bekannter Ansätze wie vorstehend beschrieben.
  • Für jede Kachel können, nachdem Daten für jedes der abgewandelten Primitive und nicht abgewandelten Primitive, die innerhalb der Kachel angeordnet sind, erhalten wurden, die Primitive verarbeitet werden, um ein Bild mit aus dem Stand der Technik bekannten Techniken zu rendern.
  • Beispielsweise können die Primitive an eine Einheit 70 zur Entfernung versteckter Flächen übergeben werden, die alle Flächen entfernt, die in der Kachel nicht sichtbar sind, und die resultierenden Bildpunkte können an eine Textur- und Schattierungseinheit übergeben werden, die eine Bildpunkt- oder Texturschattierung anwendet, bevor die finalen Bildpunkte für die Anzeige in den Speicher geschrieben werden.
  • ZITATE ENTHALTEN IN DER BESCHREIBUNG
  • Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
  • Zitierte Patentliteratur
    • GB 2480012 [0051]
    • GB 1104066 [0071]

Claims (24)

  1. Ein Verfahren zur Erzeugung und Schattierung eines Computergraphik-Bildes in einem kachelbasierten Computergraphiksystem, umfassend die Schritte: Liefern von Geometriedaten; Ableiten einer Mehrzahl von Primitiven aus den Geometriedaten; Ableiten eines oder mehrerer Primitive aus zumindest einem der Vielzahl von Primitiven; für jede einer Vielzahl von Kacheln, Ableiten einer Objektliste, die Daten enthält, die das Primitiv identifizieren, aus dem jedes abgewandelte Primitiv, das zumindest teilweise innerhalb dieser Kachel angeordnet ist, abgeleitet ist; und Schattieren jeder Kachel zur Anzeige unter Verwendung ihrer jeweiligen Objektliste.
  2. Ein Verfahren nach Anspruch 1, wobei zumindest eines des einen oder der mehreren abgewandelten Primitive eine verschobene, skalierte und/oder gedrehte Instanz eines der Vielzahl von Primitiven ist.
  3. Verfahren nach Anspruch 1 oder 2, wobei die Geometriedaten ein Objekt zur Anzeige mit dem kachelbasierten Computergraphiksystem definieren.
  4. Verfahren nach einem der vorhergehenden Ansprüche, wobei das Objekt ein Patch von Oberflächendaten ist; und der Schritt des Ableitens der Vielzahl von Primitiven ein Tesselieren des Patches von Oberflächendaten umfasst, um eine Vielzahl von tesselierten Primitiven abzuleiten.
  5. Verfahren nach einem der vorhergehenden Ansprüche, wobei das Primitiv, aus dem jedes abgewandelte Primitiv, das zumindest teilweise innerhalb der Kachel angeordnet ist, abgeleitet ist, in einer anderen Kachel angeordnet ist.
  6. Verfahren nach einen der vorhergehenden Ansprüche, wobei der Schattierungsschritt das Wiederableiten jedes abgewandelten Primitivs, das zumindest teilweise innerhalb der Kachel angeordnet ist, aus dem Primitiv, aus dem dieses abgewandelte Primitiv abgeleitet ist, umfasst.
  7. Verfahren nach einem der vorhergehenden Ansprüche, wobei der Schritt des Ableitens des einen oder der mehreren abgewandelten Primitive ein Anwenden einer Abwandlungsfunktion, die eine Abfolge abgewandelter Primitive inkrementell ableitet, umfasst.
  8. Verfahren nach Anspruch 7, wobei eine Vielzahl von abgewandelten Primitiven in der Abfolge zumindest teilweise innerhalb einer Kachel angeordnet ist, und ferner umfassend den Schritt des Speicherns von Daten, welche die erste und/oder letzte Position in der Abfolge der Vielzahl von abgewandelten Primitiven angeben.
  9. Verfahren nach Anspruch 7 oder 8, wenn abhängig von Anspruch 6, wobei der Schattierungsschritt ein Wiederableiten der Abfolge der abgewandelten Primitive und ein Speichern zumindest eines Teils der Abfolge von abgewandelten Primitiven in einem Cache-Speicher umfasst.
  10. Ein Verfahren nach Anspruch 9, umfassend ein Wiederableiten eines Teils der Abfolge von abgewandelten Primitiven und Speichern des Zustandes der Abwandlungsfunktion und des zuletzt wiederabgeleiteten abgewandelten Primitivs, wobei die Abwandlungsfunktion das Wiederableiten der Abfolge von abgewandelten Primitiven von dem zuletzt wiederabgeleiteten Primitiv starten kann.
  11. Ein Verfahren zur Erzeugung und Schattierung eines Computergraphik-Bildes in einem kachelbasierten Computergraphiksystem, umfassend die Schritte: Liefern von Geometriedaten; Ableiten einer Vielzahl von Primitiven aus den Geometriedaten; Ableiten eines oder mehrerer abgewandelter Primitive aus dem zumindest einem der Vielzahl von Primitiven; für jede einer Vielzahl von Kacheln, Ableiten einer Objektliste, die Daten enthält, die jedes abgewandelte Primitiv, das zumindest teilweise innerhalb dieser Kachel angeordnet ist, identifizieren; und Schattieren jeder Kachel zur Anzeige unter Verwendung ihrer jeweiligen Objektliste.
  12. System zur Erzeugung und Schattierung eines Computergraphik-Bildes in einem kachelbasierten Computergraphiksystem, umfassend: eine Schnittstelle zu einer Speichervorrichtung; und einen Prozessor, der eingerichtet ist: Geometriedaten aus der Speichervorrichtung über die Schnittstelle zu lesen; eine Vielzahl von Primitiven aus den Geometriedaten zu lesen; eines oder mehrere abgewandelte Primitive aus dem zumindest einem der Vielzahl von Primitiven abzuleiten; für jede einer Vielzahl von Kacheln, eine Objektliste abzuleiten, die Daten enthält, welche das Primitiv identifizieren, aus dem jedes abgewandelte Primitiv, das zumindest teilweise innerhalb der Kachel angeordnet ist, abgeleitet ist; und jede Kachel zur Anzeige unter Verwendung ihrer jeweiligen Objektliste zu schattieren.
  13. System nach Anspruch 12, wobei der Prozessor eingerichtet ist, die Objektliste in der Speichervorrichtung über die Schnittstelle zu speichern.
  14. System nach Anspruch 12 oder 13, wobei zumindest eines des einen oder der mehreren abgewandelten Primitive eine verschobene, skalierte und/oder gedrehte Instanz eines der Vielzahl von Primitiven ist.
  15. System nach einem der Ansprüche 12 bis 14, wobei die Geometriedaten ein Objekt zur Anzeige mit dem auf Kacheln basierenden Computergraphiksystem definieren.
  16. System nach Anspruch 15, wobei das Objekt ein Patch von Oberflächendaten ist; und der Prozessor eingerichtet ist, die Vielzahl von Primitiven durch Tesselieren des Patches von Oberflächendaten abzuleiten, um eine Vielzahl von tesselierten Primitiven abzuleiten.
  17. System nach einem der Ansprüche 12 bis 16, wobei das Primitiv, aus dem jedes der abgewandelten Primitive, die zumindest teilweise innerhalb dieser Kacheln angeordnet sind, abgeleitet ist, sich in einer anderen Kachel befindet.
  18. System nach einem der Ansprüche 12 bis 17, wobei der Prozessor eingerichtet ist, jede Kachel zur Anzeige zu schattieren durch Wiederableiten jedes abgewandelten Primitivs, das zumindest teilweise innerhalb der Kachel angeordnet ist, aus dem Primitiv, aus dem dieses modifizierte Primitiv abgeleitet ist.
  19. System nach einem der Ansprüche 12 bis 18, wobei der Prozessor eingerichtet ist, das eine oder die mehreren abgewandelten Primitive durch Anwendung einer Abwandlungsfunktion abzuleiten, die eine Abfolge von abgewandelten Primitiven inkrementell ableitet.
  20. System nach Anspruch 19, wobei eine Vielzahl von abgewandelten Primitiven in der Abfolge zumindest teilweise innerhalb einer Kachel angeordnet is, und der Prozessor eingerichtet ist, Daten, welche die erste und/oder letzte Position in der Abfolge der Vielzahl von abgewandelten Primitiven angeben, zu speichern.
  21. System nach Anspruch 19 oder 20, wenn abhängig von Anspruch 18, wobei der Prozessor eingerichtet ist, die Abfolge von abgewandelten Primitiven wiederabzuleiten und zumindest einen Teil der Abfolge der abgewandelten Primitive in einem Cache-Speicher zu speichern.
  22. System nach Anspruch 21, wobei der Prozessor eingerichtet ist, einen Teil der Sequenz von abgewandelten Primitiven wiederabzuleiten und den Zustand der Abwandlungsfunktion und des zuletzt wiederabgeleiteten Primitivs zu speichern, wobei die Abwandlungsfunktion ausgehend von dem zuletzt wiederabgeleiteten Primitiv beginnen kann, die Abfolge von abgewandelten Primitiven wiederabzuleiten.
  23. System zur Erzeugung und Schattierung eines Computergraphik-Bildes in einem kachelbasierten Computergraphiksystem, umfassend: eine Schnittstelle zu einer Speichervorrichtung; und einen Prozessor, der eingerichtet ist: Geometriedaten aus der Speichervorrichtung über die Schnittstelle zu lesen; eine Vielzahl von Primitiven aus den Geometriedaten abzuleiten; eines oder mehrere abgewandelte Primitive aus dem zumindest einem der Vielzahl von Primitiven abzuleiten; für jede einer Vielzahl von Kacheln, eine Objektliste abzuleiten, die Daten enthält, die jedes abgewandelte Primitiv, das zumindest teilweise innerhalb der Kachel angeordnet ist, identifizieren; und Schattieren jeder Kachel zur Anzeige unter Verwendung ihrer jeweiligen Objektliste.
  24. System nach Anspruch 23, wobei der Prozessor eingerichtet ist, die Objektliste in der Speichervorrichtung über die Schnittstelle zu speichern.
DE102013013562.1A 2012-09-12 2013-08-14 Kachelbasierte computergraphik Pending DE102013013562A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
GB1216288.9A GB2500284B (en) 2012-09-12 2012-09-12 Tile based computer graphics
GB1216288.9 2012-09-12

Publications (1)

Publication Number Publication Date
DE102013013562A1 true DE102013013562A1 (de) 2014-03-13

Family

ID=47137341

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102013013562.1A Pending DE102013013562A1 (de) 2012-09-12 2013-08-14 Kachelbasierte computergraphik

Country Status (4)

Country Link
US (6) US9633405B2 (de)
CN (2) CN107256573B (de)
DE (1) DE102013013562A1 (de)
GB (1) GB2500284B (de)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2500284B (en) * 2012-09-12 2014-04-30 Imagination Tech Ltd Tile based computer graphics
US10169906B2 (en) 2013-03-29 2019-01-01 Advanced Micro Devices, Inc. Hybrid render with deferred primitive batch binning
US10957094B2 (en) * 2013-03-29 2021-03-23 Advanced Micro Devices, Inc. Hybrid render with preferred primitive batch binning and sorting
KR102048885B1 (ko) * 2013-05-09 2019-11-26 삼성전자 주식회사 그래픽 프로세싱 유닛, 이를 포함하는 그래픽 프로세싱 시스템, 및 이를 이용한 렌더링 방법
KR102116708B1 (ko) * 2013-05-24 2020-05-29 삼성전자 주식회사 그래픽스 프로세싱 유닛
GB2521171B (en) * 2013-12-11 2020-02-05 Advanced Risc Mach Ltd Clipping of graphics primitives
US9626795B2 (en) * 2013-12-17 2017-04-18 Intel Corporation Reducing shading by merging fragments from the adjacent primitives
US9734624B2 (en) * 2014-04-30 2017-08-15 Lucasfilm Entertainment Company Ltd. Deep image data compression
GB2532495B (en) * 2014-11-21 2018-05-02 Advanced Risc Mach Ltd Graphics processing systems
AU2014265139A1 (en) * 2014-11-24 2016-06-09 Canon Kabushiki Kaisha Method, system and apparatus for rendering a document
US9619937B2 (en) * 2015-03-05 2017-04-11 Arm Limited Methods and apparatus for processing computer graphics primitives in tile-based graphics rendering system
GB2542133B (en) 2015-09-08 2020-05-27 Imagination Tech Ltd Graphics processing method and system for processing sub-primitives
GB2546810B (en) * 2016-02-01 2019-10-16 Imagination Tech Ltd Sparse rendering
EP3671650A1 (de) 2018-12-21 2020-06-24 Imagination Technologies Limited Primitive blockbasierte rasterung in grafikverarbeitungssystemen
EP3671652A1 (de) 2018-12-21 2020-06-24 Imagination Technologies Limited Cache mit transformierten geometriedaten für grafikverarbeitungssysteme
GB2580923B (en) * 2019-01-29 2021-12-15 Imagination Tech Ltd Graphics processing systems with expansion transformation stage masks
EP3690798A1 (de) 2019-01-29 2020-08-05 Imagination Technologies Limited Speicher zur speicherung von untransformierten primitiven blöcken
US11010862B1 (en) * 2019-11-14 2021-05-18 Advanced Micro Devices, Inc. Reduced bandwidth tessellation factors

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB1104066A (en) 1964-08-14 1968-02-21 Bofors Ab An unloading mechanism for an automatic gun
GB2480012A (en) 2010-04-30 2011-11-02 Imagination Tech Ltd Programmable tessellation in a tile based 3D image rendering system

Family Cites Families (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US453164A (en) * 1891-05-26 Art of repairing metal structures by the aid of electricity
JP2809665B2 (ja) * 1989-02-15 1998-10-15 日立金属株式会社 エッチング性に優れるシャドウマスク材料
WO2000011607A1 (en) * 1998-08-20 2000-03-02 Apple Computer, Inc. Deferred shading graphics pipeline processor
US6563547B1 (en) * 1999-09-07 2003-05-13 Spotware Technologies, Inc. System and method for displaying a television picture within another displayed image
AU2001292559A1 (en) * 2000-08-24 2002-03-04 Immersive Technologies Llc Computerized image system
US7020382B2 (en) * 2001-07-12 2006-03-28 Thomson Licensing Modifying video by inserting shadow intra pictures
US7167171B2 (en) 2004-06-29 2007-01-23 Intel Corporation Methods and apparatuses for a polygon binning process for rendering
GB0524804D0 (en) * 2005-12-05 2006-01-11 Falanx Microsystems As Method of and apparatus for processing graphics
US7941002B2 (en) * 2006-12-01 2011-05-10 Hewlett-Packard Development Company, L.P. Apparatus and methods of producing photorealistic image thumbnails
US9965886B2 (en) * 2006-12-04 2018-05-08 Arm Norway As Method of and apparatus for processing graphics
WO2008147877A1 (en) * 2007-05-22 2008-12-04 Trimble Navigation Limited Handling raster image 3d objects
US8189855B2 (en) * 2007-08-31 2012-05-29 Accenture Global Services Limited Planogram extraction based on image processing
GB0723536D0 (en) 2007-11-30 2008-01-09 Imagination Tech Ltd Multi-core geometry processing in a tile based rendering system
GB2458488C (en) * 2008-03-19 2018-09-12 Imagination Tech Ltd Untransformed display lists in a tile based rendering system
WO2009150529A1 (en) * 2008-06-13 2009-12-17 Imax Corporation Methods and systems for reducing or eliminating perceived ghosting in displayed stereoscopic images
US8169437B1 (en) * 2008-07-09 2012-05-01 Nvidia Corporation Distributed tessellation topology generator
CN102362485B (zh) * 2008-08-04 2015-05-13 人眼科技有限公司 用于减少伪像的方法和系统
GB0900700D0 (en) * 2009-01-15 2009-03-04 Advanced Risc Mach Ltd Methods of and apparatus for processing graphics
US8010913B2 (en) * 2009-04-14 2011-08-30 Synopsys, Inc. Model-based assist feature placement using inverse imaging approach
US8917271B2 (en) * 2009-10-05 2014-12-23 Nvidia Corporation Redistribution of generated geometric primitives
KR101609266B1 (ko) * 2009-10-20 2016-04-21 삼성전자주식회사 타일 기반의 랜더링 장치 및 방법
US8692848B2 (en) * 2009-12-17 2014-04-08 Broadcom Corporation Method and system for tile mode renderer with coordinate shader
US8854365B2 (en) 2010-01-15 2014-10-07 Microsoft Corporation Rendering parametric surface patches
US9058685B2 (en) * 2010-03-11 2015-06-16 Broadcom Corporation Method and system for controlling a 3D processor using a control list in memory
US8339409B2 (en) * 2011-02-16 2012-12-25 Arm Limited Tile-based graphics system and method of operation of such a system
US10089774B2 (en) * 2011-11-16 2018-10-02 Qualcomm Incorporated Tessellation in tile-based rendering
US8854374B2 (en) * 2011-12-23 2014-10-07 Advanced Micro Devices, Inc. Tessellation patterns
US9183664B2 (en) * 2012-05-03 2015-11-10 Apple Inc. Tiled forward shading with improved depth filtering
GB2500284B (en) * 2012-09-12 2014-04-30 Imagination Tech Ltd Tile based computer graphics
US9836878B2 (en) * 2013-03-15 2017-12-05 Nvidia Corporation System, method, and computer program product for processing primitive specific attributes generated by a fast geometry shader
US20160035128A1 (en) * 2014-08-03 2016-02-04 Mediatek Singapore Pte. Ltd. Graphics processing system for performing deferred vertex attribute shading based on split vertex bitstreams and related graphics processing method
GB2532495B (en) * 2014-11-21 2018-05-02 Advanced Risc Mach Ltd Graphics processing systems

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB1104066A (en) 1964-08-14 1968-02-21 Bofors Ab An unloading mechanism for an automatic gun
GB2480012A (en) 2010-04-30 2011-11-02 Imagination Tech Ltd Programmable tessellation in a tile based 3D image rendering system

Also Published As

Publication number Publication date
US10453164B2 (en) 2019-10-22
US10685420B2 (en) 2020-06-16
US11922534B2 (en) 2024-03-05
CN107256573B (zh) 2020-11-06
US20140071150A1 (en) 2014-03-13
US11282162B2 (en) 2022-03-22
US10885602B2 (en) 2021-01-05
US20220164919A1 (en) 2022-05-26
CN103679627B (zh) 2017-05-10
GB201216288D0 (en) 2012-10-24
US20200013139A1 (en) 2020-01-09
CN103679627A (zh) 2014-03-26
US20210019859A1 (en) 2021-01-21
US9633405B2 (en) 2017-04-25
GB2500284A (en) 2013-09-18
CN107256573A (zh) 2017-10-17
GB2500284B (en) 2014-04-30
US20200273141A1 (en) 2020-08-27
US20170178280A1 (en) 2017-06-22

Similar Documents

Publication Publication Date Title
DE102013013562A1 (de) Kachelbasierte computergraphik
DE112012001132B4 (de) Kompression einer tessellierten Primitivindexliste in einem kachelbasierten Rendering-System
JP5847159B2 (ja) タイル・ベース・レンダリング・システムにおけるサーフェスのパッチのテッセレーション
DE102016122297A1 (de) Mehrfach-Durchlauf-Rendering in einer Bildschirm-Raum-Pipeline
DE102015115232A1 (de) Verbessertes Anti-Aliasing durch räumliches und/oder zeitliches Variieren von Sample-Mustern
DE102013020613A1 (de) Umgehung der Pixel-Schattierung für die grafische Bilderzeugung mit geringer Leistung
DE102013114176A1 (de) Tessellieren von Oberflächendatensegmenten beim kachelbasierten Rendern von Computergrafik
DE102017108096A1 (de) System, verfahren und computerprogrammprodukt zum rendern bei variablen abtastraten mittels projektiver geometrischer verzerrung
DE102013020614A1 (de) Mit Mehrfachauflösung konsistente Rastereinteilung
DE102016109905A1 (de) Stückweise lineare unregelmäßige Rasterisierung
DE102010018701A1 (de) Bilderzeugungstechniken
DE112018004343T5 (de) Mehrraum-rendering mit konfigurierbaren transformationsparametern
DE102011011947A1 (de) Kantenverarbeitungstechniken
DE102010033318A1 (de) Techniken zum Speichern und Abrufen von Bilddaten
DE102009037288A1 (de) Fragment-Shader für ein Hybrid-Raytracing-System und Betriebsverfahren
DE102013018445A1 (de) Festlegung eines nachgeordneten Bilderzeugungszustands in einer vorgeordneten Schattierungseinheit
DE102013017639A1 (de) Zwischenspeicherung von adaptiv dimensionierten Cache-Kacheln in einem vereinheitlichen L2-Cache-Speicher mit Oberflächenkomprimierung
DE102010048486A1 (de) Bildverarbeitungstechniken
DE102012210521A1 (de) Unbeschnittene Zeit- und Linsen-Begrenzungen für verbesserte Probentest- Effizienz bei Bild-Rendering
DE602004003111T2 (de) Tiefen-basiertes Antialiasing
DE102013017981A1 (de) Optimierung einer Dreieck-Topologie für Pfad-Bilderzeugung
DE102010046507A1 (de) Berechnung der Detailstufe für die anisotrope Filterung
DE4341304A1 (de) Verfahren und Vorrichtung zur Verwendung eines Videopuffers
DE102018125295A1 (de) Vorrichtung und Verfahren zum Ausführen eines kachelbasierten Renderns unter Verwendung von vorabgerufenen Grafikdaten
DE102015115576A1 (de) Grafikverarbeitungseinheit, ein Grafikverarbeitungssystem mit derselben, und ein dieselbe verwendendes Anti-Aliasing-Verfahren

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R016 Response to examination communication
R016 Response to examination communication