DE112009004418T5 - Tessellator, dessen Tessellationszeit mit dem Tessellationsumfang linear steigt - Google Patents
Tessellator, dessen Tessellationszeit mit dem Tessellationsumfang linear steigt Download PDFInfo
- Publication number
- DE112009004418T5 DE112009004418T5 DE112009004418T DE112009004418T DE112009004418T5 DE 112009004418 T5 DE112009004418 T5 DE 112009004418T5 DE 112009004418 T DE112009004418 T DE 112009004418T DE 112009004418 T DE112009004418 T DE 112009004418T DE 112009004418 T5 DE112009004418 T5 DE 112009004418T5
- Authority
- DE
- Germany
- Prior art keywords
- tessellation
- tessellator
- detail
- tesselation
- edge
- 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.)
- Ceased
Links
- 238000000034 method Methods 0.000 claims description 12
- 239000000872 buffer Substances 0.000 claims description 5
- 230000006870 function Effects 0.000 description 12
- 238000009877 rendering Methods 0.000 description 3
- 206010070834 Sensitisation Diseases 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000008313 sensitization Effects 0.000 description 2
- 238000000638 solvent extraction Methods 0.000 description 2
- 230000002411 adverse Effects 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005286 illumination Methods 0.000 description 1
- 238000012887 quadratic function Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/20—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using video object coding
- H04N19/29—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using video object coding involving scalability at the object level, e.g. video object layer [VOL]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/30—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability
- H04N19/36—Scalability techniques involving formatting the layers as a function of picture distortion after decoding, e.g. signal-to-noise [SNR] scalability
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Computer Graphics (AREA)
- Geometry (AREA)
- Software Systems (AREA)
- Image Generation (AREA)
Abstract
Gemäß einigen Ausführungsformen kann ein Tessellator lediglich einen linearen Anstieg der Tessellationszeit mit ansteigendem Kantendetaillierungsgrad erfahren. Herkömmlicherweise erfahren Tessellatoren einen nichtlinearen oder quadratischen Anstieg der Tessellationszeit mit ansteigendem Detaillierungsgrad. In einigen Ausführungsformen können die Intervalle und die Triangulation einer inneren Tessellation vorab berechnet werden. Dann können während der Laufzeit die vorab berechneten Werte für den geeigneten Kantendetaillierungsgrad nachgesehen werden.
Description
- Die vorliegende Anmeldung bezieht sich allgemein auf Grafikverarbeitung, einschließlich der Verwendung von Grafikprozessoren und Universalprozessoren, die zur Grafikverarbeitung verwendet werden.
- Die Grafikpipeline kann dafür verantwortlich sein, Grafiken für Spiele, Computeranimationen, medizinische Anwendungen und dergleichen zu rendern.
- Der Detaillierungsgrad der Grafikbilder, die generiert werden, kann aufgrund von Einschränkungen in der Grafikpipeline alles andere als linear sein. Je größer das Detail ist, das bereitgestellt wird, desto langsamer ist die resultierende Grafikverarbeitung. Somit gibt es einen Kompromiss zwischen Verarbeitungsgeschwindigkeit und Grafikdetail. Neue Grafikverarbeitungspipelines, wie zum Beispiel 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 ein höheres Maß von Tessellation bereitgestellt wird. Die Verarbeitungsgeschwindigkeit kann jedoch nachteilig beeinflusst werden. Im allgemeinen steigt die Verarbeitungszeit quadratisch mit einem erhöhten Detaillierungsgrad eines Bildes.
- Kurze Beschreibung der Zeichnungen
-
1 zeigt eine schematische Darstellung einer Grafikpipeline gemäß einer Ausführungsform; -
2 zeigt eine Darstellung einer inneren Tessellation mit einer maximalen inneren Tessellationsfaktor-Reduktionsfunktion und einer 1-Achse-innerer Tessellationsfaktor-Achsenreduktion gemäß einer Ausführungsform; -
3 zeigt eine Darstellung eines Tessellationsmusters mit einer durchschnittlichen inneren Tessellationsfaktor-Reduktionsfunktion und 1-Achse-innerer Tessellationsfaktor-Achsenreduktion gemäß einer Ausführungsform; -
4 zeigt eine Darstellung eines Tessellationsmusters für eine 1-Achse-Tessellation unter Verwendung einer minimalen inneren Tessellationsfaktor-Reduktionsfunktion gemäß einer Ausführungsform; -
5A zeigt eine Darstellung einer 1-Achse-innerer Tessellationsfaktor-Achsenreduktion gemäß einer Ausführung; -
5B zeigt eine 1-Achse-innere Tessellation, bei der die obere Kante einen anderen Kantendetaillierungsgrad als in5A aufweist, gemäß einer Ausführungsform; -
5C zeigt eine 1-Achse-innere Tessellation, bei der die linke Kante einen anderen Kantendetaillierungsgrad als die in den5A und5B gezeigten Tessellationen aufweist, gemäß einer Ausführungsform; -
6 zeigt eine hypothetische Grafik von Zyklen pro Patch in Abhängigkeit vom Detaillierungsgrad, die den Effekt für eine nichtlineare Beziehung und eine lineare Beziehung unter Verwendung einer 1-Achse Potenz 2(Power2)-Tessellation auf einem Software-Tessellator gemäß einer Ausführungsform zeigt; -
7 zeigt ein Ablaufdiagramm für eine Ausführungsform der vorliegenden Erfindung; und -
8 zeigt eine schematische Darstellung eines Mehrkernprozessors gemäß einer Ausführungsform. - Ausführliche Beschreibung
- Gemäß einigen Ausführungsformen steigt die Tessellationszeit lediglich linear mit dem Tessellationsumfang. Herkömmlicherweise steigt die Tessellationszeit als eine quadratische Funktion mit dem Umfang der Tessellationsdetaillierung. Demzufolge kann die 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 und/oder die Tessellationsverarbeitungsfähigkeit erhöht werden, indem eine Reihe von vorab berechneten inneren Tessellationen über einen Bereich von Kantendetaillierungsgraden vorab berechnet wird. Dies erspart eine Neuberechnung der inneren Tessellationen während der Laufzeit.
- Gemäß einigen Ausführungsformen kann die Tessellation eine Domain aus Dreiecks- oder Vierecks-Grundelementen verwenden. Kantenpartionierung 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.
- Die innere Tessellation ist die Tessellation von Grundelement-Punkten innerhalb des Außenumfanges des Grundelements. Der äußere Bereich besteht aus dem Umfang des Grundelements.
- Unter Bezugnahme auf
1 kann eine Grafikpipeline in einem Grafikprozessor als eine dedizierte integrierte Standalone-Schaltung, in Software, durch Software implementierte Universalprozessoren oder durch Kombinationen von Software und Hardware implementiert sein. - Der Eingabe-Assembler
12 liest unter Verwendung fester Funktionsoperatoren 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 den Hull-Shader16 abrufbar. - Der Vertex-Shader
14 führt Operationen, wie zum Beispiel 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 von Intervallen pro Kante der Grundelement-Domain synonym verwendet werden. Codes sind in Segmente unterteilt, so dass 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 vorteilhaften Ausführungsformen kann der Tessellator ein Software implementierter Tessellator sein. Indem die Geschwindigkeit des Tessellatorbetriebs, wie hierin beschrieben, beschleunigt wird, können die Kerne die Tessellationsoperationen durchgeführt haben, freigegeben werden, um andere Aufgaben durchzuführen. Der Tessellator18 kann von dem Hull-Shader Zahlen eingeben, die definieren, wie viel tesselliert werden soll. Er generiert Grundelemente, wie zum Beispiel Dreiecke oder Quadrate und Topologien, wie zum Beispiel Punkte, Linien oder Dreiecke. Bei einer Ausführungsform gibt der Tessellator eine Domain-Position pro geteilter Nurleseeingabe aller Hull-Shader-Ausgaben für das Patch ein. Er kann einen Eckpunkt ausgeben. - Der Geometrie-Shader
22 kann ein Grundelement eingeben und bis zu vier Datenströme ausgeben, von denen jeder unabhängig null oder mehr Grundelemente empfängt. Ein an dem Ausgang des Geometrie-Shaders stehender Datenstrom kann dem Rasterizer24 Grundelemente bereitstellen, während bis zu vier Datenströme mit Puffer30 verknüpft sein können. Mittels des Rasterizers24 können Clipping, Perspektiventeilung, Ansichtsfenster und Scissor-Auswahlimplementierung und Erstellung von Grundelementen implementiert werden. - Der 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 Stencil-Operationen bereit. - Unter Bezugnahme auf
2 weist somit gemäß einer Ausführungsform, bei der das Grundelement ein Viereck ist, 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 über acht Intervalle, die Unterseite32b über vier Intervalle und die linke Seite32l über zwei Intervalle. Die Intervalle entsprechen dem Kantendetaillierungsgrad und dem Tessellationsfaktor. In dem 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 von Intervallen aufweist. Bei dieser Ausführungsform wird lediglich ein Maximum berechnet. Bei weiteren Ausführungsformen kann ein Dreieck als das Grundelement verwendet werden und können weitere innere Tessellations-Reduktionsfunktionen 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. Schließlich zeigt4 das Ergebnis des minimalen Tessellations-Reduktionsfaktors unter Verwendung der minimalen Seite, welches die Oberseite32t wäre. - Als nächstes auf die
5A –5C Bezug nehmend, 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-innerer Tessellationsfaktor-Reduktion die innere Tessellation ungeachtet der in dem äußeren Bereich verwendeten Anzahl von 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 die 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, 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 einen Bereich von Kantendetaillierungsgraden wiederverwendet werden und müssen nicht während der Laufzeit erneut berechnet werden, was die Berechnung beschleunigt. - Unter Bezugnahme auf die
6 steigt die Tessellationszeit mit steigendem Tessellationsdetail, wie durch die kreuzweise schraffierten Balken angezeigt, unter Verwendung einer Ausführungsform der vorliegenden Erfindung linear an. Mit anderen Techniken steigt jedoch die Tessellationszeit nicht linear oder quadratisch mit zunehmendem Tessellationsdetail, wie durch die schraffierten Balken angezeigt. Das in der6 gezeigte Beispiel verwendet 1-Achse-Tessellationsreduktion unter Verwendung von Potenz2 (power 2)-Kantenpartionierung und Reduktionsfunktionen mit maximalem Tessellationsfaktor. Bei diesem Beispiel wurde eine Software basierte Tessellation verwendet. Wenn der Detaillierungsgrad steigt, steigt somit die Anzahl von Zyklen pro Patch in einem größeren Umfang bei dem nichtlinearen Beispiel, aber linear bei dem Beispiel gemäß einer Ausführungsform der vorliegenden Erfindung. Mit einigen Hardware basierten Lösungen können die Unterschiede zwischen vorab berechneten inneren Tessellationen und nicht vorab berechneten inneren Tessellationen weniger dramatisch sein. - Unter Bezugnahme auf
7 beginnt der Tessellator18 gemäß einer Ausführungsform der vorliegenden Erfindung mit Vorabberechnung und Speichern der u- und der v-Werte für die innere Tessellation, wie in Block40 angezeigt. Die u- und v-Werte sind einfach die Koordinaten oder Intervalle der Punkte, wie zum Beispiel in5A dargestellt, entlang der horizontalen Achse u und der vertikalen Achse v. Ferner kann die Triangulation für die innere Tessellation vorab berechnet werden, wie in Block42 angezeigt, und gespeichert werden. Somit können in einer Ausführungsform für alle verschiedenen Kantendetaillierungsgrade ein vorab berechneter Wert der zahlreichen Punkte und die resultierende Triangulation für die innere Tessellation vorab bestimmt und gespeichert werden. Dann werden die u-, v-Werte entlang des äußeren Bereichs des Grundelements während der Laufzeit berechnet, wie in Block44 angezeigt. Außerdem wird die Triangulation für den äußeren Bereich, wie bei Block46 angezeigt, während der Laufzeit berechnet. Dann sieht der Tessellator18 die geeigneten vorab berechneten Werte für die inneren Tessellationen auf der Basis des geeigneten Detaillierungsgrads nach. - Somit gibt es bei einigen Ausführungsformen, wie zum Beispiel DirectX 11, lediglich 64 diskrete Kantendetaillierungsgrade. Andere Ausführungsformen können andere Anzahlen von Kantendetaillierungsgraden verwenden. Die innere Tessellation kann für jeden dieser Kantendetaillierungsgrade vorab berechnet und zur Verwendung während der Laufzeit gespeichert werden.
- Wenn ein Bild bearbeitet wird, können während der Laufzeit unterschiedliche Kantendetaillierungsgrade für unterschiedliche Bereiche des Bildes spezifiziert werden. Typischerweise werden Dinge, die näher zur Kamera liegen (und somit diejenigen, die einen größeren Bildschirmbereich einnehmen) mehr als diejenigen tesselliert, die sich von der Kamera weiter weg befinden. Bei einer Animation, bei der ein Faustschlag versetzt wird, kann somit der Detaillierungsgrad für die Faust am höchsten sein und können die Bereiche, die sich fern von der Faust befinden, einen geringeren Detaillierungsgrad verwenden. Somit kann ein relativ realistisches Rendern erzeugt werden, weil Benutzer die unterschiedlichen Detaillierungsgrade, die in Bereichen von geringerem Interesse verwendet werden, in der Darstellung nicht bemerken können. Demzufolge kann eine große Vielzahl von Kantendetaillierungsgraden auftreten. Anstelle der Berechnung von jedem dieser Detaillierungsgrade für die innere Tessellation während der Laufzeit, wenn sie auftreten, können sie bei einigen Ausführungsformen alle vorab berechnet werden und dann während der Laufzeit nachgesehen und einfach verwendet werden, ohne die Laufzeitberechnung mit der Bestimmung der Werte der Punkte der inneren Tessellation und Verbindbarkeit oder Triangulation zu verzögern.
- 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
8 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 können dann alle Threads auf diesem Kern lediglich eine Kopie in den Level-158 und Level-2 60-Caches des Kerns verwenden. Die Dreiecke können dann unter Verwendung der Patch-Grundelement-ID zu einem späteren Zeitpunkt umsortiert werden. Die Tessellation des äußeren Bereichs ist variabel, sowohl hinsichtlich der Anzahl von Punkten, die bei der Triangulation generiert werden. Somit kann ein Doppel-Puffer-Ansatz verwendet werden, indem in dem ersten Puffer62 die bekannten inneren Tessellationen, die vorberechnet wurden, platziert werden. Dann wird der variable Teil der äußeren Tessellation berechnet und in dem zweiten Puffer64 gespeichert. Obwohl lediglich zwei Kerne in8 dargestellt sind, können beliebig viele Kerne verwendet werden. -
- Die hierin beschriebenen Grafikbearbeitungstechniken können in verschiedenen Hardware-Architekturen implementiert werden. Beispielsweise kann Grafikfunktionalität innerhalb eines Chipsatzes integriert sein. Alternativ kann ein separater Grafikprozessor verwendet werden. Als noch weitere Ausführungsform können die Grafikfunktionen durch einen Universalprozessor, einschließlich eines Mehrkernprozessors, implementiert werden.
- 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” nicht notwendigerweise immer auf dieselbe Ausführungsform. Des Weiteren können die bestimmten Merkmale, Strukturen oder Charakteristika in anderen geeigneten Formen als der dargestellten bestimmten Ausführungsform eingesetzt sein, und alle derartigen Formen können in diesen Ansprüchen der vorliegenden Anmeldung umfasst sein.
- Während die vorliegende Erfindung unter Bezugnahme auf eine begrenzte Anzahl von Ausführungsformen beschrieben worden ist, werden Fachleute auf dem Gebiet zahlreiche Modifikationen und Varianten davon erkennen. Die beigefügten Ansprüche sollen alle derartigen Modifikationen und Varianten, wie sie in den wahren Geist und Umfang der vorliegenden Erfindung fallen, abdecken.
Claims (22)
- Verfahren, umfassend: Durchführen einer Tesselation, deren Tesselationszeit mit steigendem Tesselationsdetaillierungsgrad linear steigt.
- Verfahren nach Anspruch 1, enthaltend: Verwendung eines Software-Tessellators.
- Verfahren nach Anspruch 1, enthaltend: Vorabberechnen von inneren Tessellationswerten für eine Vielzahl von unterschiedlichen Kantendetaillierungsgraden vor der Laufzeit.
- Verfahren nach Anspruch 3, enthaltend: Nachsehen der vorab berechneten inneren Tessellationswerte während der Laufzeit.
- Verfahren nach Anspruch 4, enthaltend: Vorabberechnen der Triangulation der inneren Tesselation.
- Verfahren nach Anspruch 1, enthaltend: Verwendung von 1-Achse-innerer Tessellationsfaktor-Achsenreduktion.
- Verfahren nach Anspruch 1, enthaltend: Verwendung eines Quadrats als die Grundelement-Domain für die Tessellation.
- Verfahren nach Anspruch 1, enthaltend: Sortieren und Gruppieren von Patches mit demselben Kantendetaillierungsgrad auf separaten physikalischen Kernen.
- Verfahren nach Anspruch 8, enthaltend: Threading und Vektorisierung.
- Vorrichtung, umfassend: einen Hall-Shader; und einen Tessellator, der mit besagtem Hall-Shader gekoppelt ist, um eine Tessellation zu bilden, deren Tessellationszeit mit steigendem Tessellationsdetaillierungsgrad linear steigt.
- Vorrichtung nach Anspruch 10, wobei besagter Tessellator ein Software-Tessellator ist.
- Vorrichtung nach Anspruch 10, wobei besagter Tessellator innere Tessellationswerte für eine Vielzahl von unterschiedlichen Kantendetaillierungsgraden vor der Laufzeit vorab berechnen soll.
- Vorrichtung nach Anspruch 12, wobei besagter Tessellator die vorab berechneten inneren Tessellationswerte während der Laufzeit nachsehen soll.
- Vorrichtung nach Anspruch 13, wobei besagter Tessellator die Triangulation der inneren Tesselation vorab berechnen soll.
- Vorrichtung nach Anspruch 10, wobei besagter Tessellator 1-Achse-innerer Tessallationsfaktor-Achsenreduktion verwenden soll,
- Vorrichtung nach Anspruch 10, wobei besagter Tessellator ein Viereck als eine Grundelement-Domain verwenden soll.
- Vorrichtung nach Anspruch 10, wobei besagter Tessellator Patches mit demselben Kantendetaillierungsgrad auf separaten physikalischen Kernen eines Mehrkernprozessors in Gruppen sortieren soll.
- Vorrichtung nach Anspruch 17, wobei besagter Tessellator Threading und Vektorisierung verwenden soll.
- System, umfassend: einen Mehrkernprozessor, der mindestens zwei Kerne enthält, wobei jeder der Kerne einen ersten und zweiten Puffer enthält; einen Patch-Sortierer, um Patches für Tessellation basierend auf deren Kantendetaillierungsgrad zu sortieren und die Patches mit demselben Detaillierungsgrad demselben Kern bereitzustellen; und einen Tessellator, um besagte Patches durch Vorabberechnung der Intervalle und Triangulation für die inneren Tesselationen und Anwenden der vorabberechneten Intervalle und Triangulationen während der Laufzeit unter Verwendung einer Nachseh-Technik zu tessellieren.
- System nach Anspruch 19, das Threading und Vektorisierung benutzt.
- System nach Anspruch 19, wobei besagtes System Tessellationen durchführen soll, wobei die Tessellationszeit mit steigendem Tessellationsdetaillierungsgrad linear steigt.
- System nach Anspruch 10, das einen Software-Tessellator enthält.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/347,114 US20100164954A1 (en) | 2008-12-31 | 2008-12-31 | Tessellator Whose Tessellation Time Grows Linearly with the Amount of Tessellation |
US12/347,114 | 2008-12-31 | ||
PCT/US2009/069187 WO2010078153A2 (en) | 2008-12-31 | 2009-12-22 | A tessellator whose tessellation time grows linearly with the amount of tessellation |
Publications (1)
Publication Number | Publication Date |
---|---|
DE112009004418T5 true DE112009004418T5 (de) | 2012-08-09 |
Family
ID=42284353
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE112009004418T Ceased DE112009004418T5 (de) | 2008-12-31 | 2009-12-22 | Tessellator, dessen Tessellationszeit mit dem Tessellationsumfang linear steigt |
Country Status (8)
Country | Link |
---|---|
US (1) | US20100164954A1 (de) |
EP (1) | EP2380129A4 (de) |
JP (1) | JP5224222B2 (de) |
KR (2) | KR101351236B1 (de) |
CN (1) | CN102272798B (de) |
BR (1) | BRPI0923899A2 (de) |
DE (1) | DE112009004418T5 (de) |
WO (1) | WO2010078153A2 (de) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE102014214666A1 (de) | 2014-07-25 | 2016-01-28 | Bayerische Motoren Werke Aktiengesellschaft | Hardwareunabhängiges Anzeigen von graphischen Effekten |
Families Citing this family (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9967590B2 (en) | 2008-04-10 | 2018-05-08 | Qualcomm Incorporated | Rate-distortion defined interpolation for video coding based on fixed filter or adaptive filter |
US8917271B2 (en) * | 2009-10-05 | 2014-12-23 | Nvidia Corporation | Redistribution of generated geometric primitives |
CN102096948B (zh) * | 2011-03-01 | 2012-10-31 | 西安邮电学院 | 一种适用图形硬件的分格化方法 |
US9437042B1 (en) * | 2011-10-20 | 2016-09-06 | Nvidia Corporation | System, method, and computer program product for performing dicing on a primitive |
US9390554B2 (en) * | 2011-12-29 | 2016-07-12 | Advanced Micro Devices, Inc. | Off chip memory for distributed tessellation |
WO2013101150A1 (en) * | 2011-12-30 | 2013-07-04 | Intel Corporation | A sort-based tiled deferred shading architecture for decoupled sampling |
CN104025030B (zh) * | 2011-12-30 | 2017-08-29 | 英特尔公司 | 减少域着色器/镶嵌器调用的方法、装置及设备 |
US9449419B2 (en) | 2012-03-30 | 2016-09-20 | Intel Corporation | Post tessellation edge cache |
US10535185B2 (en) | 2012-04-04 | 2020-01-14 | Qualcomm Incorporated | Patched shading in graphics processing |
CN102881046B (zh) * | 2012-09-07 | 2014-10-15 | 山东神戎电子股份有限公司 | 三维电子地图的生成方法 |
US9305397B2 (en) * | 2012-10-24 | 2016-04-05 | Qualcomm Incorporated | Vertex order in a tessellation unit |
GB2509113B (en) | 2012-12-20 | 2017-04-26 | Imagination Tech Ltd | Tessellating patches of surface data in tile based computer graphics rendering |
US9123168B2 (en) * | 2013-01-30 | 2015-09-01 | Qualcomm Incorporated | Output ordering of domain coordinates for tessellation |
KR102104057B1 (ko) | 2013-07-09 | 2020-04-23 | 삼성전자 주식회사 | 점별로 테셀레이션 팩터를 할당하는 방법과 상기 방법을 수행할 수 있는 장치들 |
KR102072656B1 (ko) * | 2013-07-16 | 2020-02-03 | 삼성전자 주식회사 | 캐시를 포함하는 테셀레이션 장치, 그의 동작 방법, 및 상기 장치를 포함하는 시스템 |
US9483862B2 (en) * | 2013-12-20 | 2016-11-01 | Qualcomm Incorporated | GPU-accelerated path rendering |
KR101555426B1 (ko) * | 2014-02-07 | 2015-09-25 | 고려대학교 산학협력단 | 지형 렌더링 방법 및 장치 |
US9679347B2 (en) * | 2014-02-18 | 2017-06-13 | Qualcomm Incorporated | Shader pipeline with shared data channels |
CN104616327B (zh) * | 2014-07-31 | 2017-07-14 | 浙江大学 | 一种基于曲面细分的着色器简化方法、装置及图形渲染方法 |
CN104183008B (zh) * | 2014-07-31 | 2017-01-18 | 浙江大学 | 一种基于表面信号拟合和曲面细分的着色器简化方法、装置及图形渲染方法 |
US10134171B2 (en) * | 2014-09-29 | 2018-11-20 | Arm Limited | Graphics processing systems |
KR102197064B1 (ko) | 2014-10-10 | 2020-12-30 | 삼성전자 주식회사 | Lod를 조절할 수 있는 그래픽스 프로세싱 유닛, 이의 작동 방법, 및 상기 그래픽스 프로세싱 유닛을 포함하는 장치들 |
GB2575503B (en) | 2018-07-13 | 2020-07-01 | Imagination Tech Ltd | Scalable parallel tessellation |
JP7374479B2 (ja) | 2020-01-31 | 2023-11-07 | 株式会社フジキン | 切換弁 |
Family Cites Families (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5428718A (en) * | 1993-01-22 | 1995-06-27 | Taligent, Inc. | Tessellation system |
US6147689A (en) * | 1998-04-07 | 2000-11-14 | Adobe Systems, Incorporated | Displaying 2D patches with foldover |
US6167159A (en) * | 1998-04-30 | 2000-12-26 | Virtue Ltd. | Triangle mesh compression |
US6597356B1 (en) * | 2000-08-31 | 2003-07-22 | Nvidia Corporation | Integrated tessellator in a graphics processing unit |
US6504537B1 (en) * | 2000-09-05 | 2003-01-07 | Nvidia Corporation | System, method and article of manufacture for fractional tessellation during graphics processing |
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 |
JP4255449B2 (ja) * | 2005-03-01 | 2009-04-15 | 株式会社ソニー・コンピュータエンタテインメント | 描画処理装置、テクスチャ処理装置、およびテセレーション方法 |
US8228329B2 (en) * | 2006-01-23 | 2012-07-24 | National University Corporation Yokohama National University | Interpolation processing method, interpolation processing device, shape evaluation method, and shape evaluation device |
US7561156B2 (en) * | 2006-02-08 | 2009-07-14 | INOVO Limited | Adaptive quadtree-based scalable surface rendering |
US20070247458A1 (en) * | 2006-04-11 | 2007-10-25 | Samsung Electronics Co., Ltd. | Adaptive computation of subdivision surfaces |
JP4757120B2 (ja) * | 2006-07-06 | 2011-08-24 | キヤノン株式会社 | 画像処理装置及びその制御方法 |
US7965291B1 (en) * | 2006-11-03 | 2011-06-21 | Nvidia Corporation | Isosurface extraction utilizing a graphics processing unit |
JP5220350B2 (ja) * | 2007-06-13 | 2013-06-26 | 株式会社バンダイナムコゲームス | プログラム、情報記憶媒体及び画像生成システム |
US7928979B2 (en) * | 2008-02-01 | 2011-04-19 | Microsoft Corporation | Efficient geometric tessellation and displacement |
US20100079454A1 (en) * | 2008-09-29 | 2010-04-01 | Legakis Justin S | Single Pass Tessellation |
-
2008
- 2008-12-31 US US12/347,114 patent/US20100164954A1/en not_active Abandoned
-
2009
- 2009-12-22 EP EP09837010.9A patent/EP2380129A4/de not_active Withdrawn
- 2009-12-22 KR KR1020117017953A patent/KR101351236B1/ko active IP Right Grant
- 2009-12-22 WO PCT/US2009/069187 patent/WO2010078153A2/en active Application Filing
- 2009-12-22 BR BRPI0923899A patent/BRPI0923899A2/pt not_active Application Discontinuation
- 2009-12-22 CN CN200980153800.4A patent/CN102272798B/zh not_active Expired - Fee Related
- 2009-12-22 KR KR1020137008228A patent/KR101559637B1/ko active IP Right Grant
- 2009-12-22 JP JP2011544501A patent/JP5224222B2/ja not_active Expired - Fee Related
- 2009-12-22 DE DE112009004418T patent/DE112009004418T5/de not_active Ceased
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE102014214666A1 (de) | 2014-07-25 | 2016-01-28 | Bayerische Motoren Werke Aktiengesellschaft | Hardwareunabhängiges Anzeigen von graphischen Effekten |
WO2016012393A1 (de) | 2014-07-25 | 2016-01-28 | Bayerische Motoren Werke Aktiengesellschaft | Hardwareunabhängiges anzeigen von graphischen effekten |
Also Published As
Publication number | Publication date |
---|---|
BRPI0923899A2 (pt) | 2018-10-16 |
KR20110112828A (ko) | 2011-10-13 |
KR101559637B1 (ko) | 2015-10-13 |
JP5224222B2 (ja) | 2013-07-03 |
KR101351236B1 (ko) | 2014-02-07 |
EP2380129A4 (de) | 2017-06-14 |
CN102272798B (zh) | 2015-03-11 |
US20100164954A1 (en) | 2010-07-01 |
WO2010078153A2 (en) | 2010-07-08 |
CN102272798A (zh) | 2011-12-07 |
JP2012514273A (ja) | 2012-06-21 |
WO2010078153A3 (en) | 2010-09-30 |
EP2380129A2 (de) | 2011-10-26 |
KR20130049824A (ko) | 2013-05-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE112009004418T5 (de) | Tessellator, dessen Tessellationszeit mit dem Tessellationsumfang linear steigt | |
DE102010018701B4 (de) | Bilderzeugungstechniken | |
DE69322575T2 (de) | Verfahren und Gerät zur Wiedergabe von abgeglichenen NURB Oberflächen | |
DE69716877T2 (de) | System und Verfahren zur genauen Gradientberechnung für die Texturabbildung in einem Computergraphiksystem | |
DE3689654T2 (de) | Rechnergraphik, prozessor für parallele subdivision. | |
DE69032932T2 (de) | System und Verfahren zum unverfälschten Polygonenzeichnen | |
DE102013114090B4 (de) | Konservative Rasterung von Primitiven unter Benutzung eines Fehler-Terms | |
DE69224499T2 (de) | Dreidimensionale graphische Verarbeitung | |
DE60032832T2 (de) | Darstellung einer gekrümmten Oberfläche in mehreren Auflösungen | |
DE69624868T2 (de) | Computergraphiksystem mit leistungsfähiger Vorverarbeitung des Clippings von Primitiven | |
DE112009000180T5 (de) | Verfahren, Vorrichtung und Computerprogrammprodukt für eine verbesserte Grafikperformance | |
DE69926986T2 (de) | Rechnergrafiken-animationsverfahren und vorrichtung | |
DE60012917T2 (de) | Verfahren und vorrichtung für eine antialiasing-operation auf impliziten kanten | |
DE69716428T2 (de) | Verfahren und apparat zum mehrmaligen ausführen einer operation in antwort auf eine einzige instruktion | |
DE102010046507A1 (de) | Berechnung der Detailstufe für die anisotrope Filterung | |
DE102013020614A1 (de) | Mit Mehrfachauflösung konsistente Rastereinteilung | |
DE102018114286A1 (de) | Durchführen einer Traversierungs-Stack-Komprimierung | |
DE102011016347A1 (de) | Hierarchisches Umgrenzen von verschobenen parametrischen Flächen | |
DE19807013B4 (de) | Volumetrisches Vorabschneidungsverfahren, das eine minimale Anzahl von Abtastpunkten durch ein Volumen gewährleistet | |
DE102013020613A1 (de) | Umgehung der Pixel-Schattierung für die grafische Bilderzeugung mit geringer Leistung | |
DE102013114176A1 (de) | Tessellieren von Oberflächendatensegmenten beim kachelbasierten Rendern von Computergrafik | |
DE102010033318A1 (de) | Techniken zum Speichern und Abrufen von Bilddaten | |
DE102013013562A1 (de) | Kachelbasierte computergraphik | |
DE102010053969A1 (de) | Gruppieren von zu texturierenden Pixeln | |
DE102010025310A1 (de) | Textursampling |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
R012 | Request for examination validly filed | ||
R079 | Amendment of ipc main class |
Free format text: PREVIOUS MAIN CLASS: G06T0001000000 Ipc: G06T0017200000 |
|
R079 | Amendment of ipc main class |
Free format text: PREVIOUS MAIN CLASS: G06T0001000000 Ipc: G06T0017200000 Effective date: 20121121 |
|
R002 | Refusal decision in examination/registration proceedings | ||
R003 | Refusal decision now final |