DE102013114176A1 - Tessellieren von Oberflächendatensegmenten beim kachelbasierten Rendern von Computergrafik - Google Patents

Tessellieren von Oberflächendatensegmenten beim kachelbasierten Rendern von Computergrafik Download PDF

Info

Publication number
DE102013114176A1
DE102013114176A1 DE102013114176.5A DE102013114176A DE102013114176A1 DE 102013114176 A1 DE102013114176 A1 DE 102013114176A1 DE 102013114176 A DE102013114176 A DE 102013114176A DE 102013114176 A1 DE102013114176 A1 DE 102013114176A1
Authority
DE
Germany
Prior art keywords
tile
segment
depth value
hidden
tessellated
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
DE102013114176.5A
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 DE102013114176A1 publication Critical patent/DE102013114176A1/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/10Geometric effects
    • G06T15/40Hidden part removal
    • G06T15/405Hidden part removal using Z-buffer
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/10Geometric effects
    • G06T15/40Hidden part removal
    • 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
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/10Geometric effects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • G06T17/10Constructive solid geometry [CSG] using solid primitives, e.g. cylinders, cubes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • G06T17/20Finite element generation, e.g. wire-frame surface description, tesselation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/04Texture mapping

Abstract

Ein Verfahren und ein System zum Aussondern eines Oberflächendatensegments von einer oder mehreren Kacheln in einem kachelbasierten Computergrafiksystem. Ein Renderraum wird in eine Mehrzahl von Kacheln unterteilt und ein Oberflächendatensegment wird gelesen. Dann wird wenigstens ein Teil des Segments analysiert, um Daten zu bestimmen, die einen über wenigstens eine Kachel bestimmten Begrenzungstiefenwert repräsentieren. Dies kann das Tessellieren des Oberflächendatensegments zum Ableiten von mehreren tessellierten Primitiven und das Analysieren wenigstens einiger der tessellierten Primitive umfassen. Für jede Kachel, in der sich das Segment befindet, werden dann die den Begrenzungstiefenwert repräsentierenden Daten zum Bestimmen benutzt, ob das Segment in der Kachel verborgen ist, und wenigstens ein Teil des Segments wird gerendert, wenn ermittelt wird, dass das Segment in wenigstens einer Kachel nicht verborgen ist.

Description

  • BEREICH DER ERFINDUNG
  • Die vorliegende Erfindung betrifft ein Verfahren und ein System zum Aussondern von verborgenen tessellierten Primitiven in einem kachelbasierten Computergrafik-Rendersystem.
  • HINTERGRUND DER ERFINDUNG
  • Kachelbasiertes Rendern ist eine bekannte Technik zum Rendern von 2D- oder 3D-Computergrafikbildern. Ein Renderraum wird in mehrere als Kacheln oder Blöcke bezeichnete Regionen unterteilt, die typischerweise rechteckig sind und jeweils mehrere Pixel umfassen. Der Renderraum kann einem Bild zur Anzeige auf einem Bildschirm entsprechen, aber es sind auch andere Render-Ziele wie z. B. Texturdaten in einem Speicher möglich. Kacheln können verschiedene Größen haben, aber eine typische Größe ist zum Beispiel 16×16 Pixel. Ein Bild mit hoher Bildschirmauflösung hat typischerweise 1280×1024 Pixel. Daher kann ein Bild mit hoher Bildschirmauflösung in 5120 Kacheln (jeweils mit 16×16 Pixeln) unterteilt werden.
  • In einem kachelbasierten Computergrafiksystem werden primitive Daten typischerweise aus dem Speicher gelesen und in Bildschirmraum umgewandelt. Primitive sind häufig Polygone, z. B. Dreiecke, sie können aber auch Linien oder Punkte sein. Dann wird eine Anzeige-Liste für jede Kachel erzeugt, die ggf. Primitive anzeigt, die sich entweder ganz oder teilweise in der Kachel befinden. Die Anzeige beinhaltet häufig eine Kennung oder einen Index für jedes Primitiv, das geometrische Daten referenziert oder einen Zeiger darauf erzeugt, die mit dem in einem Parameterspeicher gespeicherten Primitiv assoziiert sind. Die Anzeige-Listen sind im Speicher gespeichert.
  • Jede Kachel wird dann unabhängig anhand ihrer Anzeige-Liste gerendert.
  • Für jede Kachel werden die in der jeweiligen Anzeige-Liste identifizierten Primitive verarbeitet und verborgene Oberflächen können entfernt werden. Die resultierenden Pixeldaten für sichtbare Fragmente werden dann zu einer Schattierungseinheit geleitet, die Texturen und Schattierung auf jedes sichtbare Pixel innerhalb eines Objekts anwendet. Nach dem Bestimmen endgültiger Pixelwerte für jedes Pixel in der Kachel werden die Pixeldaten für die Kachel in einen Speicher zur Anzeige auf einem Ausgabegerät geschrieben.
  • Verborgene Flächen werden mit einer als „z-Pufferung” bekannten Technik entfernt. Bei dieser Technik werden Tiefenwerte für jedes Primitiv bei jedem Pixel in der von dem Primitiv verdeckten Kachel berechnet. Dann werden unter Verarbeitung jedes Primitivs nacheinander die Tiefenwerte jedes Primitivs mit den Tiefenwerten für die jeweiligen in einem „z-Puffer” gespeicherten Pixel verglichen. Wenn der Tiefenwert eines neuen Primitivs näher am Auge oder Blickpunkt ist als der gerade gespeicherte Tiefenwert (für die Oberfläche der zuvor verarbeiteten Primitive, die derzeit an diesem Pixel sichtbar ist), dann werden der Tiefenwert für dieses Pixel und die anderen Werte für dieses Pixel durch die Werte des neuen Primitivs an dem jeweiligen Pixel ersetzt. Ist der Tiefenwert eines neuen Primitivs weiter vom Auge oder Blickpunkt entfernt als der derzeit gespeicherte Tiefenwert, dann bleiben die Werte, inklusive des Tiefenwertes, dieses Pixels unverändert.
  • Tessellation ist eine bekannte Technik zum Hinzufügen von Textur zu einem detailarmen Modell, das in der Computergrafik-Branche im Allgemeinen als Oberflächendatensegment bezeichnet wird. Ein Oberflächendatensegment wird in eine Mehrzahl von Primitiven unterteilt, die dann bei Bedarf von der Oberfläche des Segments verschoben werden, um eine Mehrzahl von tessellierten Primitiven abzuleiten. Die Primitive können durch Anwenden einer Benutzer programmierbaren Funktion und/oder in Abhängigkeit von einer Verschiebungshöhenkarte verschoben werden. Die tessellierten Primitive können dann gekachelt und wie oben beschrieben gerendert werden. Tessellation ist ein nützliches Werkzeug, das sich in der Computergrafik-Branche immer weiter ausbreitet. Man wird jedoch verstehen, dass das Tessellieren eines Oberflächendatensegments den zum Rendern eines Bildes nötigen Rechenaufwand erheblich erhöhen kann. Jedes tessellierte Oberflächendatensegment kann Tausende von tessellierten Primitiven beinhalten, die verarbeitet und möglicherweise auch im Speicher gespeichert werden müssen.
  • Die Anmelderin hat erkannt, dass es wünschenswert wäre, die Menge an zum Rendern einer Kachel, insbesondere einer tessellierte Primitive umfassenden Kachel, nötige Datenübertragung, Datenspeicherung und Verarbeitung zu verringern.
  • ZUSAMMENFASSUNG DER ERFINDUNG
  • Gemäß der vorliegenden Erfindung wird ein Verfahren zum Aussondern in einem kachelbasierten Grafiksystem bereitgestellt, umfassend: Unterteilen eines Renderraums in eine Mehrzahl von Kacheln; Lesen eines Oberflächendatensegments; Tessellieren des von Oberflächendatensegments, um ein Mehrzahl von tessellierten Primitiven abzuleiten; Analysieren wenigstens eines Teils des Segments, der wenigstens einige der tessellierten Primitive umfasst, um Daten zu bestimmen, die einen über wenigstens eine Kachel bestimmten Begrenzungstiefenwert repräsentieren; Benutzen, für jede Kachel, in der sich das Segment befindet, der den Begrenzungstiefenwert repräsentierenden Daten, um zu bestimmen, ob das Segment in der Kachel verborgen ist; und Rendern wenigstens eines Teils des Segments, wenn bestimmt wird, dass das Segment nicht in wenigstens einer Kachel verborgen ist.
  • Ausgestaltungen der Erfindung haben den Vorteil, dass ein Segment von einer Kachel ausgesondert werden kann, ohne eine Tiefenaussonderung für jedes einzelne tessellierte Primitiv verarbeiten und ausführen zu müssen. So ermöglicht es die Erfindung, die zum Rendern eines ein Oberflächendatensegment umfassenden Bildes nötige Verarbeitungsmenge und Speicherbandbreite zu reduzieren.
  • Dieses Verfahren hat den Vorteil, dass jede Verschiebung der tessellierten Primitive von der Oberfläche des Segments beim Bestimmen der Daten, die den über die wenigstens eine Kachel bestimmten Begrenzungstiefenwert repräsentieren, auf einfache Weise berücksichtigt werden kann.
  • In einer bevorzugten Ausgestaltung umfasst der Analyseschritt ferner, für jede der Mehrzahl der tessellierten Primitive, das Benutzen des Begrenzungstiefenwertes für das tessellierte Primitiv, um zu bestimmen, ob das tessellierte Primitiv in der wenigstens einen Kachel verborgen ist, wobei die wenigstens einigen der tessellierten Primitive das tessellierte Primitiv umfassen, wenn bestimmt wird, dass es in der wenigstens einen Kachel nicht verborgen ist. Diese Ausgestaltung hat den Vorteil, dass nur Begrenzungstiefenwerte der nicht verborgenen tessellierten Primitive zum Bestimmen der Daten benutzt werden können, die den Begrenzungstiefenwert für das Segment repräsentieren. Das heißt, dass der Begrenzungstiefenwert für das Segment wahrscheinlich einen kleineren Bereich von Tiefenwerten repräsentiert, wodurch die Wahrscheinlichkeit erhöht wird, dass das Segment von einer Kachel auf der Basis eines mit diesem Begrenzungstiefenwert durchgeführten Tiefentests ausgesondert werden kann.
  • Ferner kann dieses Verfahren in einer bevorzugten Ausgestaltung das Aussondern jedes tessellierten Primitivs beinhalten, das als in der wenigstens einen Kachel verborgen ermittelt wurde, so dass es nicht in einer Anzeige-Liste für die wenigstens eine Kachel angezeigt wird. So kann Speicherplatz eingespart werden.
  • Der über die wenigstens eine Kachel beurteilte Begrenzungstiefenwert kann ein Begrenzungstiefenwert für das gesamte Segment sein. Alternativ kann ein Begrenzungstiefenwert für jede jeweilige Kachel ermittelt werden, in der sich das Segment befindet. In diesem Fall kann der Analyseschritt für jede Kachel, in der sich das Segment befindet, das Analysieren eines entsprechenden Teils des Segments umfassen, um Daten zu bestimmen, die einen über diese Kachel bestimmten Begrenzungstiefenwert repräsentieren. Wenn also in diesem Fall das Segment über mehrere Kacheln verläuft, dann beinhaltet der über die wenigstens eine Kachel bestimmte Begrenzungstiefenwert mehrere Begrenzungstiefenwerte (die jeweils über eine jeweilige Kachel bestimmt werden).
  • Der über die wenigstens eine Kachel bestimmte Begrenzungstiefenwert kann einen maximalen Begrenzungstiefenwert und/oder einen minimalen Begrenzungstiefenwert umfassen.
  • Die Daten, die den über die wenigstens eine Kachel bestimmten Begrenzungstiefenwert repräsentieren, können benutzt werden, um zu bestimmen, ob das Segment in einer Kachel verborgen ist, bevor oder nachdem das Segment in der Anzeige-Liste für die Kachel angezeigt wird.
  • Eine erste Ausgestaltung umfasst, für jede Kachel, in der sich das Segment befindet, das Anzeigen von wenigstens einem Teil des Segments in einer Anzeige-Liste für die Kachel, wenn das Segment als in der Kachel nicht verborgen bestimmt wird. Diese Ausgestaltung hat den Vorteil, dass nicht nur die zum Rendern des Bildes nötige Verarbeitungsmenge und Speicherbandbreite, sondern auch die Menge an zum Speichern der Anzeige-Listen für die Kachel nötigem Speicherplatz reduziert werden kann, da das Segment, wenn es als nicht sichtbar oder verborgen bestimmt wird, nicht in der Anzeige-Liste für diese Kachel angezeigt zu werden braucht.
  • Diese Ausgestaltung kann ferner umfassen: Schreiben der den Begrenzungstiefenwert repräsentierenden Daten in einen Speicher; und Lesen, für jede Kachel, deren Anzeige-Liste wenigstens einen Teil des Segments anzeigt, der den Begrenzungstiefenwert repräsentierenden Daten aus dem Speicher und Benutzen der den Begrenzungstiefenwert repräsentierenden Daten, um zu bestimmen, ob das Segment in der Kachel verborgen ist.
  • Eine alternative zweite Ausgestaltung umfasst: Anzeigen, für jede Kachel, in der sich das Segment befindet, wenigstens eines Teils des Segments in einer Anzeige-Liste für die Kachel; Schreiben der Daten, die den über die wenigstens eine Kachel bestimmten Begrenzungstiefenwert repräsentieren, in einen Speicher; und wobei der Schritt des Benutzens der den Begrenzungstiefenwert repräsentierenden Daten für jede Kachel, in der sich das Segment befindet, um zu bestimmen, ob das Segment in der Kachel verborgen ist, ferner umfasst: Lesen der den Begrenzungstiefenwert repräsentierenden Daten aus dem Speicher.
  • Diese Ausgestaltungen erfordern, dass die Daten, die den über die wenigstens eine Kachel bestimmten Begrenzungstiefenwert repräsentieren, im Speicher gespeichert sind, was Speicherplatz beansprucht. Diese Ausgestaltung hat jedoch den signifikanten Vorteil, dass Daten, die einen Begrenzungstiefenwert für das Segment repräsentieren, zum Ausführen eines Tiefentests für das Segment benutzt werden können, ohne das Oberflächendatensegment beim Rendern der Kachel verarbeiten zu müssen. So kann mit dieser Ausgestaltung Speicherbandbreite sowie Verarbeitungsleistung ähnlich wie in der ersten Ausgestaltung eingespart werden, da beispielsweise dann, wenn das Segment aus einer Kachel ausgesondert werden kann, mit diesem Segment assoziierte geometrische Daten nicht aus einem Parameterspeicher gelesen zu werden brauchen.
  • Diese zweite Ausgestaltung kann vor dem Schritt des Anzeigens, für jede Kachel, in der sich das Segment befindet, wenigstens eines Teils des Segments in einer Anzeige-Liste für die Kachel, auch einen zusätzlichen Schritt umfassen, umfassend Benutzen der Daten, die den über die wenigstens eine Kachel bestimmten Begrenzungstiefenwert repräsentieren, um zu bestimmen, ob das Segment in einer Kachel verborgen ist, und, wenn nicht, das Segment aus der Kachel ausgesondert wird, so dass es sich nicht mehr in der Kachel befindet. Es wird auch eine entsprechende Vorrichtung bereitgestellt.
  • KURZBESCHREIBUNG DER FIGUREN
  • Ausgestaltungen der vorliegenden Erfindung werden nun, jedoch nur beispielhaft, mit Bezug auf die Begleitzeichnungen beschrieben, in denen:
  • 1 ein schematisches Blockdiagramm ist, das eine die Erfindung ausgestaltende Vorrichtung zeigt;
  • 2, 2a und 2b eine Bestimmung, ob ein tesselliertes Oberflächendatensegment von einer Kachel ausgesondert werden kann, illustrieren;
  • 3 ein Flussdiagramm ist, das die Verfahrensschritte in einer Ausgestaltung der Erfindung zeigt;
  • 4 ein Flussdiagramm ist, das die Verfahrensschritte in einer anderen Ausgestaltung der Erfindung zeigt;
  • 5 ein Flussdiagramm ist, das ein beispielhaftes Verfahren zum Bestimmen eines Begrenzungstiefenbereichs für eine Serie von Primitiven wie Dreiecken zeigt; und
  • 6 ein Flussdiagramm ist, das ein beispielhaftes Verfahren zum Bestimmen eines Begrenzungstiefenbereichs für ein Objekt wie z. B. einen Oberflächensegment zeigt.
  • AUSFÜHRLICHE BESCHREIBUNG BEVORZUGTER AUSGESTALTUNGEN DER ERFINDUNG
  • Die Patentanmeldung mit der Veröffentlichungs-Nr. GB 2480012 der Anmelderin offenbart ein Verfahren und ein System zum Tessellieren eines Oberflächendatensegments in einem kachelbasierten Computergrafik-Rendersystem.
  • In diesem System wird ein Oberflächendatensegment tesselliert, um eine Mehrzahl von tessellierten Primitiven, wie oben beschrieben, abzuleiten. Dann wird für jede Kachel jedes wenigstens teilweise in der Kachel befindliche tessellierte Primitiv in der Anzeige-Liste für die Kachel angezeigt, z. B. durch Speichern eines oder mehrerer Indexe für jedes tessellierte Primitiv. Anstatt jedoch mit jedem einzelnen tessellierten Primitiv im Parameterspeicher assoziierte geometrische Daten zu speichern, werden geometrische Daten für das Oberflächendatensegment gespeichert, von dem die tessellierten Primitive nachfolgend erneut abgeleitet werden können. Man wird verstehen, dass mit diesem Verfahren die Datenmenge, die im Parameterspeicher gespeichert werden muss, erheblich reduziert wird, wenn auch auf Kosten einer Erhöhung der zum Rendern jeder Kachel nötigen Rechenmenge. Zum Rendern jeder Kachel wird das Oberflächendatensegment erneut tesselliert, um die in der jeweiligen Anzeige-Liste identifizierten tessellierten Primitive erneut abzuleiten. Dann wird jedes tessellierte Primitiv, wie oben beschrieben, verarbeitet.
  • Verfahren und Systeme zum Aussondern von Primitiven, die völlig in einer Kachel verborgen sind (d. h. Primitive, die bei keinem Pixel in der Kachel sichtbar sind), ohne die gesamte Verarbeitung zu erfordern, die bei typischen Techniken zum Entfernen von verborgenen Flächen erforderlich sind, sind beispielsweise aus dem GB-Patent Nr. 2,378,108 der Anmelderin bekannt.
  • Bei diesem Verfahren werden Primitive, die ganz in einer Kachel verborgen sind, vor dem Entfernen der verborgenen Fläche durch Vergleichen der Tiefe jedes Primitivs mit dem im „z-Puffer” für die Kachel gespeicherten Tiefenbereich ausgesondert. So kann zum Beispiel die Mindesttiefe eines Primitivs (die Tiefe, die dem Blickpunkt am nächsten liegt) mit der größten oder maximalen Tiefe verglichen werden, die von den im „z-Puffer” gespeicherten Tiefenwerten angezeigt wird (d. h. der vom Blickpunkt am weitesten entfernten Tiefe). Wenn die Mindesttiefe des Primitivs weiter vom Blickpunkt entfernt ist als der maximale Tiefenwert im „z-Puffer”, dann ist bekannt, dass das Primitiv völlig in der Kachel verborgen sein muss, ohne Tiefenwerte für dieses Primitiv bei jedem Pixel in der Kachel berechnen und vergleichen zu müssen. So reduziert dieses Verfahren die zum Rendern jeder Kachel notwendige Verarbeitungsmenge.
  • Mit dem Begriff „Objekt” wird nachfolgend ein Grafikelement wie ein Primitiv oder ein Modell beschrieben, das in der Computergrafik-Branche im Allgemeinen als „Segment” von Oberflächendaten bezeichnet wird.
  • Die nachfolgenden Beispiele werden im Zusammenhang mit einem Grafiksystem illustriert, bei dem ein Tiefenvergleichsmodus von „kleiner als” benutzt wird. Mit anderen Worten, Objekte sind an Punkten sichtbar, an denen ihre Tiefe kleiner als die von anderen Objekten an diesem Punkt ist. Man wird jedoch verstehen, dass Grafiksysteme eine Reihe verschiedener Tiefenvergleichsarten benutzen und untereinander austauschen können. Weitere Beispiele für Tiefenvergleichsarten sind „größer als”, „gleich oder größer als”, „gleich oder kleiner als”, „gleich”, „ungleich”, „immer” und „niemals”. So wird zum Beispiel ein Tiefenvergleich von „kleiner als” nur zur Verdeutlichung benutzt und die folgenden Techniken lassen sich leicht auf jede geeignete Tiefenvergleichsart anwenden.
  • 1 ist eine schematische Darstellung, die eine Vorrichtung zum Erzeugen und Schattieren eines Computergrafikbildes mittels Tessellation in einer Ausgestaltung der vorliegenden Erfindung zeigt. Die Teile, die diese Vorrichtung umfassen, können als Schaltungen in einem Prozessor wie z. B. einer Grafikprozessoreinheit (GPU) oder als ein Programm implementiert werden, das auf einem programmierbaren Gerät wie z. B. einer GPU oder CPU läuft.
  • Ein Oberflächendatensegment 10 wird zu einem Tessellationsprozessor 20 geleitet, der das Segment in eine Mehrzahl von Primitiven unterteilt und die Primitive bei Bedarf von der Oberfläche des Segments durch Anwenden einer Benutzer programmierbaren Funktion oder in Abhängigkeit von einer Versatz- oder Texturkarte verschiebt, um eine Mehrzahl von tesselierten Primitiven abzuleiten.
  • Ein Segment ist typischerweise eine parametrische Funktion, die von einem Satz von Kontrollpunkten definiert wird, die die Form einer Kurve mit Bezug auf Parameter ,t' (für eine gekrümmte Linie) oder von Domänenkoordinaten ,u,v' (für eine gekrümmte Fläche) beschreiben. Ein Beispiel für ein in der Computergrafik benutztes Segment ist ein Bézier-Segment, aber der Fachmann wird verstehen, dass auch andere existieren.
  • Wie dem Fachmann bekannt ist, kann die Tessellation von Oberflächendatensegmenten in einer Grafik-Pipeline durch eine Reihe von Anwendungsprogrammierschnittstellen (APIs) unterstützt werden, wie z. B. Microsoft® Direct 3D® 11 API. Microsoft® Direct 3D® 11 API unterstützt Verschiebungsmapping, so dass sich die tessellierten Primitive an einer von der Oberfläche des Segments versetzten Stelle befinden können.
  • Nach dem Ableiten werden die tessellierten Primitive zu einem Mindest- und/oder Höchsttiefenrechner 30 geleitet, der das Segment analysiert, um Begrenzungstiefenwerte zu bestimmen.
  • Optional können die Primitive zunächst zu einer Beschneidungs- und Aussonderungseinheit (nicht gezeigt) geleitet werden, die beispielsweise nach hinten weisende, Bildschirm abseits befindliche oder nicht sichtbare Primitive entfernt, und die übrigen Primitive können dann zu einer Projektionseinheit (auch nicht gezeigt) geleitet werden, die die Primitive in Bildschirmraum umwandelt.
  • In dieser Ausgestaltung bestimmt der Mindest- und/oder Höchsttiefenrechner 30 die Mindest- und/oder Höchsttiefe des gesamten tessellierten Oberflächendatensegments, d. h. die Tiefe des vom Blickpunkt am weitesten entfernten tessellierten Oberflächendatensegment und/oder die Tiefe des dem Blickpunkt am nächsten liegenden tessellierten Oberflächendatensegments. Dies kann durch Bestimmen und Vergleichen der Tiefen jedes der tessellierten Primitive erfolgen, die das tessellierte Oberflächendatensegment bilden, während sie abgeleitet werden. Daher besteht keine Notwendigkeit, die Tiefen jedes der tessellierten Primitive nacheinander zu speichern. Das Bestimmen der Tiefe jedes der tessellierten Primitive kann jeweils mit gut bekannten Methoden erfolgen, von denen nachfolgend Beispiele angegeben werden.
  • Das Bestimmen der Mindest- und/oder Höchsttiefen eines Segments anhand der tessellierten Primitivendaten gewährleistet, dass die Mindest- und/oder Höchsttiefen den Effekt eines Verschiebungsmapping integrieren, das eventuell auf das Segment angewandt wurde. Es sind auch andere Verfahren zum Bestimmen der Mindest- und/oder Höchsttiefen für ein Segment möglich, wie der Fachmann erkennen wird. So kann zum Beispiel ein Hüllvolumen bestimmt werden, das das Objekt umgibt, von dem mit bekannten Techniken Mindest- und Höchstbegrenzungstiefenwerte bestimmt werden können. Hüllvolumen können viele Formen haben, z. B. Kugeln, Zylinder oder rechteckige Boxen. Viele der in der Computergrafik benutzten Oberflächensegmente, wie z. B. Bézier- und B-Spline-Typen, haben die Eigenschaft, dass sie völlig innerhalb der konvexen Hülle ihrer Kontrollpunkte liegen. Ein Hüllvolumen kann daher durch Analysieren der Segmente vor dem Tessellieren bestimmt werden. Man wird verstehen, dass die Genauigkeit der für das Objekt bestimmten Begrenzungstiefenwerte davon abhängt, wie nahe das Hüllvolumen das umschlossene Objekt umgibt, und dass darauf geachtet werden muss, dass die Effekte von Verschiebungsmapping berücksichtigt werden.
  • In einer alternativen Ausgestaltung können Mindest- und/oder Höchsttiefendaten durch Analysieren der jeweiligen Teile des in jeder Kachel befindlichen Oberflächendatensegments bestimmt werden. Oberflächendatensegmente können sehr groß sein und erstrecken sich häufig über mehr als eine Kachel, so dass für die jeweiligen Teile eines in einer einzigen Kachel befindlichen Segments bestimmte Mindest- und/oder Höchsttiefendaten einen erheblich kleineren Bereich von Tiefenwerten repräsentieren können als für das gesamte Segment bestimmte Mindest- und/oder Höchsttiefendaten. Ein kleinerer Bereich von Tiefenwerten erhöht die Chance, dass das Segment vor dem Rendern von der Kachel ausgesondert werden kann. Der Fachmann wird erkennen, dass eine Reihe verschiedener Methoden zum Bestimmen von Mindest- und Höchsttiefendaten für die Teile eines in einer Kachel befindlichen Segments existieren, und diese beinhalten Verfahren, die Hüllvolumen und die Konvexe-Hülle-Eigenschaften des Segments benutzen.
  • Die Anwesenheit einer Kacheleinheit 40 in dem System, die bestimmen kann, ob sich ein Primitiv ganz oder teilweise in einer Kachel befindet, macht ein Verfahren zum Bestimmen von Mindest- und/oder Höchsttiefenwerten aus den gekachelten tessellierten Primitiven besonders geeignet. Man wird verstehen, dass die Kacheleinheit 40 in diesem Fall bestimmen muss, welche tessellierten Primitive, und daher welcher Teil des tessellierten Oberflächendatensegments sich in jeder Kachel befindet. Die Tiefen jedes der das tessellierte Oberflächendatensegment in der Kachel bildenden tessellierten Primitive können bestimmt und verglichen werden, um Mindest- und/oder Höchsttiefendaten für die jeweiligen Teile des in jeder Kachel befindlichen tessellierten Oberflächendatensegments abzuleiten.
  • Die Kacheleinheit 40 unterteilt den Renderraum in eine Mehrzahl von Kacheln, die jeweils eine Mehrzahl von Bildpixeln umfassen. Kacheln sind typischerweise rechteckig, können aber auch andere Formen haben.
  • Für jede Kachel bestimmt die Kacheleinheit 40 dann, ob sich jedes der tessellierten Primitive (ganz oder teilweise) in dieser Kachel befindet. Das heißt, ob sich wenigstens ein Teil des tessellierten Primitivs in einer sichtbaren Region der Kachel befindet. Dies kann mit einer Reihe von gut bekannten Techniken erfolgen.
  • In einigen Ausgestaltungen kann die Kacheleinheit 40 einen Tiefentestprozessor 50 umfassen. Wenn bestimmt wurde, dass sich ein Objekt in einer Kachel befindet, dann vergleicht der Tiefentestprozessor einen Mindest- oder Höchsttiefenwert für das Objekt mit einem Tiefenschwellenwert für die Kachel. Der Vergleichstest erfolgt gemäß dem Tiefenvergleichsmodus des Objekts, so dass der Vergleich bestimmt, ob das Objekt potentiell in der Kachel sichtbar oder ob es verborgen ist. Der Tiefentestprozessor ist typischerweise kein Pro-Pixel-Test und kann daher nicht bestimmen, ob ein Objekt definitiv sichtbar ist. Er kann jedoch bestimmen, ob ein Objekt von anderen Objekten in der Kachel ganz verborgen wird. Wenn es verborgen wird, kann das Objekt ausgesondert und in der Anzeige-Liste für diese Kachel nicht angezeigt werden.
  • So kann beispielsweise, wie im GB-Patent Nr. 2,378,108 der Anmelderin beschrieben ist, der Tiefenbereich (Mindest- und/oder Höchsttiefe) von sichtbaren Primitiven im „z-Puffer” für eine Kachel in einem „Teil-Rendering” benutzenden System von einer Verborgene-Flächen-Entfernungseinheit 110 zurück zur Kacheleinheit 40 gespeist werden. Wie der Fachmann verstehen wird, werden in einem „Teil-Rendering”-System einige Objekte, die sich in einer Kachel befinden, in der Anzeige-Liste für diese Kachel angezeigt, und diese Objekte werden dann mit der oben beschriebenen „z-Pufferung”-Technik gerendert. Nachfolgend werden weitere in der Kachel befindliche Objekte in der Anzeige-Liste für diese Kachel angezeigt und dann gerendert. Der Tiefenbereich im „z-Puffer” kann zurückgespeist werden, bevor diese nachfolgenden Objekte in der Anzeige-Liste für die Kachel angezeigt werden, so dass sie als Tiefenschwellenwerte in einem Tiefentest benutzt werden können.
  • Alternativ kann die Kacheleinheit 40 Mindest- und Höchsttiefenschwellenwerte bestimmen. Es ist natürlich nicht wünschenswert, dass die Kacheleinheit 40 die gesamte Tiefenarbeit dupliziert, die beim Entfernen von verborgenen Flächen durchgeführt wird. Die Kacheleinheit 40 kann jedoch beispielsweise konservative Mindest- und/oder Höchsttiefenschwellenwerte für Objekte bestimmen, die der Anzeige-Liste für eine Kachel hinzugefügt wurden, die in einem groben Tiefentest benutzt werden soll.
  • So kann beispielsweise in einem „kleiner als” Tiefenvergleichsmodus eine maximale Tiefenschwelle für eine Kachel jedes Mal aktualisiert werden, wenn ein Objekt die gesamte Kachel bedeckt, wenn dieses Objekt eine Höchsttiefe hat, die näher am Blickpunkt liegt als die derzeit gespeicherte Höchsttiefenschwelle für sichtbare Primitive in der Kachel. In diesem Fall kann die Höchsttiefenschwelle für die Kachel auf den Höchsttiefenwert dieses Objekts aktualisiert werden. Der Grund ist, dass bekannt ist, da das Objekt die genannte Kachel bedeckt, dass die Höchsttiefenschwelle von sichtbaren Primitiven in der Kachel höchstens so groß sein darf wie der Höchsttiefenwert dieses Objekts. Wenn also der Höchsttiefenwert des Objekts näher am Blickpunkt liegt als die derzeit gespeicherte Höchsttiefenschwelle für die Kachel, dann kann der Höchsttiefenwert für die Kachel aktualisiert werden. Eine Mindesttiefenschwelle für eine Kachel kann auch von den in der Kachel befindlichen Objekten bestimmt werden.
  • 2 zeigt ein beispielhaftes Bildschirmport-Bild 200 mit mehreren Kacheln 205 und einem tessellierten Oberflächendatensegment 210. Die 2a und 2b sind Diagramme, die Mindest- und Höchsttiefenwerte von sichtbaren Objekten in einer der Kacheln beispielhaft zeigen. Dem vom Blickpunkt am weitesten entfernten Punkt wird der Tiefenwert 1.0 und dem nächsten Punkt der Tiefenwert 0.0 zugeordnet. Der Bereich von Tiefenwerten von sichtbaren Objekten, die als Schwellenwerte für Tiefentests benutzt werden können, wird durch durchgezogene Linien angezeigt. Die Mindest- und Höchsttiefenwerte von zwei tessellierten Beispielsegmenten 220 und 230 sind durch die gestrichelten Linien angedeutet. In diesen Beispielen ist sichtbar, dass die Tiefenwerte für die Segmente etwas konservativ sind, wie dies bei bestimmten Methoden zum Ableiten der Werte der Fall sein kann.
  • In diesem Beispiel wird ein Objekt ausgesondert, wenn bestimmt wird, dass es hinter anderen Objekten in dem Bild verborgen ist. Die Schlüsseltiefe ist daher der Mindesttiefenwert für das Objekt. Wie in dem Beispiel von 2a, wenn der Mindesttiefenwert des Objekts (die Tiefe, die dem Blickpunkt am nächsten liegt) näher am Blickpunkt liegt als die Höchsttiefenschwelle für die Kachel (d. h. die vom Blickpunkt am weitesten entfernte Tiefe), dann kann wenigstens ein Teil des Objekts in dieser Kachel sichtbar sein. Daher wird das Objekt nicht aus der Kachel ausgesondert. In dem Beispiel von 2b ist jedoch zu sehen, dass der Mindesttiefenwert des Objekts (die dem Blickpunkt am nächsten liegende Tiefe) weiter vom Blickpunkt entfernt ist als die Höchsttiefenschwelle für die Kachel. Somit ist bekannt, dass dieses tessellierte Oberflächendatensegment in der Kachel verborgen sein muss. Daher kann dieses Objekt aus dieser Kachel ausgesondert werden.
  • In einer Ausgestaltung wird der Tiefentest mit einem für ein Oberflächendatensegment bestimmten Mindest- oder Höchsttiefenwert durchgeführt. Der Tiefentest bestimmt, ob das gesamte Segment in der Kachel verborgen ist. In einer anderen Ausgestaltung wird der Tiefentest mit einem für ein Primitiv des tessellierten Oberflächendatensegments bestimmten Mindest- oder Höchsttiefenwert durchgeführt. In diesem Fall wird mit dem Tiefentest bestimmt, ob das Primitiv in der Kachel verborgen ist. Andere Primitive von demselben tessellierten Oberflächendatensegment können unabhängig getestet werden, um zu bestimmen, ob sie in der Kachel verborgen sind.
  • Dem Fachmann werden noch weitere Verfahren zum Benutzen der Mindest- und/oder Höchsttiefe des tessellierten Oberflächendatensegments einfallen, um zu bestimmen, ob das tessellierte Oberflächendatensegment in einer Kachel verborgen ist.
  • Wenn bestimmt wird, dass ein Objekt nicht aus einer Kachel ausgesondert werden kann oder wenn in dieser Phase kein Tiefentest durchgeführt wird, dann wird das Objekt in der Anzeige-Liste für diese Kachel angezeigt. Dies kann das Speichern von einem oder mehreren Indexen für jedes tessellierte Primitiv in der Anzeige-Liste für die Kachel beinhalten, die einen Zeiger auf geometrische Daten bereitstellen, die mit den im Parameterspeicher 80 gespeicherten tessellierten Primitiven assoziiert sind. In diesem Beispiel werden, wie in dem in der GB-Patentanmeldung Nr. 2480012 offenbarten System beschrieben, keine geometrischen Daten für jedes der tessellierten Primitive im Parameterspeicher 80 gespeichert, sondern es werden Daten für das Oberflächendatensegment gespeichert, von denen die tessellierten Primitive beim Rendern erneut abgeleitet werden können. Zum Beispiel, wenn das Segment ein Bézier-Segment ist, können die Daten die Kontrollpunkte für das Segment zusammen mit den angewandten Tessellationsfaktoren beinhalten.
  • Wenn bestimmt wird, dass das gesamte tessellierte Oberflächendatensegment von einer Kachel ausgesondert werden kann, dann werden keine tessellierten Primitive in der Anzeige-Liste für diese Kachel angezeigt. Es ist jedoch zu bemerken, dass die geometrischen Daten für das Oberflächendatensegment weiterhin im Parameterspeicher 80 gespeichert werden können, wenn das tessellierte Oberflächendatensegment potentiell in anderen Kacheln sichtbar ist.
  • Nach dem Ableiten der Anzeige-Listen für jede Kachel werden die Anzeige-Listen im Speicher 60 gespeichert. Vorzugsweise werden selbst dann, wenn ein Tiefentest bereits stattgefunden hat, die Mindest- und/oder Höchsttiefendaten für das tessellierte Oberflächendatensegment im Speicher 70 gespeichert.
  • Zum Rendern jeder Kachel wird die Anzeige-Liste für die Kachel gelesen. Für Kacheln, deren Anzeige-Liste das Oberflächendatensegment vor einer Weiterverarbeitung referenziert, werden die Mindest- und/oder Höchsttiefendaten für dieses Oberflächendatensegment vom Tiefentestprozessor 90 aus dem Speicher 70 gelesen. Der Tiefentestprozessor 90 kann dann einen ersten oder weiteren Tiefentest durchführen, z. B. mit dem oben beschriebenen Verfahren. Es sind auch andere Verfahren möglich und werden dem Fachmann einfallen.
  • Man wird verstehen, dass das Durchführen eines Tiefentests in dieser Phase genauer sein kann als das Durchführen eines Tiefentests vor dem Kacheln, und daher mit höherer Wahrscheinlichkeit dazu führt, dass das Oberflächendatensegment von einer Kachel ausgesondert wird. Der Grund ist, dass Mindest- und/oder Höchsttiefenschwellenwerte für die Kachel, mit denen die Mindest- und/oder Höchsttiefenwerte des tessellierten Segments verglichen werden können, direkt vom z-Puffer der Verborgene-Flächen-Entfernungseinheit 110 bestimmt werden können. Auf diese Weise bestimmte Mindest- und/oder Höchsttiefenwerte können genauer sein als die, die in der Kacheleinheit 40 abgeleitet wurden, weil sie nicht durch Faktoren wie konservative Hüllboxen oder die Ableitung von Schwellendaten nur von Objekten beeinflusst werden, die eine gesamte Kachel abdecken. So kann es selbst dann, wenn ein Tiefentest vor dem Kacheln durchgeführt wurde, wenn das Segment nicht von allen Kacheln ausgesondert wurde, vorteilhaft sein, die Mindest-/Höchsttiefenwerte für das Segment zu speichern und einen zusätzlichen Tiefentest nach dem Kacheln auszuführen, bevor jede Kachel gerendert wird, obwohl dies den Nachteil hat, dass zusätzlicher Speicherplatz zum Speichern der Min/Max-Daten für das Segment nötig ist.
  • Wenn bestimmt wird, dass das Oberflächendatensegment von einer Kachel ausgesondert werden kann, dann ist es für diese Kachel vorteilhafterweise nicht notwendig, mit diesem Oberflächendatensegment assoziierte tessellierte Primitive zu verarbeiten. Daher besteht keine Notwendigkeit, das Oberflächendatensegment erneut zu tessellieren, um diese in der Anzeige-Liste für diese Kachel angezeigten tessellierten Primitive erneut abzuleiten.
  • Wenn bestimmt wird, dass das Oberflächendatensegment in der Kachel sichtbar sein kann, dann liest der Tessellationsprozessor 100 die mit dem Oberflächendatensegment assoziierten geometrischen Daten und tesselliert den Oberflächendatensegment erneut, um jedes der in der Anzeige-Liste für diese Kachel identifizierten tessellierten Primitive erneut abzuleiten.
  • Jedes dieser tessellierten Primitive wird dann verarbeitet, um das Bild mit gut bekannten Techniken wie oben beschrieben zu rendern.
  • Jedes der tessellierten Primitive kann zur Verborgene-Flächen-Entfernungseinheit 110 geleitet werden, die alle in der Kachel nicht sichtbaren Flächen entfernt, und die resultierenden Pixeldaten können zu einer Textur- und Schattiereinheit 120 geleitet werden, die Pixel- oder Texturschattierung vor dem Schreiben von endgültigen Pixelwerten zur Anzeige in den Speicher anwendet.
  • 3 ist ein Flussdiagramm, das eine Ausgestaltung der vorliegenden Erfindung zeigt. In Schritt 300 wird ein Oberflächendatensegment tesselliert, um eine Mehrzahl von tessellierten Primitiven abzuleiten, die von der Oberfläche des Oberflächendatensegments verschoben werden können. In Schritt 310 werden dann Mindest- und/oder Höchsttiefendaten für das tessellierte Oberflächendatensegment von den tessellierten Primitiven bestimmt. In Schritt 320 können dann für jede Kachel, in der sich das tessellierte Oberflächendatensegment befindet, die Mindest- und/oder Höchsttiefendaten für das tessellierte Oberflächendatensegment benutzt werden, um zu bestimmen, ob das tessellierte Oberflächendatensegment in der Kachel verborgen ist.
  • Wenn bestimmt wird, dass das tessellierte Oberflächendatensegment in der Kachel verborgen ist, dann wird das tessellierte Oberflächendatensegment in Schritt 340 von dieser Kachel ausgesondert. Wenn bestimmt wird, dass das tessellierte Oberflächendatensegment nicht in der Kachel verborgen ist, dann wird in Schritt 330 eine Anzeige-Liste für diese Kachel abgeleitet, die diejenigen tessellierten Primitive anzeigt, die sich in der Kachel befinden. Zusätzlich können die Mindest- und/oder Höchsttiefendaten für das tessellierte Oberflächendatensegment gespeichert werden. Anzeige-Listen und Mindest- und/oder Höchsttiefendaten werden in einem Speicher 350 gespeichert.
  • Zum Rendern jeder Kachel werden in Schritt 360 für jede Kachel, in der sich das tessellierte Oberflächendatensegment befindet, die Mindest- und/oder Höchstdatenwerte für den Oberflächendatensegment gelesen und benutzt, um zu bestimmen, ob das tessellierte Oberflächendatensegment in dieser Kachel verborgen ist. Wenn bestimmt wird, dass das tessellierte Oberflächendatensegment in der Kachel verborgen ist, dann wird dieses tessellierte Oberflächendatensegment in Schritt 380 von der Kachel ausgesondert und es erfolgt keine weitere Verarbeitung. Wenn bestimmt wird, dass das tessellierte Oberflächendatensegment nicht verborgen ist, dann wird in Schritt 390 jedes der in dieser Kachel befindlichen tessellierten Primitive verarbeitet, um die Kachel zu rendern. In der oben beschriebenen Ausgestaltung beinhaltet dies das erneute Tessellieren des in dem Speicher gespeicherten Oberflächendatensegments, um wenigstens diejenigen tessellierten Primitive erneut abzuleiten, die in der Anzeige-Liste für die Kachel angezeigt sind, und dann jedes dieser tessellierten Primitive mit gut bekannten Techniken zu verarbeiten.
  • 4 ist ein Flussdiagramm, das eine andere Ausgestaltung der vorliegenden Erfindung zeigt. In Schritt 400 wird ein Oberflächendatensegment tesselliert, um eine Mehrzahl von tessellierten Primitiven abzuleiten, die von der Oberfläche des Oberflächendatensegments verschoben werden können. In Schritt 410 werden für jede Kachel, in der sich ein tesselliertes Primitiv befindet, Mindest- und/oder Höchsttiefenwerte für das Primitiv benutzt, um zu bestimmen, ob das Primitiv in der Kachel verborgen ist.
  • Wenn bestimmt wird, dass das tessellierte Primitiv in der Kachel verborgen ist, wird das tessellierte Primitiv in Schritt 430 von dieser Kachel ausgesondert. Wenn bestimmt wird, dass das tessellierte Primitiv nicht in der Kachel verborgen ist, dann können in Schritt 420 die Mindest- und/oder Höchsttiefendaten für den nicht verborgenen Primitiven im Oberflächensegment bestimmt werden. In Schritt 440 wird eine Anzeige-Liste für die Kachel abgeleitet, die derjenige tessellierten Primitive anzeigt, die nicht verborgen sind und die sich in der Kachel befinden. Darüber hinaus können die Mindest- und Höchsttiefendaten für das tessellierte Oberflächendatensegment gespeichert werden. Anzeige-Listen und Mindest- und/oder Höchsttiefendaten werden im Speicher 450 gespeichert.
  • Zum Rendern jeder Kachel werden in Schritt 460 für jede Kachel, in der sich das tessellierte Oberflächendatensegment befindet, die Mindest- und/oder Höchsttiefendaten für das Oberflächendatensegment gelesen und benutzt, um zu bestimmen, ob das tessellierte Oberflächendatensegment in dieser Kachel verborgen ist. Wenn bestimmt wird, dass das tessellierte Oberflächendatensegment in der Kachel verborgen ist, dann wird dieses tessellierte Oberflächendatensegment in Schritt 480 von der Kachel ausgesondert und es findet keine weitere Verarbeitung statt. Wenn bestimmt wird, dass das tessellierte Oberflächendatensegment nicht verborgen ist, dann wird in Schritt 490 jedes der in dieser Kachel befindlichen tessellierten Primitive verarbeitet, um die Kachel zu rendern. In der oben beschriebenen Ausgestaltung beinhaltet dies das erneute Tessellieren des im Speicher gespeicherten Oberflächendatensegments, um wenigstens die in der Anzeige-Liste für die Kachel angezeigten tessellierten Primitive erneut abzuleiten und dann jedes dieser tessellierten Primitive mit gut bekannten Techniken zu verarbeiten.
  • 5 ist ein Flussdiagramm, das ein Verfahren zeigt, das von einem Mindest- und/oder Höchsttiefenrechner 30 zum Bestimmen eines Begrenzungstiefenwertes für einen Satz von einem oder mehreren Primitiven benutzt werden kann wie z. B. denen, die durch Tessellation eines Oberflächendatensegments erzeugt werden könnten. In diesem Beispiel wird die Bestimmung eines Mindesttiefenwertes gezeigt.
  • Bei 500 wird ein Primitiv gelesen und bei 510 wird ein Eckpunkt von dem Primitiv gelesen. Typischerweise umfasst ein Eckpunkt Koordinaten X, Y und Z, wobei die Z-Koordinate der Tiefenwert ist. Bei 520 wird, wenn der Eckpunkt der erste Eckpunkt aus dem ersten Primitiv in dem Satz von Primitiven ist, die Z-Koordinate des Eckpunkts bei 530 gespeichert. Dies ergibt einen Anfangswert für weitere Vergleiche. Für alle nachfolgenden Eckpunkte wird bei 540 die Z-Koordinate des Eckpunkts mit einem zuvor bei 530 gespeicherten Z-Wert verglichen, um zu bestimmen, ob er kleiner ist. Wenn kleiner, wird die Z-Koordinate des Eckpunkts bei 530 gespeichert, wobei eventuell zuvor gespeicherte Werte ersetzt werden. Bei 550 erfolgt ein Test, um zu bestimmen, ob der Eckpunkt der letzte Eckpunkt in dem Primitiv ist. Wenn nicht, dann kehrt der Ablauf zu 510 zurück und der nächste Eckpunkt von dem Primitiv wird auf ähnliche Weise verarbeitet. Nach dem Verarbeiten des letzten Eckpunkts in einem Primitiv erfolgt bei 560 ein Test, um zu bestimmen, ob das Primitiv das letzte Primitiv in dem Satz ist. Wenn nicht, kehrt der Ablauf zu 500 zurück und das nächste Primitiv wird gelesen und verarbeitet. Nach dem Verarbeiten des letzten Primitivs in dem Satz ist der bei 530 gespeicherte Z-Wert der kleinste Z-Wert von allen untersuchten Eckpunkten.
  • Der Fachmann wird erkennen, dass das Verfahren von 5 modifiziert werden kann, um einen maximalen Begrenzungstiefenwert von einem Satz von Primitiven zu bestimmen oder sowohl Mindest- als auch Höchst-Begrenzungstiefenwerte für einen Satz von Primitiven in nur einem Durchgang durch die Primitivendaten zu erzeugen.
  • 6 ist ein Flussdiagramm, das ein Verfahren zeigt, das von einem Mindest- und/oder Höchsttiefenrechner 30 zum Bestimmen eines Begrenzungstiefenwertes für ein Oberflächendatensegment benutzt werden kann. In diesem Beispiel wird ein Mindesttiefenwert von Eckpunkten bestimmt, die die Kontrollpunkte des Oberflächensegments sind. Die Kontrollpunkte des Oberflächensegments bilden eine konvexe Hülle, die bekanntlich das Segment begrenzt.
  • Bei 600 wird ein Objekt gelesen und bei 610 wird ein Eckpunkt von dem Objekt gelesen. Bei 620 wird der Eckpunkt optional auf Relevanz geprüft, da hinlänglich bekannt ist, dass bei Kurven wie z. B. dem B-Spline die Kurve durch die konvexe Hülle einer Reihe von benachbarten Kontrollpunkten begrenzt wird und dass die Zahl von Nachbarpunkten, die die konvexe Hülle definieren, vom Grad der Kurve abhängig ist. Der Relevanztest kann besonders nützlich sein, wenn ein Hüllvolumen für den Teil eines Oberflächensegment bestimmt wird, der sich in einer bestimmten Kachel befindet, da nur die Kontrollpunkte in und um diese Kachel die konvexe Hülle für den Oberflächensegment innerhalb der Kachel definieren. Ein von einer kleineren Zahl von Kontrollpunkten bestimmtes Hüllvolumen kann kleiner sein und kann daher ein wirksameres Aussondern ermöglichen als ein Hüllvolumen, das mit allen Kontrollpunkten für das Oberflächensegment berechnet wird. Wenn bestimmt wird, dass ein Eckpunkt nicht relevant ist, wird der Ablauf bei 660 fortgesetzt.
  • Wenn bei 630 der Eckpunkt der erste relevante Eckpunkt des Oberflächensegments ist, wird die Z-Koordinate des Eckpunkts bei 640 gespeichert. Dies ergibt einen Anfangswert für weitere Vergleiche. Für alle nachfolgenden Eckpunkte wird bei 650 die Z-Koordinate des Eckpunkts mit einem zuvor bei 640 gespeicherten Z-Wert verglichen, um zu bestimmen, ob er kleiner ist. Wenn er kleiner ist, wird die Z-Koordinate des Eckpunkts bei 640 gespeichert, wobei ein zuvor gespeicherter Wert ersetzt wird.
  • Bei 660 wird geprüft, ob der Eckpunkt der letzte Eckpunkt im Oberflächensegment ist. Wenn nicht, kehrt der Ablauf zu 610 zurück. Nach dem Verarbeiten des letzten Eckpunkts im Oberflächensegment ist der bei 640 gespeicherte Z-Wert der kleinste Z-Wert aller untersuchten relevanten Eckpunkte.
  • Der Fachmann wird erkennen, dass das Verfahren von 6 modifiziert werden kann, um entweder einen Höchstwert oder sowohl Mindest- als auch Höchst-Begrenzungstiefenwerte nach Bedarf zu bestimmen.
  • Der Fachmann wird erkennen, dass Funktionen, Techniken oder Verfahren ganz oder teilweise mit einer dedizierten Schaltung, einer anwendungsspezifischen integrierten Schaltung, einem programmierbare Logik-Array, einem feldprogrammierbaren Gate-Array oder dergleichen ausgeführt werden können. Dies kann beispielsweise Hardware in Form von Schaltungen umfassen. Eine solche Schaltung kann Transistoren und/oder andere Hardware-Elemente beinhalten, die in einem Herstellungsprozess verfügbar sind. Solche Transistoren und/oder anderen Elemente können zum Bilden von Schaltungen oder Strukturen verwendet werden, die Speicher wie Register, Flipflops oder Latches, logische Operatoren wie z. B. boolesche Operationen, mathematische Operatoren wie Addierer, Multiplizierer oder Schieber und Zusammenschaltungen als Beispiele beinhalten. Solche Elemente können als kundenspezifische Schaltungen oder standardmäßige Zellbibliotheken, Makros oder auf anderen Abstraktionsebenen bereitgestellt werden. Solche Elemente können in einer spezifischen Anordnung zusammengeschaltet werden. Dazu können Schaltungen mit fester Funktion und/oder Schaltungen gehören, die zum Ausführen von einer oder mehreren Funktionen programmiert werden können; eine solche Programmierung kann über ein Firmware- oder Software-Update oder über Steuermechanismen bereitgestellt werden. In einem Beispiel beinhaltet Hardware-Logik Schaltungen, die eine Festfunktionsoperation, eine Zustandsmaschine oder einen Prozess implementieren.
  • Es soll auch jegliche Software abgedeckt sein, die die Konfiguration von Hardware „beschreibt” oder definiert, die ein Modul, Funktionalität, eine Komponente oder Logik wie oben beschrieben implementiert, wie z.B. HDL-(Hardware Description Language)-Software, wie zum Entwerfen von integrierten Schaltungen oder zum Konfigurieren von programmierbaren Chips zum Ausführen von gewünschten Funktionen benutzt. Das heißt, es kann ein computerlesbares Speichermedium bereitgestellt werden, auf dem computerlesbarer Programmcode zum Erzeugen einer Verarbeitungseinheit codiert ist, die zum Ausführen von beliebigen der hierin beschriebenen Verfahren oder zum Erzeugen einer Verarbeitungseinheit konfiguriert ist, die eine beliebige hierin beschriebene Vorrichtung umfasst.
  • 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 [0029, 0055]
    • GB 2378108 [0031, 0048]

Claims (23)

  1. Verfahren zum Aussondern von verborgenen tessellierten Primitiven in einem kachelbasierten Grafiksystem, umfassend: Unterteilen eines Renderraums in eine Mehrzahl von Kacheln; Lesen eines Oberflächendatensegments; Tessellieren des Oberflächendatensegments, um eine Mehrzahl von tessellierten Primitiven abzuleiten; Analysieren wenigstens eines Teils des Segments, der wenigstens einige der tessellierten Primitive umfasst, um Daten zu bestimmen, die einen über wenigstens eine Kachel bestimmten Begrenzungstiefenwert repräsentieren; Benutzen, für jede Kachel, in der sich das Segment befindet, der den Begrenzungstiefenwert repräsentierenden Daten, um zu bestimmen, ob das Segment in der Kachel verborgen ist; und Rendern wenigstens eines Teils des Segments, wenn bestimmt wird, dass das Segment in wenigstens einer Kachel nicht verborgen ist.
  2. Verfahren nach Anspruch 1, wobei der Analyseschritt ferner umfasst Ableiten eines Begrenzungstiefenwertes für jedes der Mehrzahl der tessellierten Primitiven; und Vergleichen der Begrenzungstiefenwerte für die wenigstens einigen der Mehrzahl der tessellierten Primitiven, um die Daten abzuleiten, die den über die wenigstens eine Kachel bestimmten Begrenzungstiefenwert repräsentieren.
  3. Verfahren nach Anspruch 2, wobei der Analyseschritt ferner umfasst Benutzen, für jedes der Mehrzahl der tessellierten Primitiven, des Begrenzungstiefenwertes für das tessellierte Primitiv, um zu bestimmen, ob das tessellierte Primitiv in der wenigstens einen Kachel nicht verborgen ist, wobei die wenigstens einigen der tessellierten Primitive das tessellierte Primitiv umfassen, wenn bestimmt wird, dass es in der wenigstens einen Kachel nicht verborgen ist.
  4. Verfahren nach einem vorherigen Anspruch, wobei der über die wenigstens eine Kachel bestimmte Begrenzungstiefenwert ein Begrenzungstiefenwert für das gesamte Segment ist.
  5. Verfahren nach einem vorherigen Anspruch, wobei der Analyseschritt umfasst Analysieren, für jede Kachel, in der sich das Segment befindet, eines entsprechenden Teils des Segments, um Daten zu bestimmen, die einen über diese Kachel bestimmten Begrenzungstiefenwert repräsentieren.
  6. Verfahren nach einem vorherigen Anspruch, wobei der über die wenigstens eine Kachel bestimmte Begrenzungstiefenwert einen maximalen Begrenzungstiefenwert und/oder einen minimalen Begrenzungstiefenwert umfasst.
  7. Verfahren nach einem vorherigen Anspruch, ferner umfassend: Anzeigen, für jede Kachel, in der sich das Segment befindet, wenigstens eines Teils des Segments in einer Anzeige-Liste für die Kachel, wenn bestimmt wird, dass das Segment in der Kachel nicht verborgen ist.
  8. Verfahren nach Anspruch 7, ferner umfassend: Schreiben der den Begrenzungstiefenwert repräsentierenden Daten in einen Speicher; und Lesen, für jede Kachel, deren Anzeige-Liste wenigstens einen Teil des Segments anzeigt, der den Begrenzungstiefenwert repräsentierenden Daten aus dem Speicher und Benutzen der den Begrenzungstiefenwert repräsentierenden Daten, um zu bestimmen, ob das Segment in der Kachel verborgen ist.
  9. Verfahren nach einem der Ansprüche 1 bis 6, ferner umfassend: Anzeigen, für jede Kachel, in der sich das Segment befindet, wenigstens eines Teils des Segments in einer Anzeige-Liste für die Kachel; Schreiben der Daten, die den über die wenigstens eine Kachel bestimmten Begrenzungstiefenwert repräsentieren, in einen Speicher; und wobei der Schritt des Benutzens, für jede Kachel, in der sich das Segment befindet, der den Begrenzungstiefenwert repräsentierenden Daten, um zu bestimmen, ob das Segment in der Kachel verborgen ist, ferner umfasst: Lesen der den Begrenzungstiefenwert repräsentierenden Daten aus dem Speicher.
  10. Verfahren nach Anspruch 9 in Abhängigkeit von Anspruch 4, ferner umfassend Aussondern jedes tessellierten Primitivs, das als in der wenigstens einen Kachel verborgen bestimmt wird.
  11. Verfahren nach Anspruch 9 oder 10, ferner umfassend einen zusätzlichen Schritt vor dem Schritt des Anzeigens, für jede Kachel, in der sich das Segment befindet, wenigstens eines Teils des Segments in einer Anzeige-Liste für die Kachel, umfassend Benutzen der Daten, die den über die wenigstens eine Kachel bestimmten Begrenzungstiefenwert repräsentieren, um zu bestimmen, ob das Segment in einer Kachel verborgen ist, und, wenn ja, Aussondern des Segments von der Kachel.
  12. System zum Aussondern von verborgenen tessellierten Primitiven in einem Grafiksystem mit einem Renderraum, der in eine Mehrzahl von Regionen unterteilt ist, die jeweils mehrere Pixel beinhalten, das System umfassend: eine Schnittstelle, die zum Empfangen eines Oberflächendatensegments konfiguriert ist; einen Tessellationsprozessor, der zum Tessellieren des Oberflächendatensegments konfiguriert ist, um eine Mehrzahl tessellierter Primitive abzuleiten; einen Tiefenrechner, der zum Analysieren wenigstens eines Teils des Segments konfiguriert ist, der wenigstens einige der Mehrzahl der tessellierten Primitive umfasst, um Daten zu bestimmen, die einen über wenigstens eine Kachel bestimmten Begrenzungstiefenwert repräsentieren; einen Tiefentestprozessor, der zum Benutzen, für jede Kachel, in der sich das Segment befindet, der den Begrenzungstiefenwert repräsentierenden Daten konfiguriert ist, um zu bestimmen, ob das Segment in der Kachel verborgen ist; und einen Renderer, der zum Rendern wenigstens eines Teils des Segments konfiguriert ist, wenn bestimmt wird, dass das Segment in wenigstens einer Kachel nicht verborgen ist.
  13. System nach Anspruch 12, wobei der Tiefenrechner ferner umfasst eine Komparatorlogik, die zum Ableiten eines Begrenzungstiefenwertes für jedes der Mehrzahl der tessellierten Primitiven und zum Vergleichen der Begrenzungstiefenwerte für die wenigstens einigen der Mehrzahl der tessellierten Primitive konfiguriert ist, um die Daten abzuleiten, die den über die wenigstens eine Kachel bestimmten Begrenzungstiefenwert repräsentieren.
  14. System nach Anspruch 13, wobei der Tiefentestprozessor ferner zum Benutzen, für jedes der der Mehrzahl der Primitive, des Begrenzungstiefenwertes für das tessellierte Primitiv konfiguriert ist, um zu bestimmen, ob das tessellierte Primitiv in der wenigstens einen Kachel verborgen ist; und wobei die Komparatorlogik zum Vergleichen des Begrenzungstiefenwertes des tessellierten Primitivs konfiguriert ist, wenn bestimmt wird, dass dieses tessellierte Primitiv in der wenigstens einen Kachel nicht verborgen ist.
  15. System nach einem der Ansprüche 12 bis 14, wobei der über die wenigstens eine Kachel bestimmte Begrenzungstiefenwert ein Begrenzungstiefenwert für das gesamte Segment ist.
  16. System nach einem der Ansprüche 12 bis 15, wobei der Tiefenrechner zum Analysieren, für jede Kachel, in der sich das Segment befindet, eines entsprechenden Teils des Segments konfiguriert ist, um Daten zu bestimmen, die einen über diese Kachel bestimmten Begrenzungstiefenwert repräsentieren.
  17. System nach einem der Ansprüche 12 bis 16, wobei der über die wenigstens eine Kachel bestimmte Begrenzungstiefenwert einen maximalen Begrenzungstiefenwert und/oder einen minimalen Begrenzungstiefenwert umfasst.
  18. System nach einem der Ansprüche 12 bis 17, ferner umfassend einen Anzeige-Listen-Generator, der zum Anzeigen, für jede Kachel, in der sich das Segment befindet, wenigstens eines Teils des Segments in einer Anzeige-Liste für die Kachel konfiguriert ist, wenn bestimmt wird, dass das Segment in der Kachel nicht verborgen ist.
  19. System nach Anspruch 18, ferner umfassend eine Schreibschnittstelle, die zum Schreiben der den Begrenzungstiefenwert repräsentierenden Daten in einen Speicher konfiguriert ist; eine Leseschnittstelle, die zum Lesen, für jede Kachel, deren Anzeige-Liste wenigstens einen Teil des Segments anzeigt, der den Begrenzungstiefenwert repräsentierenden Daten aus dem Speicher konfiguriert ist; und einen Tiefentestprozessor, der zum Benutzen, für jede Kachel, deren Anzeige-Liste wenigstens einen Teil des Segments anzeigt, der den Begrenzungstiefenwert repräsentierenden Daten konfiguriert ist, um zu bestimmen, ob das Segment in der Kachel verborgen ist.
  20. System nach einem der Ansprüche 12 bis 17, ferner umfassend einen Anzeige-Listen-Generator, der zum Anzeigen, für jede Kachel, in der sich das Segment befindet, wenigstens eines Teils des Segments in einer Anzeige-Liste für die Kachel konfiguriert ist; eine Schreibschnittstelle, die zum Schreiben der Daten, die den über die wenigstens eine Kachel bestimmten Begrenzungstiefenwert repräsentieren, in einen Speicher konfiguriert ist; und wobei der Tiefentestprozessor ferner zum Lesen der den Begrenzungstiefenwert repräsentierenden Daten aus dem Speicher konfiguriert ist.
  21. System nach Anspruch 20 in Abhängigkeit von Anspruch 16, ferner umfassend eine Objektaussonderungslogik, die zum Aussondern jedes tessellierten Primitivs konfiguriert ist, das als in der wenigstens einen Kachel verborgen bestimmt wird.
  22. System nach Anspruch 20 oder 21, wobei der Tiefentestprozessor ferner zum Benutzen der Daten, die den über die wenigstens eine Kachel bestimmten Begrenzungstiefenwert repräsentieren, konfiguriert ist, um zu bestimmen, ob das Segment in einer Kachel verborgen ist, und das System ferner umfasst eine Objektaussonderungslogik, die zum Aussondern des Segments von der Kachel konfiguriert ist, so dass sich das Segment nicht mehr in dieser Kachel befindet, wenn bestimmt wird, dass das Segment in dieser Kachel verborgen ist, bevor der Anzeige-Listen-Generator, für jede Kachel, in der sich das Segment befindet, wenigstens einen Teil des Segments in einer Anzeige-Liste für die Kachel anzeigt.
  23. Computerlesbares Speichermedium, auf dem computerlesbarer Code zum Erzeugen eines Grafikverarbeitungssystems codiert ist, das zum Ausführen des Verfahrens nach Anspruch 1 bis 11 konfiguriert ist.
DE102013114176.5A 2012-12-20 2013-12-17 Tessellieren von Oberflächendatensegmenten beim kachelbasierten Rendern von Computergrafik Pending DE102013114176A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
GB1223099.1A GB2509113B (en) 2012-12-20 2012-12-20 Tessellating patches of surface data in tile based computer graphics rendering
GB1223099.1 2012-12-20

Publications (1)

Publication Number Publication Date
DE102013114176A1 true DE102013114176A1 (de) 2014-06-26

Family

ID=47682343

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102013114176.5A Pending DE102013114176A1 (de) 2012-12-20 2013-12-17 Tessellieren von Oberflächendatensegmenten beim kachelbasierten Rendern von Computergrafik

Country Status (4)

Country Link
US (4) US9547934B2 (de)
CN (2) CN107657655B (de)
DE (1) DE102013114176A1 (de)
GB (2) GB2544679B (de)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2546020B (en) * 2012-11-02 2017-08-30 Imagination Tech Ltd Method of scheduling discrete productions of geometry
KR20160063081A (ko) * 2014-11-26 2016-06-03 삼성전자주식회사 선택적 테셀레이션 방법 및 장치
EP3070677B1 (de) * 2015-03-20 2021-07-28 Samsung Electronics Co., Ltd. Verfahren und vorrichtung für kachelbasiertes rendering
KR102381945B1 (ko) 2015-11-18 2022-04-01 삼성전자주식회사 그래픽 프로세싱 장치 및 그래픽 프로세싱 장치에서 그래픽스 파이프라인을 수행하는 방법
EP3249612B1 (de) * 2016-04-29 2023-02-08 Imagination Technologies Limited Erzeugung eines steuerstrom für eine platte
US10032308B2 (en) * 2016-06-22 2018-07-24 Advanced Micro Devices, Inc. Culling objects from a 3-D graphics pipeline using hierarchical Z buffers
US20180082465A1 (en) * 2016-09-16 2018-03-22 Prasoonkumar Surti Apparatus and method for optimized tile-based rendering
US10943389B2 (en) * 2016-12-09 2021-03-09 Advanced Micro Devices, Inc. Removing or identifying overlapping fragments after z-culling
US10692258B2 (en) * 2017-11-20 2020-06-23 Intel Corporation Minimum or maximum sample indexing in control surface
US10672182B2 (en) * 2018-04-19 2020-06-02 Microsoft Technology Licensing, Llc Compact visibility state for GPUs compatible with hardware instancing
CN112116519B (zh) 2019-06-19 2022-12-27 畅想科技有限公司 图形处理系统中的粗略深度测试
US11010862B1 (en) * 2019-11-14 2021-05-18 Advanced Micro Devices, Inc. Reduced bandwidth tessellation factors
CN111583378B (zh) * 2020-06-11 2023-11-17 网易(杭州)网络有限公司 一种虚拟资产处理的方法及装置、电子设备、存储介质
CN116188552B (zh) * 2023-04-24 2023-08-11 摩尔线程智能科技(北京)有限责任公司 基于区域的深度测试方法、装置、设备及存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2378108A (en) 2001-07-24 2003-01-29 Imagination Tech Ltd 3D graphics generator
GB2480012A (en) 2010-04-30 2011-11-02 Imagination Tech Ltd Programmable tessellation in a tile based 3D image rendering system

Family Cites Families (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US299910A (en) * 1884-06-03 Machine foe cutting meat and vegetables
US5357600A (en) * 1992-10-15 1994-10-18 Sun Microsystems, Inc. Method and apparatus for the rendering of curved surfaces using a cone of normals
US5864342A (en) 1995-08-04 1999-01-26 Microsoft Corporation Method and system for rendering graphical objects to image chunks
US6246415B1 (en) 1998-04-30 2001-06-12 Silicon Graphics, Inc. Method and apparatus for culling polygons
US6480205B1 (en) * 1998-07-22 2002-11-12 Nvidia Corporation Method and apparatus for occlusion culling in graphics systems
US7245299B2 (en) * 2003-05-12 2007-07-17 Adrian Sfarti Bicubic surface real-time tesselation unit
US20020196252A1 (en) * 2001-06-20 2002-12-26 Min-Hao Liao Method and apparatus for rendering three-dimensional images with tile-based visibility preprocessing
US7301537B2 (en) * 2002-12-20 2007-11-27 Telefonaktiebolaget Lm Ericsson (Publ) Graphics processing apparatus, methods and computer program products using minimum-depth occlusion culling and zig-zag traversal
US20050122338A1 (en) * 2003-12-05 2005-06-09 Michael Hong Apparatus and method for rendering graphics primitives using a multi-pass rendering approach
US7450120B1 (en) 2003-12-19 2008-11-11 Nvidia Corporation Apparatus, system, and method for Z-culling
US7154500B2 (en) * 2004-04-20 2006-12-26 The Chinese University Of Hong Kong Block-based fragment filtration with feasible multi-GPU acceleration for real-time volume rendering on conventional personal computer
US7167171B2 (en) * 2004-06-29 2007-01-23 Intel Corporation Methods and apparatuses for a polygon binning process for rendering
US7538765B2 (en) * 2004-08-10 2009-05-26 Ati International Srl Method and apparatus for generating hierarchical depth culling characteristics
US8089486B2 (en) 2005-03-21 2012-01-03 Qualcomm Incorporated Tiled prefetched and cached depth buffer
CN101681526B (zh) * 2007-01-24 2013-03-27 英特尔公司 通过使用可置换的剔除程序提高图形性能的方法和装置
US8184118B2 (en) * 2007-05-01 2012-05-22 Advanced Micro Devices, Inc. Depth operations
DE112009000180T5 (de) 2008-01-23 2011-03-31 Swift-Foot Graphics Ab Verfahren, Vorrichtung und Computerprogrammprodukt für eine verbesserte Grafikperformance
GB0810311D0 (en) * 2008-06-05 2008-07-09 Advanced Risc Mach Ltd Graphics processing systems
GB2461900B (en) * 2008-07-16 2012-11-07 Advanced Risc Mach Ltd Monitoring graphics processing
US20100164954A1 (en) * 2008-12-31 2010-07-01 Sathe Rahul P Tessellator Whose Tessellation Time Grows Linearly with the Amount of Tessellation
US8384715B2 (en) * 2009-04-13 2013-02-26 Microsoft Corporation View-dependent rendering of parametric surfaces
GB201104066D0 (en) * 2011-03-09 2011-04-20 Imagination Tech Ltd Compression of a tessellated primitive index list in a tile rendering system
CN102208112B (zh) * 2011-05-25 2015-08-05 威盛电子股份有限公司 景深消隐方法、三维图形处理方法及其装置
US10089774B2 (en) * 2011-11-16 2018-10-02 Qualcomm Incorporated Tessellation in tile-based rendering
US8982124B2 (en) * 2012-09-29 2015-03-17 Intel Corporation Load balancing and merging of tessellation thread workloads

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2378108A (en) 2001-07-24 2003-01-29 Imagination Tech Ltd 3D graphics generator
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
US20170091986A1 (en) 2017-03-30
GB2544679B (en) 2017-08-16
GB201702949D0 (en) 2017-04-12
US20140176544A1 (en) 2014-06-26
CN103886633A (zh) 2014-06-25
GB201223099D0 (en) 2013-02-06
CN107657655B (zh) 2021-07-13
CN107657655A (zh) 2018-02-02
US9892547B2 (en) 2018-02-13
US20180197325A1 (en) 2018-07-12
US9547934B2 (en) 2017-01-17
GB2509113B (en) 2017-04-26
GB2544679A (en) 2017-05-24
US20230088494A1 (en) 2023-03-23
CN103886633B (zh) 2017-10-24
GB2509113A (en) 2014-06-25
US11527040B2 (en) 2022-12-13

Similar Documents

Publication Publication Date Title
DE102013114176A1 (de) Tessellieren von Oberflächendatensegmenten beim kachelbasierten Rendern von Computergrafik
DE102005035012B4 (de) Hochleistungsschattierung von großen volumetrischen Daten unter Verwendung von partiellen Schirmraumableitungen
DE60026197T2 (de) Detailgerichtete hierarchische Distanzfelder in der Objektmodellierung
DE102014004841B4 (de) Grafik auf Kachelbasis
DE69632578T2 (de) Computer-grafiksystem zum schaffen und verbessern von texturabbildungssystemen
DE112009000180T5 (de) Verfahren, Vorrichtung und Computerprogrammprodukt für eine verbesserte Grafikperformance
DE102009037288A1 (de) Fragment-Shader für ein Hybrid-Raytracing-System und Betriebsverfahren
DE602004003111T2 (de) Tiefen-basiertes Antialiasing
DE102015107869A1 (de) Vergabe von Primitiven an Primitiv-Blöcke
DE102016103854A1 (de) Graphikverarbeitung mit direktionalen Darstellungen der Beleuchtung an Sondenpositionen innerhalb einer Szene
DE102011016347A1 (de) Hierarchisches Umgrenzen von verschobenen parametrischen Flächen
DE102013013562A1 (de) Kachelbasierte computergraphik
DE102008050049B4 (de) Verfahren zur Bestimmung einer die Objektgrenze eines Objekts in einem digitalen 3D-Datensatz annähernden 3D-Oberfläche
DE102015101538A1 (de) Opazitätstest zur verarbeitung von primitiven in einem 3d-grafikverarbeitungssystem
DE112005002076T5 (de) Unterteilung von Geometriebildern in Grafikhardware
DE102012210521A1 (de) Unbeschnittene Zeit- und Linsen-Begrenzungen für verbesserte Probentest- Effizienz bei Bild-Rendering
DE102010048486A1 (de) Bildverarbeitungstechniken
DE102011011947A1 (de) Kantenverarbeitungstechniken
DE102013021046A1 (de) Erzeugung fehlerbefreiter Voxel-Daten
DE69924230T2 (de) Verfahren zur Modellierung von durch Oberflächenelemente dargestellten grafischen Objekten
DE102008050449A1 (de) Clipping Geometrien beim Raycasting
DE112009002383T5 (de) Grafikverarbeitung unter Verwendung von Culling auf Gruppen von Vertices
DE102006021118B4 (de) Rendern von anatomischen Strukturen mit ihrem nahen Umgebungsbereich
DE102018125472A1 (de) Grafikprozessor, der Abtastungs-basiertes Rendering durchführt, und Verfahren zum Betreiben desselben
DE102019101720A1 (de) Techniken zur Darstellung und Verarbeitung von Geometrie innerhalb einer erweiterten Grafikverarbeitungspipeline

Legal Events

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