DE112009004418T5 - Tessellator, dessen Tessellationszeit mit dem Tessellationsumfang linear steigt - Google Patents

Tessellator, dessen Tessellationszeit mit dem Tessellationsumfang linear steigt Download PDF

Info

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
Application number
DE112009004418T
Other languages
English (en)
Inventor
Rahul O. Sathe
Paul A. Rosen
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.)
Intel Corp
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 DE112009004418T5 publication Critical patent/DE112009004418T5/de
Ceased legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • G06T17/20Finite element generation, e.g. wire-frame surface description, tesselation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/20Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using video object coding
    • H04N19/29Methods 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]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/30Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability
    • H04N19/36Scalability 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 in 5A aufweist, gemäß einer Ausführungsform;
  • 5C zeigt eine 1-Achse-innere Tessellation, bei der die linke Kante einen anderen Kantendetaillierungsgrad als die in den 5A und 5B 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 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 den Hull-Shader 16 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-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 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 Tessellator 18 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 Rasterizer 24 Grundelemente bereitstellen, während bis zu vier Datenströme mit Puffer 30 verknüpft sein können. Mittels des Rasterizers 24 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-Merger 28 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 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 über acht Intervalle, die Unterseite 32b über vier Intervalle und die linke Seite 32l über zwei Intervalle. Die Intervalle entsprechen dem Kantendetaillierungsgrad und dem Tessellationsfaktor. In dem 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 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 zeigt 4 das Ergebnis des minimalen Tessellations-Reduktionsfaktors unter Verwendung der minimalen Seite, welches die Oberseite 32t wäre.
  • Als nächstes auf die 5A5C Bezug nehmend, 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-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 der 6 gezeigte Beispiel verwendet 1-Achse-Tessellationsreduktion unter Verwendung von Potenz 2 (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 Tessellator 18 gemäß einer Ausführungsform der vorliegenden Erfindung mit Vorabberechnung und Speichern der u- und der v-Werte für die innere Tessellation, wie in Block 40 angezeigt. Die u- und v-Werte sind einfach die Koordinaten oder Intervalle der Punkte, wie zum Beispiel in 5A 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 Block 42 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 Block 44 angezeigt. Außerdem wird die Triangulation für den äußeren Bereich, wie bei Block 46 angezeigt, während der Laufzeit berechnet. Dann sieht der Tessellator 18 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 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 können dann alle Threads auf diesem Kern lediglich eine Kopie in den Level-1 58 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 Puffer 62 die bekannten inneren Tessellationen, die vorberechnet 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 8 dargestellt sind, können beliebig viele Kerne verwendet werden.
  • Gemäß einer Ausführungsform kann der Pseudo-Code wie folgt implementiert werden:
    Figure 00090001
    Figure 00100001
    Figure 00110001
  • 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)

  1. Verfahren, umfassend: Durchführen einer Tesselation, deren Tesselationszeit mit steigendem Tesselationsdetaillierungsgrad linear steigt.
  2. Verfahren nach Anspruch 1, enthaltend: Verwendung eines Software-Tessellators.
  3. Verfahren nach Anspruch 1, enthaltend: Vorabberechnen von inneren Tessellationswerten für eine Vielzahl von unterschiedlichen Kantendetaillierungsgraden vor der Laufzeit.
  4. Verfahren nach Anspruch 3, enthaltend: Nachsehen der vorab berechneten inneren Tessellationswerte während der Laufzeit.
  5. Verfahren nach Anspruch 4, enthaltend: Vorabberechnen der Triangulation der inneren Tesselation.
  6. Verfahren nach Anspruch 1, enthaltend: Verwendung von 1-Achse-innerer Tessellationsfaktor-Achsenreduktion.
  7. Verfahren nach Anspruch 1, enthaltend: Verwendung eines Quadrats als die Grundelement-Domain für die Tessellation.
  8. Verfahren nach Anspruch 1, enthaltend: Sortieren und Gruppieren von Patches mit demselben Kantendetaillierungsgrad auf separaten physikalischen Kernen.
  9. Verfahren nach Anspruch 8, enthaltend: Threading und Vektorisierung.
  10. 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.
  11. Vorrichtung nach Anspruch 10, wobei besagter Tessellator ein Software-Tessellator ist.
  12. Vorrichtung nach Anspruch 10, wobei besagter Tessellator innere Tessellationswerte für eine Vielzahl von unterschiedlichen Kantendetaillierungsgraden vor der Laufzeit vorab berechnen soll.
  13. Vorrichtung nach Anspruch 12, wobei besagter Tessellator die vorab berechneten inneren Tessellationswerte während der Laufzeit nachsehen soll.
  14. Vorrichtung nach Anspruch 13, wobei besagter Tessellator die Triangulation der inneren Tesselation vorab berechnen soll.
  15. Vorrichtung nach Anspruch 10, wobei besagter Tessellator 1-Achse-innerer Tessallationsfaktor-Achsenreduktion verwenden soll,
  16. Vorrichtung nach Anspruch 10, wobei besagter Tessellator ein Viereck als eine Grundelement-Domain verwenden soll.
  17. Vorrichtung nach Anspruch 10, wobei besagter Tessellator Patches mit demselben Kantendetaillierungsgrad auf separaten physikalischen Kernen eines Mehrkernprozessors in Gruppen sortieren soll.
  18. Vorrichtung nach Anspruch 17, wobei besagter Tessellator Threading und Vektorisierung verwenden soll.
  19. 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.
  20. System nach Anspruch 19, das Threading und Vektorisierung benutzt.
  21. System nach Anspruch 19, wobei besagtes System Tessellationen durchführen soll, wobei die Tessellationszeit mit steigendem Tessellationsdetaillierungsgrad linear steigt.
  22. System nach Anspruch 10, das einen Software-Tessellator enthält.
DE112009004418T 2008-12-31 2009-12-22 Tessellator, dessen Tessellationszeit mit dem Tessellationsumfang linear steigt Ceased DE112009004418T5 (de)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Cited By (2)

* Cited by examiner, † Cited by third party
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