DE102010018701A1 - Bilderzeugungstechniken - Google Patents
Bilderzeugungstechniken Download PDFInfo
- 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
Links
- 238000003384 imaging method Methods 0.000 title 1
- 238000000034 method Methods 0.000 claims description 19
- 239000000872 buffer Substances 0.000 claims description 12
- 238000012546 transfer Methods 0.000 claims description 3
- 230000009467 reduction Effects 0.000 description 16
- 230000015654 memory Effects 0.000 description 13
- 230000006870 function Effects 0.000 description 12
- 238000012545 processing Methods 0.000 description 12
- 238000013459 approach Methods 0.000 description 6
- 206010070834 Sensitisation Diseases 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 238000009877 rendering Methods 0.000 description 2
- 230000008313 sensitization Effects 0.000 description 2
- 238000000638 solvent extraction Methods 0.000 description 2
- 230000001133 acceleration Effects 0.000 description 1
- 230000002411 adverse Effects 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 238000006073 displacement reaction Methods 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 238000005286 illumination Methods 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 238000002156 mixing Methods 0.000 description 1
- 238000012887 quadratic function Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T17/00—Three dimensional [3D] modelling, e.g. data description of 3D objects
- G06T17/20—Finite 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 in5A . -
5C ist eine 1-Achse innere Tessellation, bei der die linke Kante einen anderen Kantendetaillierungsgrad gemäß einer Ausführungsform aufweist als die in5A und5B 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 in1 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 in1 angezeigt. Eckpunktkennzeichner und Instanzkennzeichner sind ab dem Vertex-Shader14 abrufbar. Grundelementkennzeichner sind ab dem Hull-Shader16 abrufbar. Die Steuerpunktkennzeichner sind lediglich in dem Hull-Shader16 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-Shader16 gibt den Steuerpunkt pro Abruf aus. Die vereinigte Ausgabe ist eine geteilte Eingabe an die nächste Hull-Shader-Phase und an den Domain-Shader20 . Konstante Patch-Phasen können einmal pro Patch mit geteilter Leseeingabe aller Eingabe- und Ausgabe-Steuerpunkte aktiviert werden. Der Hull-Shader16 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. Tessellator18 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 hinsichtlich7A oder7B beschrieben, abgerufen werden. Der Tessellator18 kann von dem Hull-Shader Zahlen empfangen, die definieren, wie viel tesselliert werden soll. Tessellator18 generiert Topologien, wie z. B. Punkte, Linien oder Dreiecke. Tessellator18 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 Tessellator18 bereitgestellt werden, um einen realen 3D-Punkt auf einem Patch zu generieren. Bei einigen Ausführungsformen kann Domain-Shader20 softwareimplementiert sein. Bei einigen Ausführungsformen wendet ein von einem Shader-Compiler generierter Teil von Domain-Shader20 Scale-and-Bias-Techniken an, um codierte Domainpunkte von Tessellator18 auf die Domain [0,1] umzurechnen. Zusätzlich kann Domain-Shader20 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 Rasterizer24 Grundelemente bereitstellen, während bis zu vier Datenströme mit Puffern30 verknüpft sein können. Mittels des Rasterizers24 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-Merger28 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 Viereck32 eine Oberseite32t , eine rechte Seite32r , eine Unterseite32b und eine linke Seite32l auf. Bei diesem Beispiel verfügt die Oberseite32t über ein Intervall, die rechte Seite32r verfügt über acht Intervalle, die Unterseite32b verfügt über vier Intervalle und die linke Seite32l verfügt über zwei Intervalle. Die Intervalle entsprechen dem Kantendetaillierungsgrad und dem Tessellationsfaktor. Bei Tessellator18 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 Kante32r 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 Oberseite32t wäre. - Indem als Nächstes auf
5A –5C Bezug genommen wird, kann das Viereck in einen äußeren Bereich36a und eine innere Tessellation38 unterteilt werden. Der äußere Bereich36a umfasst alles entlang des Umfanges der Grundelement-Domain, in diesem Fall ein Viereck, und die innere Tessellation umfasst den Rest.5A –5C 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 von1 ) eingegeben werden können. Domain-Shader20 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. Insbesondere7A 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. Insbesondere7B 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 Block802 liest Tessellator18 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-Shader20 eine Scale-and-Bias-Operation an den vorab bestimmten, codierten Domainpunkten durch, um Domainwerte in der [0,1]-Domgin zu erzeugen. Block804 kann zwei 8 Bit vorzeichenbehaftete Ganzzahlen in zwei 32 Bit Gleitkommazahlen umrechnen. - Bei Block
806 generiert Tessellator18 Domainpunkte für einen äußeren Bereich einer Tessellation. Die u- und v-Werte sind die Koordinaten oder Intervalle der Punkte, wie beispielsweise in5A entlang der Horizontalachse u und der Vertikalachse v dargestellt. - Bei Block
808 liest Tessellator18 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 Tessellator18 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 Mehrkernprozessors50 tesselliert. Nach dem Sortieren und Gruppieren in Patch-Sortierer52 können alle zu tessellierenden Patches mit dem gleichen inneren Tessellationsdetaillierungsgrad an den gleichen Kern54 oder56 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 Puffer62 die bekannten inneren Tessellationen, die vorab berechnet wurden, platziert werden. Dann wird der variable Teil der äußeren Tessellation berechnet und in dem zweiten Puffer64 gespeichert. Obwohl lediglich zwei Kerne in10 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)
- 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.
- Verfahren nach Anspruch 1, wobei das Generieren weiter umfasst: Umrechnen der Domainpunkte auf die [0,1]-Domain.
- Verfahren nach Anspruch 2, wobei das Umrechnen umfasst: Umrechnen der Domainpunkte von einem vorzeichenbehafteten Ganzzahl-Format in ein Gleitkomma-Format.
- 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.
- Verfahren nach Anspruch 1, wobei das Generieren weiter umfasst: Lesen von Indizes von Eckpunkten von Dreiecken aus einem Indexpuffer.
- Verfahren nach Anspruch 1, wobei das Generieren weiter umfasst: Generieren von Domainpunkten entlang äußerer Kanten der Tessellation.
- 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.
- Verfahren nach Anspruch 1, weiter umfassend: Speichern von Indizes von Dreiecksecken in einen Indexpuffer, wobei Indizes von Ecken mit Domainpunkten verbunden sind.
- Verfahren nach Anspruch 1, wobei die Tessellation zumindest entweder ein Viereck oder ein Dreieck umfasst.
- 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.
- 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.
- 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.
- 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.
- Computerlesbares Medium nach Anspruch 10, wobei der Computer zum Generieren eines Patches Domainpunkte entlang äußerer Kanten des Patches generieren soll.
- 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.
- 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.
- 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.
- 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.
- 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.
- Vorrichtung nach Anspruch 16, wobei der Tessellator zum Generieren eines Patches Domainpunkte entlang äußerer Kanten des Patches generieren soll.
- Vorrichtung nach Anspruch 16, wobei der Tessellator zum Generieren des Patches ebenfalls Indizes von Dreiecksecken aus einer Tabelle ungeradzahliger oder geradzahliger Detaillierungsgrade abrufen soll.
- 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.
- 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.
- 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.
- 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.
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)
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)
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 | 三菱电机株式会社 | 图像显示装置 |
-
2009
- 2009-04-29 US US12/387,187 patent/US8482560B2/en active Active
-
2010
- 2010-04-27 GB GB1006998.7A patent/GB2469920B/en active Active
- 2010-04-28 SG SG10201401708QA patent/SG10201401708QA/en unknown
- 2010-04-28 SG SG201002991-6A patent/SG166088A1/en unknown
- 2010-04-29 CN CN201310741103.9A patent/CN103761770B/zh active Active
- 2010-04-29 CN CN201010214137.9A patent/CN101894358B/zh active Active
- 2010-04-29 DE DE102010018701.1A patent/DE102010018701B4/de active Active
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 |