DE102010018701A1 - Bilderzeugungstechniken - Google Patents

Bilderzeugungstechniken Download PDF

Info

Publication number
DE102010018701A1
DE102010018701A1 DE102010018701A DE102010018701A DE102010018701A1 DE 102010018701 A1 DE102010018701 A1 DE 102010018701A1 DE 102010018701 A DE102010018701 A DE 102010018701A DE 102010018701 A DE102010018701 A DE 102010018701A DE 102010018701 A1 DE102010018701 A1 DE 102010018701A1
Authority
DE
Germany
Prior art keywords
domain
tessellation
points
patch
domain points
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
DE102010018701A
Other languages
English (en)
Other versions
DE102010018701B4 (de
Inventor
Paul A. Santa Clara Rosen
Rahul P. Hillsboro Sathe
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.)
Tahoe Research Ltd
Original Assignee
Intel Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Intel Corp filed Critical Intel Corp
Publication of DE102010018701A1 publication Critical patent/DE102010018701A1/de
Application granted granted Critical
Publication of DE102010018701B4 publication Critical patent/DE102010018701B4/de
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • G06T17/20Finite element generation, e.g. wire-frame surface description, tesselation

Landscapes

  • Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Computer Graphics (AREA)
  • Geometry (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Image Generation (AREA)
  • Image Analysis (AREA)
  • Lining And Supports For Tunnels (AREA)

Abstract

Bei einigen Ausführungsformen können die Intervalle und die Triangulation einer inneren Tessellation eines Patches vorab berechnet werden. Tessellationen mit geradzahligem Faktor werden co-zentrisch angeordnet, sodass Faktoren mit niedrigeren Zahlen sich innerhalb von Tessallationen mit Faktoren höherer Zahlen befinden. Ebenso werden Tessellationen mit ungeradzahligem Faktor co-zentrisch angeordnet, sodass Faktoren mit niedrigeren Zahlen sich innerhalb von Tessellationen mit Faktoren höherer Zahlen befinden. Domainpunkte von Tessellationen mit geradzahligem Faktor werden in einer ersten Tabelle gespeichert, wohingegen Domainpunkte von Tessellationen mit ungeradzahligem Faktor in einer zweiten Tabelle gespeichert werden. Während der Laufzeit können die vorab berechneten Werte für den geeigneten Kantendetaillierungsgrad nachgesehen werden.

Description

  • Technisches Gebiet
  • Der hierin offenbarte Gegenstand bezieht sich im Allgemeinen auf Grafikverarbeitung, einschließlich der Verwendung von Grafikprozessoren und Universalprozessoren, die zur Grafikverarbeitung verwendet werden.
  • Stand der Technik
  • Die Grafikpipeline kann dafür verantwortlich sein, Grafiken für Spiele, Computeranimationen, medizinische Anwendungen und dergleichen zu rendern. Der Detaillierungsgrad der generierten Grafikbilder kann aufgrund von Einschränkungen in der Grafikpipeline weniger als ideal sein. Je größer das bereitgestellte Detail, desto langsamer ist die resultierende Grafikverarbeitung. Somit gibt es einen Kompromiss zwischen Verarbeitungsgeschwindigkeit und Grafikdetail. Grafikverarbeitungspipelines, wie z. B. Microsoft® DirectX 11, erhöhen das geometrische Detail durch Erhöhen des Tessellationsdetails.
  • Tessellation ist die Bildung einer Reihe von Dreiecken, um ein Bild eines Objektes beginnend mit einem groben polygonalen Modell zu rendern. Ein Patch ist eine Grundeinheit auf dem groben Niveau, das einen Steuerkäfig für eine Oberfläche beschreibt. Ein Patch kann eine Kurve oder einen Bereich darstellen. Die Oberfläche kann jede Oberfläche sein, die als eine parametrische Funktion beschrieben werden kann. Ein Steuerkäfig ist ein Modell geringer Auflösung, das von Grafikern verwendet wird, um gleichmäßige Oberflächen zu generieren. Somit ist der grafische Detaillierungsgrad, der dargestellt werden kann, höher, indem eine Tessellation in höherem Maße bereitgestellt wird. Die Verarbeitungsgeschwindigkeit kann jedoch gegenteilig beeinflusst werden. Im Allgemeinen steigt die Verarbeitungszeit quadratisch mit einem erhöhten Detaillierungsgrad eines Bildes.
  • Es ist wünschenswert, Tessellation in höherem Maße zu erlauben, aber mit annehmbarer Verarbeitungszeit.
  • Kurze Beschreibung der Zeichnungen
  • Erfindungsgemäße Ausführungsformen werden exemplarisch und in keiner Weise einschränkend in den Zeichnungen veranschaulicht, bei denen gleiche Bezugsnummern zum Verweis auf ähnliche Elemente verwendet werden.
  • 1 ist eine schematische Darstellung einer Grafikpipeline in Übereinstimmung mit einer Ausführungsform.
  • 2 ist eine Darstellung einer inneren Tessellation mit einer maximalen inneren Tessellationsfaktor-Reduktionsfunktion und einer 1-Achse inneren Tessellationsfaktor-Achsenreduktion gemäß einer Ausführungsform.
  • 3 ist eine Darstellung eines Tessellationsmusters mit einer durchschnittlichen inneren Tessellationsfaktor-Reduktionsfunktion und 1-Achse inneren Tessellationsfaktor-Achsenreduktion gemäß einer Ausführungsform.
  • 4 ist eine Darstellung eines Tessellationsmusters für eine 1-Achse Tessellation unter Verwendung einer minimalen inneren Tessellationsfaktor-Reduktionsfunktion gemäß einer Ausführungsform.
  • 5A ist eine Darstellung einer 1-Achse inneren Tessellationsfaktor-Achsenreduktion gemäß einer Ausführungsform.
  • 5B ist eine 1-Achse innere Tessellation, bei der die obere Kante einen anderen Kantendetaillierungsgrad gemäß einer Ausführungsform aufweist als in 5A.
  • 5C ist eine 1-Achse innere Tessellation, bei der die linke Kante einen anderen Kantendetaillierungsgrad gemäß einer Ausführungsform aufweist als die in 5A und 5B gezeigten Tessellationen.
  • 6 zeigt geradzahlige und ungeradzahlige innere Vierecks-Tessellationen in Übereinstimmung mit einer Ausführungsform.
  • 7A zeigt zwei beispielhafte Arten, bei denen auf Domainpunkte von inneren Vierecks-Tessellationen in Übereinstimmung mit einer Ausführungsform zugegriffen wird.
  • 7B zeigt zwei beispielhafte Arten, bei denen auf Domainpunkte von inneren Dreiecks-Tessellationen in Übereinstimmung mit einer Ausführungsform zugegriffen wird.
  • 8 ist ein Ablaufdiagramm, um ein Patch für eine Ausführungsform der vorliegenden Erfindung zu generieren.
  • 9 zeigt einen Vergleich zwischen der durchschnittlichen Anzahl an Takten, um ein Patch zu tessellieren und seine Domain zu schattieren.
  • 10 ist eine schematische Darstellung eines Mehrkernprozessors gemäß einer Ausführungsform.
  • Ausführliche Beschreibung
  • Verweise in dieser Beschreibung auf „eine Ausführungsform” bedeuten, dass ein bestimmtes Merkmal, eine Struktur oder Charakteristik, die in Verbindung mit der Ausführungsform beschrieben wird, mindestens in einer Ausführungsform der vorliegenden Erfindung enthalten ist. Somit beziehen sich die Verwendungen des Ausdrucks „bei einer Ausführungsform” an verschiedenen Stellen in dieser Beschreibung nicht notwendigerweise immer auf die gleiche Ausführungsform. Des Weiteren können die bestimmten Merkmale, Strukturen oder Charakteristika in einer oder mehr Ausführungsformen kombiniert werden.
  • In Übereinstimmung mit einigen Ausführungsformen steigt eine Tessellationszeit linear mit dem Tessellationsumfang. Herkömmlicherweise steigt eine Tessellationszeit als eine quadratische Funktion mit dem Umfang der Tessellationsdetaillierung. Demzufolge kann eine Tessellationszeit bei einigen Ausführungsformen niedriger sein und bei anderen Ausführungsformen können weniger leistungsstarke Tessellatoren verwendet werden, um detailliertere Tessellationen durchzuführen.
  • Bei einigen Ausführungsformen kann die Tessellationszeit eingespart werden und/oder eine Fähigkeit zur Tessellationsverarbeitung kann erhöht werden, indem eine Reihe innerer Tessellationen über eine Auswahl an Kantendetaillierungsgraden vorab berechnet wird. Dies erspart eine Berechnung der inneren Tessellationen während der Laufzeit. Die innere Tessellation beinhaltet die Punkte und die Dreiecke innerhalb des Außenumfanges des Grundelements. Der äußere Bereich besteht aus dem Umfang des Grundelements.
  • In Übereinstimmung mit einigen Ausführungsformen können zwei innere Tessellationen vorab berechnet und zur Verfügbarkeit während der Laufzeit gespeichert werden. Eine erste Tessellation kann für Tessellationen mit geradzahligen Faktoren verwendet werden, während eine zweite innere Tessellation für Tessellationen mit ungeradzahligen Faktoren verwendet werden kann. Die erste innere Tessellation kann sämtliche inneren Tessellationen mit geradzahligen Faktoren niedrigerer Zahlen beinhalten. Die zweite innere Tessellation kann sämtliche inneren Tessellationen mit ungeradzahligen Faktoren niedrigerer Zahlen beinhalten.
  • In Übereinstimmung mit einigen Ausführungsformen werden die erste und zweite innere Tessellation als Domainpunkte gespeichert, die mit einer innersten Tessellation beginnen und nach außen zu größeren Tessellationen fortschreiten. Die innerste Tessellation kann die kleinste Tessellation sein. Die innersten Tessellationen der ersten und zweiten innersten Tessellation können Faktoren von zwei bzw. eins aufweisen. Die äußerste Tessellation der ersten und zweiten inneren Tessellation ist die größte Tessellation mit geradzahligem bzw. ungeradzahligem Faktor.
  • In Übereinstimmung mit einigen Ausführungsformen kann die Tessellation eine Domain aus Dreiecks- oder Vierecks-Grundelementen verwenden. Kantenpartitionierung kann beinhalten, die Kanten in Intervalle zu unterteilen. Je mehr Intervalle verwendet werden, desto höher ist der mögliche Detaillierungsgrad der Tessellation. Somit kann ein Erhöhen des Kantendetaillierungsgrades die Auflösung der resultierenden Tessellation erhöhen.
  • Unter Bezugnahme auf 1 kann eine Grafikpipeline in einem Grafikprozessor als eine dedizierte integrierte Standalone-Schaltung in Software durch Software implementierte Universalprozessoren oder mittels Kombinationen von Software und Hardware implementiert sein. Bei einigen Ausführungsformen können in 1 die Elemente mit rechtwinkligen Kanten in Hardware implementiert sein und die Elemente mit abgerundeten Kanten können in Software implementiert sein. Die Grafikpipeline kann beispielsweise in einem Mobiltelefon, einem drahtlosen Telefon, einem PCS-(Personal Communication Systems)-Gerät, einem PDA, der ein drahtloses Kommunikationsgerät enthält, oder jedem Computer implementiert sein. Die Grafikpipeline kann Bilder oder ein Video zur Anzeige an ein Display-Gerät bereitstellen. Verschiedene Techniken können verwendet werden, um Bilder an ein Display zu übertragen. Beispielsweise können High Definition Multimedia Interface, DisplayPort, drahtlose HDMI und/oder drahtlose HD konforme Techniken verwendet werden, um Bilder an ein Display zu übertragen.
  • Der Eingabe-Assembler 12 liest unter Verwendung fester Funktionsoperationen Eckpunkte aus dem Speicher aus, wobei Geometrie gebildet wird und Pipeline-Arbeitsobjekte erzeugt werden. Automatisch generierte Kennzeichner ermöglichen eine Kennzeichner-spezifische Verarbeitung, wie auf der gepunkteten Linie rechts in 1 angezeigt. Eckpunktkennzeichner und Instanzkennzeichner sind ab dem Vertex-Shader 14 abrufbar. Grundelementkennzeichner sind ab dem Hull-Shader 16 abrufbar. Die Steuerpunktkennzeichner sind lediglich in dem Hull-Shader 16 abrufbar.
  • Der Vertex-Shader 14 führt Operationen, wie z. B. Transformation, Skinning oder Ausleuchtung, aus. Er gibt einen Eckpunkt ein und gibt einen Eckpunkt aus. In der Steuerpunkt-Phase, die pro Ausgabe-Steuerpunkt aktiviert und jeweils durch einen Steuerpunktkennzeichner identifiziert wird, ist der Vertex-Shader in der Lage, alle Eingabe-Steuerpunkte für ein Patch unabhängig von der Anzahl der Ausgaben zu lesen. Der Hull-Shader 16 gibt den Steuerpunkt pro Abruf aus. Die vereinigte Ausgabe ist eine geteilte Eingabe an die nächste Hull-Shader-Phase und an den Domain-Shader 20. Konstante Patch-Phasen können einmal pro Patch mit geteilter Leseeingabe aller Eingabe- und Ausgabe-Steuerpunkte aktiviert werden. Der Hull-Shader 16 gibt Kantentessellationsfaktoren und andere konstante Patch-Daten aus. Wie hierin verwendet, können Kantentessellationsfaktor und Kantendetaillierungsgrad mit einer Anzahl an Intervallen pro Kante der Grundelement-Domain synonym verwendet werden. Codes sind in Segmente unterteilt, sodass eigenständige Arbeit mit paralleler Beendigung mit einem Verbindungsschritt am Ende ausgeführt werden kann.
  • Der Tessellator 18 kann in Hardware oder in Software implementiert sein. Bei einigen zweckmäßigen Ausführungsformen kann der Tessellator ein softwareimplementierter Tessellator sein. Indem die Geschwindigkeit des Tessellatorbetriebs, wie hierin beschrieben, beschleunigt wird, können die Kerne, die Tessellatoroperationen ausgeführt haben, freigegeben werden, um andere Aufgaben auszuführen. Tessellator 18 soll codierte Domainpunkte oder (u,v)-Werte abrufen. Gespeicherte, codierte Domainpunkte können in einem vorzeichenlosen Ganzzahl-Format vorliegen, und codierte Domainpunkte können, wie hinsichtlich 7A oder 7B beschrieben, abgerufen werden. Der Tessellator 18 kann von dem Hull-Shader Zahlen empfangen, die definieren, wie viel tesselliert werden soll. Tessellator 18 generiert Topologien, wie z. B. Punkte, Linien oder Dreiecke. Tessellator 18 kann mindestens einen Eckpunkt ausgeben.
  • Bei einigen Ausführungsformen weist Tessellator 18 die folgenden Zustande auf und jeder der Zustände kann auf die gegen die Zustandsvariable aufgelisteten Werte eingestellt werden.
    Zustand mögliche Zustandsattribute
    Grundelement-Domains Dreiecke|Vierecke|Isolinien
    Kantenpartitionierung Ganzzahl|Pow2|fractional_odd|fractional even
    innere Tessellationsfaktor-Reduktionsfunktion min.|max.|durchschn.
    innere Tessellationsfaktor-Achsenreduktion 1-Achse|2-Achse
    Tessellatorausgabetopologie Punkt|Linie|Triangle_CW|Triangle_CCW
  • Domain-Shader 20 ist eine programmierbare Stufe, die die Domainpunkte, (u,v)-Werte verwendet, die von Tessellator 18 bereitgestellt werden, um einen realen 3D-Punkt auf einem Patch zu generieren. Bei einigen Ausführungsformen kann Domain-Shader 20 softwareimplementiert sein. Bei einigen Ausführungsformen wendet ein von einem Shader-Compiler generierter Teil von Domain-Shader 20 Scale-and-Bias-Techniken an, um codierte Domainpunkte von Tessellator 18 auf die Domain [0,1] umzurechnen. Zusätzlich kann Domain-Shader 20 den Punkt unter Verwendung einer skalaren Displacement-Abbildung verschieben oder weitere Eckpunktattribute berechnen.
  • Geometrie-Shader 22 kann ein Grundelement eingeben und bis zu vier Datenströme ausgeben, von denen jeder unabhängig null oder mehr Grundelemente empfangt. Ein an dem Ausgang des Geometrie-Shaders entstehender Datenstrom kann dem Rasterizer 24 Grundelemente bereitstellen, während bis zu vier Datenströme mit Puffern 30 verknüpft sein können. Mittels des Rasterizers 24 können Clipping, Perspektiventeilung, Ansichtsfenster und Scissor-Auswahlimplementierung und Erstellung von Grundelementen implementiert werden.
  • Pixel-Shader 26 gibt ein Pixel ein und gibt ein Pixel an derselben Stelle oder kein Pixel aus. Der Ausgabe-Merger 28 stellt festes Funktionszielrendering, Mischung, Tiefe und Stenciloperationen bereit.
  • Unter Bezugnahme auf 2 gemäß einer Ausführungsform, bei der das Grundelement ein Viereck ist, weist ein Viereck 32 eine Oberseite 32t, eine rechte Seite 32r, eine Unterseite 32b und eine linke Seite 32l auf. Bei diesem Beispiel verfügt die Oberseite 32t über ein Intervall, die rechte Seite 32r verfügt über acht Intervalle, die Unterseite 32b verfügt über vier Intervalle und die linke Seite 32l verfügt über zwei Intervalle. Die Intervalle entsprechen dem Kantendetaillierungsgrad und dem Tessellationsfaktor. Bei Tessellator 18 kann eine innere Tessellation entweder eine minimale, maximale oder durchschnittliche Faktor-Reduktionsfunktion verwenden. 2 zeigt eine maximale Reduktionsfunktion. In diesem Fall ist die Tessellation unter Verwendung der Kante 32r implementiert, da sie die maximale Anzahl an Intervallen aufweist. Bei dieser Ausführungsform wird lediglich ein Maximum berechnet. Bei weiteren Ausführungsformen kann ein Dreieck als das Grundelement verwendet werden und weitere innere Tessellations-Reduktionsfunktionen können verwendet werden.
  • 3 zeigt ein Viereck nach einer Verarbeitung mit einer durchschnittlichen Tessellationsfaktor-Reduktionsfunktion. Hier basiert ein Durchschnitt auf dem Durchschnitt der Intervalle der vier Seiten. 4 schließlich zeigt das Ergebnis des minimalen Tessellation-Reduktionsfaktors unter Verwendung der minimalen Seite, welches die Oberseite 32t wäre.
  • Indem als Nächstes auf 5A5C Bezug genommen wird, kann das Viereck in einen äußeren Bereich 36a und eine innere Tessellation 38 unterteilt werden. Der äußere Bereich 36a umfasst alles entlang des Umfanges der Grundelement-Domain, in diesem Fall ein Viereck, und die innere Tessellation umfasst den Rest. 5A5C zeigen, dass bei einem Beispiel einer 1-Achse inneren Tessellationsfaktor-Reduktion die innere Tessellation ungeachtet der in dem äußeren Bereich verwendeten Anzahl an Intervallen die gleiche ist, solange das Maximum der äußeren Tessellationen das gleiche bleibt. Bei diesem Beispiel ist die Tessellationsfaktor-Reduktionsfunktion das Maximum und die Tessellationsfaktor-Achsenreduktion ist 1-Achse. Somit bleibt die innere Tessellation ungeachtet des Kantendetaillierungsgrades oder Tessellationsfaktors die gleiche. Demzufolge ist es möglich, die inneren Tessellationen für viele unterschiedliche Kantendetaillierungsgrade vorab zu berechnen, sie zu speichern und sie einfach anzuwenden, wenn sie während der Laufzeit benötigt werden. Somit können die vorab berechneten inneren Tessellationen für eine Auswahl an Kantendetaillierungsgraden wiederverwendet werden und müssen nicht während der Laufzeit erneut berechnet werden, was die Berechnung beschleunigt.
  • 6 zeigt geradzahlige und ungeradzahlige innere Vierecks-Tessellationen mit Intervallen von 1 bis 8 in Übereinstimmung mit einer Ausführungsform. Im Allgemeinen beinhaltet ein Patch mit einer inneren Patch-Tessellation L eine innere Patch-Tessellation L-2 und einen zusätzlichen äußeren Ring. 6 stellt insbesondere Tessellationen mit geradzahligen und ungeradzahligen Intervallen dar. Beispielsweise beinhaltet eine innere Tessellation mit einem Intervall von 8 innere Tessellationen mit 6, 4 und 2 Intervallen. Ebenso beinhaltet eine innere Tessellation mit einem Intervall von 7 innere Tessellationen mit 5, 3 und 1 Intervall(en).
  • Bei einigen Ausführungsformen werden lediglich zwei Tabellen von Domainpunkten für alle inneren Tessellationsfaktoren gespeichert. Eine erste Tabelle speichert Domainpunkte von geradzahligen inneren Tessellationsfaktoren und eine zweite Tabelle speichert Domainpunkte von ungeradzahligen inneren Tessellationsfaktoren.
  • Der Abstand zwischen Domainpunkten kann abhängig von dem inneren Tessellationsfaktor differieren, da Domainpunkte einer Tessellation in die [0,1]-Domain passen. Beispielsweise verfügt eine innere Tessellation von zwei (2) über Eckpunkte (0,25, 0,25) und (0,75, 0,25), während die innere Tessellation von zwei (2) innerhalb der äußeren Tessellation von vier (4) über Eckpunkte (0,33, 0,33) und (0,66, 0,33) verfügt. Demnach werden die Domainpunkte nicht innerhalb der [0,1]-Ausgabedomain gespeichert. Stattdessen werden bei verschiedenen Ausführungsformen die Domainpunkte als vorzeichenbehaftete Ganzzahlen gespeichert. Scale-and-Bias-Techniken rechnen die vorzeichenbehafteten Ganzzahlen um, damit sie an Domainpunktkoordinaten innerhalb der [0,1]-Domain ankommen. Beispielsweise wird die vorzeichenbehaftete Ganzzahl durch die Anzahl an Intervallen geteilt und ein Ausgleich wird dazugezählt, um an Domainpunktkoordinaten innerhalb der [0,1]-Domain anzukommen. Werden die Domainpunkte als vorzeichenbehaftete Ganzzahlen gespeichert, führt dies zu einer Scale-and-Bias-Operation, die durchgeführt wird, bevor die Domainpunkte in den Domain-Shader (z. B. Domain-Shader 20 von 1) eingegeben werden können. Domain-Shader 20 kann die Scale-and-Bias-Operation an vorzeichenbehafteten Ganzzahlen durchführen, um die vorzeichenbehafteten Ganzzahlen auf die [0,1]-Domain umzurechnen. Die Scale-and-Bias-Operation kann von einem Shader-Compiler eingeführt werden. Ein Shader-Compiler übersetzt höhere Shader-Programme in eine natürliche maschinenausführbare Sprache.
  • Zusätzlich können bei verschiedenen Ausführungsformen vorab berechnete Domainpunkte ohne Präzisionsverlust als zwei 8 Bit vorzeichenbehaftete Ganzzahlen gespeichert werden. Demnach verwenden verschiedene Ausführungsformen weniger Speicher, als wenn ein Domainpunkt als zwei 32 Bit Gleitkommazahlen gespeichert werden würde. Ungefähr ein Viertel weniger Speicherplatz wird verwendet, indem vorab berechnete Domainpunkte als zwei 8 Bit vorzeichenbehaftete Ganzzahlen im Gegensatz zu zwei 32 Bit Gleitkommazahlen gespeichert werden können.
  • 7A zeigt zwei beispielhafte Arten, bei denen auf Domainpunkte von Vierecks-Tessellationen in Übereinstimmung mit einer Ausführungsform zugegriffen wird. Insbesondere 7A stellt Arten dar, um auf Domainpunkte von Vierecks- Tessellationen mit geradzahligem und ungeradzahligem Faktor zuzugreifen.
  • Domainpunkte für jede Tessellation beginnen in der Mitte eines Patches und schreiten nach außen hin fort. Dreiecks-Konnektivität wird in der richtigen Reihenfolge gespeichert, um jeglichen inneren Tessellationsfaktor zu unterstützen, indem bei dem mittleren Ring des Patches begonnen und in einem spiralähnlichen Muster nach außen hin gearbeitet wird.
  • 7B zeigt zwei beispielhafte Arten, bei denen auf Domainpunkte von Dreiecks-Tessellationen in Übereinstimmung mit einer Ausführungsform zugegriffen wird. Insbesondere 7B stellt Arten dar, um auf Domainpunkte von Dreiecks-Tessellationen mit geradzahligem und ungeradzahligem Faktor zuzugreifen. Domainpunkte für jede Tessellation beginnen in der Mitte eines Patches und schreiten nach außen hin fort, sodass Dreiecks-Konnektivität in der richtigen Reihenfolge gespeichert wird, um jeglichen inneren Tessellationsfaktor zu unterstützen.
  • Bei verschiedenen Ausführungsformen werden, zusätzlich zu einer Speicherung von Domainpunkten, Dreiecksendpunkte als Indexwerte in einem Indexpuffer gespeichert. Bei einigen Ausführungsformen gibt es zwei Indexpuffer: einen Indexpuffer für innere Tessellationen mit ungeradzahligem Faktor und einen Indexpuffer für innere Tessellationen mit geradzahligem Faktor. Bezieht man sich beispielsweise auf die geradzahlige Tessellation in 7A, weist ein erstes Dreieck einen Endpunkt in der Mitte der Tessellation und zwei weitere Endpunkte an den zweiten und dritten Domainpunkten entlang des Pfades der Domainpunkte, dem Pfeil folgend, auf. Demnach weist das erste Dreieck Domainpunkte mit Indizes von 0, 1 und 2 auf.
  • Tabelle 1 zeigt einen Vergleich mehrerer Dreierpaare von (u,v)-Koordinaten zum Speichern aller Dreiecke für einen Ansatz, der eine Tabelle für jeden Detaillierungsgrad (level of detail, LOD) verwendet, und Ausführungsformen, die zwei Tabellen für geradzahlige und ungeradzahlige Tessellationen verwenden. Denn ein innerer Tessellationsfaktor 64, der zwei Tabellen für geradzahlige und ungeradzahlige Tessellationen verwendet, kann mehr als zehnmal weniger Indizes verwenden als der Ansatz, eine Tabelle für Dreiecke eines jeden Detaillierungsgrades zu speichern. Tabelle 1
    Tabelle für jeden Detaillierungsgrad Tabellen für geradzahlige und ungeradzahlige Detaillierungsgrade
    innerer Tessellationsfaktor 16 8.976 2.886
    innerer Tessellationsfaktor 32 68.640 11.910
    innerer Tessellationsfaktor 64 536.640 48.390
  • Tabelle 2 zeigt einen Vergleich zwischen der Anzahl an Domainpunkten, die für einen Fall gespeichert wurden, bei dem einzelne Tabellen für jeden Detaillierungsgrad (level of detail, LOD) gespeichert sind (links), gegenüber Tabellen nur für geradzahlige und ungeradzahlige Detaillierungsfaktoren (rechts). Tabelle 2
    Speicherung von Domainpunkten als Gleitkommazahlen Speicherung von Domainpunkten als vorzeichenbehaftete Ganzzahlen
    innerer Tessellationsfaktor 16 1.495 481
    innerer Tessellationsfaktor 32 11.439 1.985
    innerer Tessellationsfaktor 64 89.439 8.065
  • Tabelle 3 zeigt den Gesamtspeicherverbrauch, der verwendet wird, um eine Tabelle für eine Tessellation für jeden Detaillierungsgrad zu speichern, im Gegensatz zu verschiedenen Ausführungsformen, die zwei Tabellen für geradzahlige und ungeradzahlige Detaillierungsgrade speichern. Insbesondere zeigt Tabelle 3 einen Vergleich von Speicher, der zur Speicherung von Dreiecks-Indizes als 16 Bit vorzeichenlose Ganzzahlen für jeden Detaillierungsgrad verwendet wird, im Gegensatz zu verschiedenen Ausführungsformen, die Dreiecks-Indizes in zwei Tabellen für geradzahlige und ungeradzahlige Detaillierungsgrade speichern. Zusätzlich zeigt Tabelle 3 einen Vergleich zur Speicherung von Domainpunkten als zwei 32 Bit Gleitkommazahlen für jeden Detaillierungsgrad gegenüber der Speicherung von Domainpunkten als zwei 8 Bit vorzeichenbehaftete Ganzzahlen für jeden geradzahligen und ungeradzahligen Detaillierungsgrad. Tabelle 3
    Ansatz, derjeden Detaillierungsgrad in einer einzelnen Tabelle speichert Verschiedene Ausführungsformen, die zwei Tabellen speichern: geradzahlige und ungeradzahlige Faktoren
    Indizes Domainpunkte Gesamtspeicher Indizes Domainpunkte Gesamtspeicher
    innerer Tessellationsfaktor 16 17,5 KB 11,7 KB 29,2 KB 5,6 KB 0,9 KB 6,6 KB
    innerer Tessellationsfaktor 32 134,0 KB 89,4 KB 223,4 KB 23,3 KB 3,9 KB 27,1 KB
    innerer Tessellationsfaktor 64 1048,1 KB 698,7 KB 1746,9 KB 94,5 KB 15,8 KB 110,3 KB
  • Bei verschiedenen Ausführungsformen können für unterschiedliche Kantendetaillierungsgrade vorab berechnete Domainwerte der verschiedenen Punkte und die resultierende Triangulation für die innere Tessellation vorab bestimmt und gespeichert werden. Während der Laufzeit können die Domainwerte der inneren Tessellation abgerufen werden. 8 zeigt einen Prozess, der verwendet werden kann, um Dreierpaare von Domainpunkten einer Tessellation bereitzustellen. Im Anschluss daran können Dreiecke für die Tessellation für ein Display gerendert werden. Bei Block 802 liest Tessellator 18 vorab bestimmte, codierte Domainpunkte für eine innere Tessellation mit dem gewünschten Faktor aus dem Speicher aus. Die codierten Domainpunkte können als zwei 8 Bit vorzeichenbehaftete Ganzzahlen gespeichert werden.
  • Bei Block 804 führt Domain-Shader 20 eine Scale-and-Bias-Operation an den vorab bestimmten, codierten Domainpunkten durch, um Domainwerte in der [0,1]-Domgin zu erzeugen. Block 804 kann zwei 8 Bit vorzeichenbehaftete Ganzzahlen in zwei 32 Bit Gleitkommazahlen umrechnen.
  • Bei Block 806 generiert Tessellator 18 Domainpunkte für einen äußeren Bereich einer Tessellation. Die u- und v-Werte sind die Koordinaten oder Intervalle der Punkte, wie beispielsweise in 5A entlang der Horizontalachse u und der Vertikalachse v dargestellt.
  • Bei Block 808 liest Tessellator 18 Indizes von Dreiecksecken für jedes Dreierpaar von einem Indexpuffer für die innere Tessellation aus. Die Indizes sind mit Koordinaten von Dreiecksendpunkten verbunden.
  • Bei Block 810 bestimmt Tessellator 18 die Triangulation für den äußeren Bereich während der Laufzeit.
  • 9 zeigt einen Vergleich zwischen der durchschnittlichen Anzahl an Takten, um ein Patch unter Verwendung eines realen Datensatzes mit 1292 Patches für einen Ansatz zu tessellieren und die Domain zu schattieren, der Domainwerte als Gleitkommawerte für jeden Detaillierungsgrad speichert, und einen weiteren Ansatz, der Domainwerte als vorzeichenlose Ganzzahlen in Tabellen für ungeradzahlige und geradzahlige Detaillierungsgrade speichert. Durch das Speichern von Domainwerten als vorzeichenbehaftete Ganzzahlen fällt ein sehr geringer zusätzlicher Rechenaufwand vom Decodieren an. Das Decodieren der Domainpunkte von vorzeichenbehafteten Ganzzahlen zu Gleitkommawerten in der [0,1]-Domain beeinträchtigt die Leistung leicht. Beispielsweise kann aufgrund des Decodierens eine minimale Verlangsamung von ungefähr 1% bei dem Domain-Shader auftreten.
  • Zusätzlich tritt eine Beschleunigung von ungefähr 1% aufgrund dessen bei dem Tessellator auf, weil nicht mehr entschieden werden muss, welche vorab berechnete Tabelle für jedes Patch verwendet werden soll. Die Gesamtleistung für Tessellator und Domain-Shader verlangsamt sich um weniger als 0,5% für das Speichern von Domainwerten als vorzeichenlose Ganzzahlen in Tabellen für ungeradzahlige und geradzahlige Detaillierungsgrade gegenüber dem Speichern von Domainwerten als Gleitkommawerte für jeden Detaillierungsgrad. Ist diese Verlangsamung unakzeptabel, kann eine Hybridlösung verwendet werden, bei der mehrere (u,v)-Puffer gespeichert werden, aber die Indexpuffer gemeinsam benutzen. Bei solch einer Hybridlösung wird eine Tabelle mit Domainwerten als Gleitkommawerte für jeden Detaillierungsgrad gespeichert und Indexwerte werden in Tabellen für geradzahlige und ungeradzahlige Kantenfaktoren gespeichert.
  • Bei einigen Ausführungsformen können die Patches basierend auf ihrem inneren Tessellationsfaktor unter Verwendung von Threading und Vektorisierung sortiert werden. Die Patches mit dem gleichen Detaillierungsgrad werden dann, wie in 10 angezeigt, auf dem gleichen physikalischen Kern eines Mehrkernprozessors 50 tesselliert. Nach dem Sortieren und Gruppieren in Patch-Sortierer 52 können alle zu tessellierenden Patches mit dem gleichen inneren Tessellationsdetaillierungsgrad an den gleichen Kern 54 oder 56 gesendet werden, und alle Threads auf diesem Kern können dann lediglich eine Kopie in den Level-1-58 und Level-2-60-Cache des Kerns verwenden. Die Dreiecke können dann unter Verwendung der Patch-Grundelement-ID zu einem späteren Zeitpunkt unsortiert werden. Die Tessellation des äußeren Bereichs ist variabel, sowohl hinsichtlich der Anzahl an Punkten, die bei der Triangulation generiert werden. Somit kann ein Dual-Puffer-Ansatz verwendet werden, indem in dem ersten Puffer 62 die bekannten inneren Tessellationen, die vorab berechnet wurden, platziert werden. Dann wird der variable Teil der äußeren Tessellation berechnet und in dem zweiten Puffer 64 gespeichert. Obwohl lediglich zwei Kerne in 10 dargestellt sind, können beliebig viele Kerne verwendet werden.
  • Die hierin beschriebenen Grafik- und/oder Videoverarbeitungs-Techniken können in verschiedenen Hardware-Architekturen implementiert werden. Beispielsweise kann Grafik- und/oder Videofunktionalität innerhalb eines Chipsatzes integriert sein. Alternativ kann ein separater Grafik- und/oder Videoprozessor verwendet werden. Als noch weitere Ausführungsform können die Grafik- und/oder Videofunktionen durch einen Universalprozessor, einschließlich eines Mehrkernprozessors, implementiert werden. Bei einer weiteren Ausführungsform können die Funktionen in einem Unterhaltungselektronik-Gerät implementiert sein.
  • Ausführungsformen der vorliegenden Erfindung können beispielsweise als ein Computerprogramm-Produkt bereitgestellt sein, das ein oder mehr maschinenlesbare(s) Medium/Medien mit darauf gespeicherten maschinenausführbaren Befehlen beinhalten kann, die, wenn sie von einer oder mehr Maschinen, wie z. B. einem Computer, einem Netzwerk von Computern oder anderen elektronischen Geräten ausgeführt werden, dazu führen können, dass die eine oder die mehreren Maschinen Operationen in Übereinstimmung mit Ausführungsformen der vorliegenden Erfindung ausführen. Ein maschinenlesbares Medium kann beinhalten, ist aber nicht beschränkt auf, Disketten, optische Disks, CD-ROMS (Compact Disk-Read Only Memories) und magnetooptische Disks, ROMs (Read Only Memories), RAMs (Random Access Memories), EPROMs (Erasable Programmable Read Only Memories), EEPROMs (Electrically Erasable Programmable Read Only Memories), magnetische oder optische Karten, Flash-Memory oder andere Art von Medien/maschinenlesbarem Medium, das zum Speichern maschinenausführbarer Befehle geeignet ist.
  • Die Zeichnungen und die vorstehende Beschreibung gaben Beispiele der vorliegenden Erfindung. Obwohl sie als eine Anzahl ganz verschiedener funktionaler Objekte dargestellt sind, ist es für Fachleute selbstverständlich, dass ein solches Element oder mehrerer solcher Elemente sehr wohl als einzelne funktionale Elementen gebündelt werden können. Alternativ können bestimmte Elemente in mehrere funktionale Elemente geteilt werden. Elemente aus einer Ausführungsform können einer weiteren Ausführungsform hinzugefügt werden. Beispielsweise können hierin beschriebene Reihenfolgen von Prozessen verändert werden und sind nicht auf die hierin beschriebene Art und Weise beschränkt. Außerdem müssen die Handlungen eines jeden Ablaufdiagramms weder in der gezeigten Reihenfolge implementiert sein, noch müssen alle Vorgänge unbedingt ausgeführt werden. Ebenfalls können diejenigen Vorgänge, die nicht von anderen Vorgängen abhängen, parallel mit den anderen Vorgängen ausgeführt werden. Der Umfang der vorliegenden Erfindung ist jedoch keineswegs durch diese spezifischen Beispiele beschränkt. Zahlreiche Variationen, entweder ausdrücklich in der Beschreibung gegeben oder nicht, wie z. B. Unterschiede in Struktur, Abmessung und Verwendung von Material, sind möglich. Der erfindungsgemäße Umfang ist zumindest so breit, wie von den folgenden Ansprüchen gegeben.

Claims (25)

  1. Computerimplementiertes Verfahren, umfassend: Generieren einer Tessellation basierend auf gespeicherten Domainpunkten, wobei das Generieren umfasst: Abrufen von Domainpunkten einer inneren Tessellation aus entweder einer Tabelle von Tessellationen mit geradzahligem oder ungeradzahligem Faktor; und Bereitstellen der Tessellation zur Anzeige.
  2. Verfahren nach Anspruch 1, wobei das Generieren weiter umfasst: Umrechnen der Domainpunkte auf die [0,1]-Domain.
  3. Verfahren nach Anspruch 2, wobei das Umrechnen umfasst: Umrechnen der Domainpunkte von einem vorzeichenbehafteten Ganzzahl-Format in ein Gleitkomma-Format.
  4. Verfahren nach Anspruch 1, wobei das Abrufen umfasst: Abrufen von Domainpunkten in einer Reihenfolge, die bei einen innersten Domainpunkt der Tessellation beginnt, in spiralähnlicher Reihenfolge zu einem äußeren Domainpunkt hin.
  5. Verfahren nach Anspruch 1, wobei das Generieren weiter umfasst: Lesen von Indizes von Eckpunkten von Dreiecken aus einem Indexpuffer.
  6. Verfahren nach Anspruch 1, wobei das Generieren weiter umfasst: Generieren von Domainpunkten entlang äußerer Kanten der Tessellation.
  7. Verfahren nach Anspruch 1, weiter umfassend: Anordnen zumindest einer Tessellation mit niedrigerem Faktor innerhalb zumindest einer Tessellation mit höherem Faktor; und Speichern der angeordneten Tessellation in einer Reihenfolge, die bei einem innersten Domainpunkt der angeordneten Tessellation beginnt, auf spiralähnliche Art und Weise zu einem äußeren Domainpunkt hin.
  8. Verfahren nach Anspruch 1, weiter umfassend: Speichern von Indizes von Dreiecksecken in einen Indexpuffer, wobei Indizes von Ecken mit Domainpunkten verbunden sind.
  9. Verfahren nach Anspruch 1, wobei die Tessellation zumindest entweder ein Viereck oder ein Dreieck umfasst.
  10. Computerlesbares Medium, das Befehle speichert, die, wenn sie von einem Computer ausgeführt werden, den Computer veranlassen: ein Patch basierend auf gespeicherten Domainpunkten zu generieren, wobei der Computer zum Generieren: codierte Domainpunkte einer inneren Tessellation des Patches aus entweder einer Tabelle von Tessellationen mit geradzahligem oder ungeradzahligem Faktor abrufen soll, codierte Domainpunkte auf die [0,1]-Domain umrechnen soll, und Indizes von Dreiecksecken abrufen soll; und das Patch zur Anzeige bereitstellen soll.
  11. Computerlesbares Medium nach Anspruch 10, wobei der Computer zum Umrechnen codierter Domainpunkte auf die [0,1]-Domain die codierten Domainpunkte einer Scale-and-Bias-Technik unterziehen soll.
  12. Computerlesbares Medium nach Anspruch 10, wobei der Computer zum Abrufen codierter Domainpunkte: codierte Domainpunkte in einer Reihenfolge abrufen soll, die bei einem innersten codierten Domainpunkt der Tessellation beginnt, auf spiralähnliche Art und Weise zu einem äußeren Domainpunkt hin.
  13. Computerlesbares Medium nach Anspruch 10, wobei die codierten Domainpunkte in einer Anordnung gespeichert werden, bei der sich zumindest eine Tessellation mit niedrigerem Faktor innerhalb zumindest einer Tessellation mit höherem Faktor befindet.
  14. Computerlesbares Medium nach Anspruch 10, wobei der Computer zum Generieren eines Patches Domainpunkte entlang äußerer Kanten des Patches generieren soll.
  15. Computerlesbares Medium nach Anspruch 10, wobei der Computer zum Abrufen von Indizes von Dreiecksecken Indizes aus entweder einer Tabelle geradzahliger oder ungeradzahliger Detaillierungsgrade abrufen soll.
  16. Vorrichtung, umfassend: einen Tessellator, um ein Patch zu generieren, wobei der Tessellator zum Generieren eines Patches Domainpunkte eines Patches abrufen soll, wobei der Tessellator zum Abrufen von Domainpunkten Domainpunkte einer inneren Tessellation aus entweder einer ungeradzahligen oder geradzahligen Tabelle abrufen soll; und einen Domain-Shader, um Domainpunkte auf eine [0,1]-Domain umzurechnen und um einen dreidimensionalen Punkt auf dem Patch zu generieren.
  17. Vorrichtung nach Anspruch 16, wobei der Domain-Shader zum Umrechnen von Domainpunkten auf die [0,1]-Domain die codierten Domainpunkte einer Scale-and-Bias-Technik unterziehen soll.
  18. Vorrichtung nach Anspruch 16, wobei der Tessellator zum Abrufen von Domainpunkten: Domainpunkte in einer Reihenfolge abrufen soll, die bei einem innersten Domainpunkt der inneren Tessellation beginnt, auf spiralähnliche Art und Weise zu einem äußeren Domainpunkt der inneren Tessellation hin.
  19. Vorrichtung nach Anspruch 16, wobei die Domainpunkte in einer Anordnung gespeichert werden, bei der sich zumindest eine Tessellation mit niedrigerem Faktor innerhalb zumindest einer Tessellation mit höherem Faktor befindet.
  20. Vorrichtung nach Anspruch 16, wobei der Tessellator zum Generieren eines Patches Domainpunkte entlang äußerer Kanten des Patches generieren soll.
  21. Vorrichtung nach Anspruch 16, wobei der Tessellator zum Generieren des Patches ebenfalls Indizes von Dreiecksecken aus einer Tabelle ungeradzahliger oder geradzahliger Detaillierungsgrade abrufen soll.
  22. System, umfassend: ein Display; und ein Computersystem, um Patches zur Übertragung an das Display zu generieren, wobei das Computersystem umfasst: einen Tessellator, um ein Patch zu generieren, wobei der Tessellator zum Generieren eines Patches Domainpunkte eines Patches abrufen soll, wobei der Tessellator zum Abrufen von Domainpunkten Domainpunkte einer inneren Tessellation aus entweder einer ungeradzahligen oder geradzahligen Tabelle abrufen soll; und einen Domain-Shader, um Domainpunkte auf eine [0,1]-Domain umzurechnen und um einen dreidimensionalen Punkt auf dem Patch zu generieren.
  23. System nach Anspruch 22, wobei der Domain-Shader zum Umrechnen von Domainpunkten auf die [0,1]-Domain die codierten Domainpunkte einer Scale-and-Bias-Technik unterziehen soll.
  24. System nach Anspruch 22, wobei der Tessellator zum Abrufen von Domainpunkten: Domainpunkte in einer Reihenfolge abrufen soll, die bei einem innersten Domainpunkt der inneren Tessellation beginnt, auf spiralähnliche Art und Weise zu einem äußeren Domainpunkt der inneren Tessellation hin.
  25. System nach Anspruch 22, wobei der Tessellator zum Generieren des Patches ebenfalls Indizes von Dreiecksecken aus entweder einer Tabelle ungeradzahliger oder geradzahliger Detaillierungsgrade abrufen soll.
DE102010018701.1A 2009-04-29 2010-04-29 Bilderzeugungstechniken Active DE102010018701B4 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US12/387,187 US8482560B2 (en) 2008-12-31 2009-04-29 Image forming techniques
US12/387,187 2009-04-29

Publications (2)

Publication Number Publication Date
DE102010018701A1 true DE102010018701A1 (de) 2010-11-18
DE102010018701B4 DE102010018701B4 (de) 2023-12-14

Family

ID=42270887

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102010018701.1A Active DE102010018701B4 (de) 2009-04-29 2010-04-29 Bilderzeugungstechniken

Country Status (5)

Country Link
US (1) US8482560B2 (de)
CN (2) CN103761770B (de)
DE (1) DE102010018701B4 (de)
GB (1) GB2469920B (de)
SG (2) SG10201401708QA (de)

Families Citing this family (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8884957B2 (en) * 2009-09-09 2014-11-11 Advanced Micro Devices, Inc. Tessellation engine and applications thereof
US8537158B2 (en) * 2009-12-02 2013-09-17 Microsoft Corporation Parallel triangle tessellation
US9183651B2 (en) 2010-10-06 2015-11-10 Microsoft Technology Licensing, Llc Target independent rasterization
US9165403B2 (en) 2011-01-14 2015-10-20 Intel Corporation Planetary scale object rendering
CN102096948B (zh) * 2011-03-01 2012-10-31 西安邮电学院 一种适用图形硬件的分格化方法
WO2013101177A1 (en) * 2011-12-30 2013-07-04 Intel Corporation Reducing the domain shader/tessellatorinvocations
WO2013147826A1 (en) * 2012-03-30 2013-10-03 Intel Corporation Offloading tessellation from a graphics processor to a central processing unit
US10559123B2 (en) 2012-04-04 2020-02-11 Qualcomm Incorporated Patched shading in graphics processing
US9142060B2 (en) 2012-08-30 2015-09-22 Qualcomm Incorporated Computation reduced tessellation
US9076260B2 (en) 2012-08-30 2015-07-07 Qualcomm Incorporated Stitching for primitives in graphics processing
US9082204B2 (en) 2012-08-30 2015-07-14 Qualcomm Incorporated Storage structures for stitching primitives in graphics processing
US9177351B2 (en) * 2012-10-09 2015-11-03 Qualcomm Incorporated Multi-primitive graphics rendering pipeline
US9305397B2 (en) 2012-10-24 2016-04-05 Qualcomm Incorporated Vertex order in a tessellation unit
US9401034B2 (en) * 2013-04-30 2016-07-26 Microsoft Technology Licensing, Llc Tessellation of two-dimensional curves using a graphics pipeline
KR102072656B1 (ko) 2013-07-16 2020-02-03 삼성전자 주식회사 캐시를 포함하는 테셀레이션 장치, 그의 동작 방법, 및 상기 장치를 포함하는 시스템
KR101555426B1 (ko) * 2014-02-07 2015-09-25 고려대학교 산학협력단 지형 렌더링 방법 및 장치
US10134171B2 (en) * 2014-09-29 2018-11-20 Arm Limited Graphics processing systems
GB2552260B (en) 2015-06-05 2019-04-10 Imagination Tech Ltd Tessellation method
GB2540981B (en) * 2015-08-03 2017-11-15 Advanced Risc Mach Ltd Graphics processing
US10068372B2 (en) 2015-12-30 2018-09-04 Advanced Micro Devices, Inc. Method and apparatus for performing high throughput tessellation
US20170358132A1 (en) * 2016-06-12 2017-12-14 Apple Inc. System And Method For Tessellation In An Improved Graphics Pipeline
US10242496B2 (en) 2017-04-24 2019-03-26 Intel Corporation Adaptive sub-patches system, apparatus and method
US10580209B2 (en) * 2018-03-06 2020-03-03 Qualcomm Incorporated Removal of degenerated sub-primitives in tessellation
GB2572625B (en) * 2018-04-05 2020-06-17 Imagination Tech Ltd Ordering in tessellation operations
CN112419147B (zh) * 2020-04-14 2023-07-04 上海哔哩哔哩科技有限公司 图像渲染方法及装置

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6167159A (en) * 1998-04-30 2000-12-26 Virtue Ltd. Triangle mesh compression
US6504537B1 (en) * 2000-09-05 2003-01-07 Nvidia Corporation System, method and article of manufacture for fractional tessellation during graphics processing
US6597356B1 (en) 2000-08-31 2003-07-22 Nvidia Corporation Integrated tessellator in a graphics processing unit
DE60323625D1 (de) * 2002-05-03 2008-10-30 Vialogy Llc Verfahren zur charakterisierung der ausgangssignale eines microarrays
US6940505B1 (en) * 2002-05-20 2005-09-06 Matrox Electronic Systems Ltd. Dynamic tessellation of a base mesh
US8482559B2 (en) * 2002-11-04 2013-07-09 Ati Technologies Ulc Method and apparatus for triangle tessellation
US7639252B2 (en) * 2004-08-11 2009-12-29 Ati Technologies Ulc Unified tessellation circuit and method therefor
US20070018988A1 (en) * 2005-07-20 2007-01-25 Michael Guthe Method and applications for rasterization of non-simple polygons and curved boundary representations
CN100468464C (zh) * 2006-12-11 2009-03-11 中山大学 一种基于逆Loop细分的渐进网格生成方法
US7928979B2 (en) * 2008-02-01 2011-04-19 Microsoft Corporation Efficient geometric tessellation and displacement
CN101408991B (zh) * 2008-05-12 2012-06-27 中山大学 一种插值型细分和逼近型细分相融合的曲面造型方法
CN101403909B (zh) * 2008-11-12 2010-07-21 山东理工大学 三角网格细分曲面nc刀轨生成方法
CN102763139B (zh) * 2010-02-23 2015-07-01 三菱电机株式会社 图像显示装置

Also Published As

Publication number Publication date
GB201006998D0 (en) 2010-06-09
US20100164955A1 (en) 2010-07-01
SG10201401708QA (en) 2014-06-27
CN103761770B (zh) 2017-05-17
US8482560B2 (en) 2013-07-09
GB2469920A (en) 2010-11-03
CN101894358A (zh) 2010-11-24
SG166088A1 (en) 2010-11-29
CN103761770A (zh) 2014-04-30
DE102010018701B4 (de) 2023-12-14
CN101894358B (zh) 2014-01-08
GB2469920B (en) 2015-03-18

Similar Documents

Publication Publication Date Title
DE102010018701A1 (de) Bilderzeugungstechniken
DE112009004418T5 (de) Tessellator, dessen Tessellationszeit mit dem Tessellationsumfang linear steigt
CN108701235B (zh) 在计算系统中执行抗混叠操作
DE102013114090B4 (de) Konservative Rasterung von Primitiven unter Benutzung eines Fehler-Terms
DE102008026431B4 (de) Extrapolation von nicht residenten Mipmap-Daten unter Verwendung residenter Mipmap-Daten
DE60126967T2 (de) Verfahren und Vorrichtung für Anti-Aliasing durch Überabtastung
DE102013114373A1 (de) Konsistente Vertex-Einrastung für Rendering mit variabler Auflösung
DE102018114286A1 (de) Durchführen einer Traversierungs-Stack-Komprimierung
DE102011011947A1 (de) Kantenverarbeitungstechniken
DE112009000180T5 (de) Verfahren, Vorrichtung und Computerprogrammprodukt für eine verbesserte Grafikperformance
DE102018113845A1 (de) Systeme und Verfahren zum Trainieren von neuronalen Netzwerken mit dünnbesetzten Daten
DE102013020613A1 (de) Umgehung der Pixel-Schattierung für die grafische Bilderzeugung mit geringer Leistung
DE102013013562A1 (de) Kachelbasierte computergraphik
DE102013218594A1 (de) System, Verfahren und Computerprogrammprodukt zur parallelen Rekonstruktion eines gesampelten Suffixarrays
DE102015107869A1 (de) Vergabe von Primitiven an Primitiv-Blöcke
DE19917092A1 (de) Verfahren zur Rasterisierung eines Graphikgrundelements
DE102013114176A1 (de) Tessellieren von Oberflächendatensegmenten beim kachelbasierten Rendern von Computergrafik
DE102013020810A1 (de) Effiziente Super-Abtastung mit Schattierungs-Strängen pro Pixel
DE102013222685A1 (de) System, Verfahren und Computer-Programm-Produkt zum Abtasten einer hierarchischen Tiefe-Karte
DE112017001703T5 (de) Verfahren und Vorrichtung zum effizienteren Ray-Tracing von instanziierter Geometrie
DE112012005770T5 (de) Zeichnungsdaten-Erzeugungsvorrichtung und Bildzeichnungsvorrichtung
DE102010025310A1 (de) Textursampling
DE102013017981A1 (de) Optimierung einer Dreieck-Topologie für Pfad-Bilderzeugung
DE102013021046A1 (de) Erzeugung fehlerbefreiter Voxel-Daten
KR20150048228A (ko) 대칭적 에지 스플릿팅에 의한 표면 테셀레이션

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
R016 Response to examination communication
R016 Response to examination communication
R016 Response to examination communication
R130 Divisional application to

Ref document number: 102010064581

Country of ref document: DE

R130 Divisional application to

Ref document number: 102010064581

Country of ref document: DE

Effective date: 20141110

R016 Response to examination communication
R081 Change of applicant/patentee

Owner name: TAHOE RESEARCH, LTD., IE

Free format text: FORMER OWNER: INTEL CORPORATION, SANTA CLARA, CALIF., US

R082 Change of representative

Representative=s name: VOSSIUS & PARTNER PATENTANWAELTE RECHTSANWAELT, DE

R016 Response to examination communication
R018 Grant decision by examination section/examining division