DE102011016347A1 - Hierarchisches Umgrenzen von verschobenen parametrischen Flächen - Google Patents

Hierarchisches Umgrenzen von verschobenen parametrischen Flächen Download PDF

Info

Publication number
DE102011016347A1
DE102011016347A1 DE102011016347A DE102011016347A DE102011016347A1 DE 102011016347 A1 DE102011016347 A1 DE 102011016347A1 DE 102011016347 A DE102011016347 A DE 102011016347A DE 102011016347 A DE102011016347 A DE 102011016347A DE 102011016347 A1 DE102011016347 A1 DE 102011016347A1
Authority
DE
Germany
Prior art keywords
parametric
vector
boundaries
patch
coordinate system
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.)
Withdrawn
Application number
DE102011016347A
Other languages
English (en)
Inventor
Jacob Munkberg
Jon Hasselgren
Robert Toth
Tomas Akenine-Moller
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 DE102011016347A1 publication Critical patent/DE102011016347A1/de
Withdrawn legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/08Volume rendering
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/10Geometric effects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • G06T17/20Finite element generation, e.g. wire-frame surface description, tesselation
    • 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/30Polynomial surface description

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Graphics (AREA)
  • Geometry (AREA)
  • Software Systems (AREA)
  • Mathematical Analysis (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Mathematical Optimization (AREA)
  • Algebra (AREA)
  • Image Generation (AREA)

Abstract

Hierarchisches Umgrenzen von verschobenen parametrischen Flächen kann ein herkömmlicher Anwendungsfall für Tesselation bei interaktivem und Echtzeit-Rendering sein. Eine effiziente normale Umgrenzungstechnik kann zusammen mit min-max MipMap-Hierarchien und ausgerichteten Umgrenzungskästen verwendet werden. Dies stellt bei einigen Ausführungsformen wesentlich schnellere Konvergenz für die Umgrenzungsvolumina der verschobenen Fläche ohne Tesselation und Verschieben der Fläche bereit. Diese Umgrenzungstechnik kann für verschiedene Arten von Entfernen, Strahlverfolgung und zum Sortieren von Grundelementen einer höheren Ordnung in Kachelungsarchitekturen verwendet werden.

Description

  • Hintergrund
  • Dies bezieht sich allgemein auf Grafikverarbeitung und insbesondere auf Tesselation in Renderingsystemen, wie z. B. interaktives, Echtzeit- und Offline-/Film-Rendering.
  • Moderne Grafikprozessoren beinhalten dedizierte Hardware für das Tesselieren von Flächen in viele kleine Dreiecke. Die DirectX 11-Anwendungsprogrammierschnittstelle („DX11”) (API) addiert drei neue Stufen zu der Grafik-Pipeline, um Tesselation zu unterstützen: den Hull-Shader, den Tesselator mit fester Funktion und den Domain-Shader. Der Hull-Shader wird einmal pro Patch und einmal pro Kontrollpunkt ausgeführt, typischerweise, um Tesselationsfaktoren zu berechnen und um Kontrollpunktgrundlagen zu ändern. Der Tesselator mit fester Funktion nimmt Tesselationsfaktoren als Eingaben, und generiert einen großen Satz von Eckpunktpositionen in der Domain des Eingabegrundelements und Konnektivitätsinformationen zwischen Eckpunkten. Die Konnektivitätsinformationen bilden viele kleine Dreiecke. Der Domain-Shader wird einmal pro generierter Eckpunktposition von dem Tesselator ausgeführt. Eine typische Domain-Shader-Verwendung bewertet die Position und Normale einer parametrischen Fläche, wobei er beispielsweise einen Satz von Kontrollpunkten, baryzentrischen Koordinaten und eine detaillierte Textur als Eingaben verwendet. Die Ausgabe ist ein verschobener Eckpunkt, der von einem Satz von Attributen definiert wird. Ein Attribut ist die Position, aber der Shader kann ebenfalls Normale/Tangente/Bi-Tangente/Textur-Koordinate/Farbe/Transparenz oder andere Attribute des verschobenen Eckpunkts berechnen.
  • Kurze Beschreibung der Zeichnungen
  • 1 ist ein Graph, der die Eckkontrollpunkte und die Vektoren b und t zeigt; durch Bilden von Vektoren zwischen den Ecken des Patches können die OBB-Achsen abgeleitet werden;
  • 2 zeigt ein Beispiel der resultierenden Umgrenzungen nach 25 Schritten der Umgrenzung eines kubischen Polynoms mit zwei separaten Verschiebungsspitzen auf der oberen Reihe, wobei die Bilder links AABBs verwenden, und die Bilder rechts OBBs verwenden, deren Achsen von Kontrollpunkten der Bézier-Kurve bestimmt werden, während die untere Reihe Perlin-Rauschen zu dem Verschiebungs-Shader hinzufügt;
  • 3 ist ein dreidimensionales Beispiel von AABB- zu OBB-Umgrenzung mit der gleichen Anzahl an Unterteilungen;
  • 4 zeigt die normale Umgrenzungstechnik für das normale Patch, wobei die Figur ganz links das normale Patch vor Normalisierung zeigt, das mittlere Bild jeden Kontrollpunkt als normalisiert zeigt, sodass sie die Einheitskugel abbilden, und schließlich das Bild ganz rechts zeigt, dass die Projektionen durch einen Kegel umgegrenzt sind, der eine konservative Umgrenzung der normalisierten Normale für das Patch darstellt;
  • 5 zeigt, dass bei gegebenen Umgrenzungskegeln für die beiden parametrischen Derivate, angegeben durch T und B, ein Kegel, der das Vektorprodukt eines beliebigen Vektors innerhalb T und eines beliebigen Vektors innerhalb B umgrenzt, abgeleitet werden kann, und hier als N angegeben ist;
  • 6 zeigt ein Beispiel von zwei verschiedenen Ansichten unter Verwendung einer Bildraum-Umgrenzungskastengröße als die Sortierkriterien, mit 16 Schritten der Unterteilung, die ausgeführt werden, und den resultierenden Unterschied bei der Unterteilungsdichte;
  • 7 ist ein Ablaufdiagramm für das Umgrenzen eines verschobenen Bézier-Flächenpatches und Umgrenzungsalgorithmus in Übereinstimmung mit einer erfindungsgemäßen Ausführungsform;
  • 8 ist ein Ablaufdiagramm für einen detaillierteren Ablauf zum Berechnen von Umgrenzungen eines verschobenen Patches, indem ein OBB für ein verschobenes Bézier-Patch in Übereinstimmung mit einer Ausführungsform gefunden wird;
  • 9 ist ein Ablaufdiagramm für eine Ausführungsform zum Definieren des OBB für ein Basis-Patch unter Verwendung von Kontrollpunkten;
  • 10 ist ein Ablaufdiagramm für eine Ausführungsform zum Finden der normalisierten Normale;
  • 11 ist ein Ablaufdiagramm für eine andere Ausführungsform zum Finden der normalisierten Normale; und
  • 12 ist eine Hardwaredarstellung einer erfindungsgemäßen Ausführungsform.
  • Ausführliche Beschreibung
  • Verringern der Anzahl an Domain-Shader-Auswertungen verringert die Rechnerressourcen, die für diese Stufe einer Grafik-Pipeline benötigt werden. Dies kann durch Entfernen von Patches geschehen, die nicht zum endgültigen Bild beitragen. Um dieses Entfernen effizient zu gestalten, kann ein Algorithmus für die Berechnung hierarchischer Umgrenzungen von verschobenen Flächen benutzt werden.
  • Weiterhin werden bei kachelbasierten Rendering-Architekturen Umgrenzungen für Eingabe-Grundelemente benötigt, um die Eingabe-Grundelemente effizient in Kacheln zu sortieren. Ein „Umgrenzungsvolumen” ist ein volumetrisches Objekt, wie z. B. ein Kasten oder eine Kugel, die ein anderes Objekt umschließt. Da der Domain-Shader programmierbar ist, ist es schwierig, konservative und scharfe Umgrenzungen der Ausgabepositionen zu geben, die es eventuell nötig machen, die generierten kleinen Dreiecke individuell in Kacheln zu sortieren. Dies erhöht die Speicheranforderungen bei den Kachel-Reihen, erhöht die Bandbreitenverwendung, und verringert die Effizienz hinsichtlich Entfernen verdeckter Objekte auf einem Patch-Grundelement-Level.
  • Diese Umgrenzungen können stattdessen spontan (Block 12) nur auf dem Domain-Shader basierend berechnet werden, aber ohne Notwendigkeit eines benutzerspezifizierten Parameters, so wie in 7 angezeigt. Die Umgrenzungen können sodann adaptiv präzisiert werden, da das Grundelement in kleinere Subpatches aufgespalten wird, um eine Hierarchie zu erzeugen. Bei einer Ausführungsform ermöglicht ein Algorithmus konservatives und scharfes Abgrenzen von dynamischen, verschobenen parametrischen Flächen, wie z. B. Bézier-Patches, wobei effizientes, normales Umgrenzen, ausgerichtete Umgrenzungskästen und min-max MipMap-Hierarchien der Verschiebungstextur verwendet werden. Das Patch kann entfernt werden (Block 16). Wenn nicht, dann kann das Grundelement Tesselation und Domain-Shading ausgesetzt werden (Block 18).
  • Da das Patch nicht an den Tesselator geschickt werden muss, können sowohl Domain-Shader als auch Tesselator-Aufgaben für das Patch in einigen Ausführungsformen verringert werden. Wenn das Eingabe-Patch entfernt wird, dann kann bei einigen Ausführungsformen keine Tesselation und Domain-Shading durchgeführt werden. Gleichermaßen, wenn ein Subpatch entfernt wird, kann keine weitere Verarbeitung dieses Subpatches bei einigen Ausführungsformen gemacht werden. Ansonsten wird das Subpatch tesseliert und Domain-Shading wird durchgeführt.
  • Sammlungen von bikubischen Bézier-Patches sind beliebte Rendering-Grundelemente für gleichmäßige Flächen. Bekannte Algorithmen können für Übersetzen von Catmull-Clark-Unterteilungsflächen in Sammlungen von solchen parametrischen Patches verwendet werden, während sich getreu der Grenzfläche des rekursiven Unterteilungsprozesses angenähert wird. Es ist üblich, Verschiebungen von Texturen hoher Auflösung in die Richtung des Normalvektors des Patches hinzuzufügen, um das Detail der endgültigen Fläche zu erhöhen.
  • Das Bézier-Patch mit Verschiebung kann in einem Domain-Shader bei der Rendering-API benutzt werden. Das Bézier-Patch wird kompakt von seinen Kontrollpunkten dargestellt, und diese parametrische Flächendarstellung kann effizient parallel bewertet werden (im Gegensatz zu rekursiven Unterteilungsflächen).
  • Ein Bézier-Patch, p(u, v), ist eine parametrische Fläche, d. h. eine Fläche, die über zwei parametrische Koordinaten, u und v, definiert ist. Der Ausdruck „Basis-Patch” kennzeichnet das Bézier-Patch, das noch nicht verschoben worden ist, um es von der endgültig verschobenen Fläche zu unterscheiden. Ein Domain-Shader, der ein verschobenes Bézier-Patch bei einer parametrischen Koordinate, (u, v), bewertet, berechnet die Basis-Patch-Position, p(u, v), die normalisierte Normale des Basis-Patches n ^(u, v), und einen Verschiebungswert, der (normalerweise) von einer Textur, t(u, v), genommen wird. Wenn die Verschiebung in Normalrichtung des Basis-Patches agiert, dann ist der Domain-Shader (vor Multiplikation mit der Modellansichtsprojektionsmatrix): d(u, v) = p(u, v) + n ^(u, v)t(u, v) (1)
  • Multiplizieren von d(u, v) mit der Modellansichtsprojektionsmatrix, M, erreicht die Platzgewinnungsposition (clip space position), q, bei homogenen Koordinaten: q(u, v) = Md(u, v) = M(p(u, v) + n ^(u, v)t(u, v)) (2)
  • Die normalisierten Gerätekoordinaten sind durch sx = qx/qw und sy = qy/qw gegeben.
  • Eine konservative Umgrenzung von q(u, v) über eine parametrische Domain, wobei a <= u <= b und c <= v <= d ist, kann gefunden werden.
  • Folgend wird beschrieben, wie p(u, v) umgegrenzt wird. Bézier-Patches haben die Eigenschaft einer konvexen Hülle, und sie können leicht durch ihre Kontrollpunkte umgrenzt werden. Finden eines Umgrenzungskastens mit ausgerichteter Achse (axis-aligned bounding box, AABB) für ein Bézier-Patch entspricht 3 min. und 3 max. Operationen pro Kontrollpunkt.
  • Durch wiederholtes Anwenden der Bézier-Unterteilung konvergieren die Kontrollpunktkäfige der unterteilten Patches rasch in Richtung des darunterliegenden Basis-Patches. Außerdem, wenn das Original-Patch in jedem Schritt rekursiv in zwei Stücke, pA und pB, aufgespalten wird, generieren die de Casteljau-Schritte, notwendig zum Generieren von pA, die Kontrollpunkte für pB als ein Nebenprodukt. Dies erlaubt eine effiziente Implementierung.
  • Von den Kontrollpunkten der definierten Achsen des Basis-Patches können Achsen für einen Kasten mit orientierter Umgrenzung (oriented bounding box, OBB) abgeleitet werden. Dieser Kasten umschließt das Basis-Patch enger als ein AABB. Für jeden der beiden unterteilten Patches in der gleichen Iteration werden sowohl das Basis-Patch, das normale Patch als auch die Verschiebungs-Textur sowie -Lookup präzisiert. Mit Bezug auf 8, die Schritte zeigt, die verwendet werden, um die Umgrenzung der verschobenen Fläche zu berechnen, angezeigt in Block 12 in 7, wird das Basis-Patch entlang einer Achse unter Verwendung von Bézier-Unterteilung unterteilt. Die Basis-Patch-Umgrenzung, angezeigt in Block 14, involviert das Finden der OBB-Achsen ausgehend von den Kontrollpunkten, und Projizieren aller Kontrollpunkte auf diesen Achsen. Sodann wird das Minimum und Maximum entlang jeder Achse lokalisiert, um einen OBB abzuleiten, der alle Kontrollpunkte beinhaltet, und die Eigenschaft der konvexen Hülle der Bézier-Patches bedeutet, dass die Fläche in diesem OBB beinhaltet ist.
  • Folgend, wie in Block 15 angezeigt, werden die Minima und Maxima der Verschiebung in einer min./max. Texturhierarchie nachgesehen. Danach, in Raute 19, bestimmt eine Überprüfung, ob die Verschiebung gleich Null ist. Wenn ja, wird die Modellansichtsprojektion auf die acht Ecken des Umgrenzungskastens des Patches (Block 20) angewendet, und die Umgrenzungen werden zurückgegeben (Block 23). Wenn die Verschiebung ungleich Null ist, dann wird normales Umgrenzen in Block 21 durchgeführt, wobei eine der Techniken, die hierin nachstehend beschrieben werden, genannt TPATCH und NPATCH, durchgeführt werden, und zwar vor Modellansichtsprojektionstransformierung (Block 20) und vor Rückgabe der Umgrenzungen (Block 23). Schließlich wird, in Block 23, die Modellansichtsprojektionstransformierung angewendet.
  • Für Bézier-Patches werden die Vektoren zwischen den Eckkontrollpunkten (1) summiert, um zwei Achsen zu erhalten (9, Block 24). In einem gegebenen Patch mit (m + 1) × (n + 1) Kontrollpunkten werden die vier Eckkontrollpunkte C0,0, cm,0, c0,n und cm,n bezeichnet, und die beiden Vektoren werden gebildet: t = cm,0 – c0,0 + cm,n – c0,n (3) b = c0,n – c0,0 + cm,n – cm,0 (4) t und b können als ungefähre Durchschnittsgradienten in den u- bzw. v-parametrischen Richtungen gesehen werden. Sie müssen nicht orthogonal sein. Ihr Vektorprodukt (9, Block 26) gibt eine dritte Achse: n = t Vektorprodukt von b. Um ein orthonormales Koordinatensystem zu bilden, wird x = t, y = n Vektorprodukt von t und z = n eingestellt, und jeder Vektor wird normalisiert (9, Block 28). Das endgültige Koordinatensystem ist: (x ^, ŷ, z ^). Im Vergleich zur Verwendung von AABBs verringert dies in den meisten Fällen die Grade der Umgrenzungskästen erheblich. Aufwendigere OBB-Anpassungsschemata, basierend auf dem Kontrollpunktkäfig, können abgeleitet werden, allerdings liefert in der Praxis der vorstehende einfache Ansatz Achsen für OBBs, die die Fläche fest umgrenzen. Der Qualitätsunterschied zwischen Umgrenzen mit AABBs und OBBs wird in 2 für Kurven und in 3 für ein Bézier-Patch hervorgehoben. Für Entartungsfälle wird einfach ein AABB verwendet. Wie nachstehend gezeigt, sind die OBB-Achsen ebenfalls sehr hilfreich bei den normalen Umgrenzungsalgorithmen.
  • Umgrenzen der Patchnormale n ^(u, v) über eine Domain ist wesentlich schwieriger als Umgrenzen der Basisposition, p(u, v). Die Normalrichtung wird als das Vektorprodukt von zwei parametrischen Ableitungen des Basis-Patches, p(u, v), berechnet.
  • Der Standardschreibweise für Tensorprodukt-Bézier-Flächen folgend wird eine Bézier-Patch P(u, v) wie folgt dargestellt: R2?R3 wird definiert durch:
    Figure 00060001
    wobei ci,j die Kontrollpunkte sind, m und n die Grade des Patches auf den parametrischen Koordinaten, u bzw. v, sind. Bi(u) und Bj(v) sind Bernstein-Polynome.
  • Die partiellen Derivate können geschrieben werden als
    Figure 00070001
    wobei ai,j = m(ci+1,j – ci,j), (8) bi,j = n(ci,j+1 – ci,j). (9)
  • Es ist anzumerken, dass ai,j und bi,j (maßstabsgetreue) Unterschiede der Kontrollpunkte des Basis-Patch und daher Vektoren sind. Die Flächennormale (vor Normalisierung) wird definiert durch: n(u, v) = (nx, ny, nz) = ∂p / ∂u(u, v) × ∂p / ∂v(u, v). (10)
  • Die normalisierte Normale wird gegeben durch:
    Figure 00070002
  • Wenn der Bi-Grad von p(u, v) auf den parametrischen Koordinaten (u, v) (m, n) ist, dann weisen die parametrischen Derivate erster Ordnung Grade (m – 1, n) und (m, n – 1) auf. Wie nachstehend ersichtlich, ist der Bi-Grad des Patches, nach Nehmen des Vektorproduktes der Patches, (m + n – 1, m + n – 1). Ein Patch, das die Normalrichtung eines bikubischen Bézier-Patches darstellt, braucht daher Bi-Grad (5, 5), um exakt dargestellt zu werden.
  • Um Verschiebung anzuwenden, ist die normalisierte Normale notwendig. Die Normalisierungsoperation (Gleichung 11) benötigt Bi-Grad 2(m + n – 1, m + n – 1) für eine exakte Darstellung der Teilausdrücke: n 2 / x, n 2 / y, und n 2 / z. Für ein bikubisches Bézier-Patch können diese Ausdrücke exakt als ein Bi-Grad-(10, 10)-Bézier-Patch dargestellt werden. In vielen Fällen ist dies untragbar aufwendig (11·11 = 121 Kontrollpunkte). Schließlich kann die reziproke Quadratwurzel mit Bernstein-Polynomen nicht exakt dargestellt werden. Außerdem sollte der Operand für die reziproke Quadratwurzel immer größer als oder gleich Null sein, da der Operand die quadrierte Länge der Normalen ist. Wenn dies nicht zutrifft, können inf oder NaN resultieren. Deshalb sollte die umgrenzte Darstellung von n 2 / x + n 2 / y + n 2 / z strikt größer als Null sein. Auf den ersten Blick erscheint dies trivial, da die Quadratwurzel einer Summe von drei quadrierten (realen) Ausdrücken größer als oder gleich Null sein sollte. Dies kann jedoch in der Praxis schwierig sein, da der Umgrenzungskasten des Kontrollpunktkäfigs für das Umgrenzen verwendet wird, und es keine Garantie gibt, dass alle Kontrollpunkte positiv sein werden.
  • Hier wird ein normaler Umgrenzungsalgorithmus beschrieben, der die meisten vorstehend erörterten Probleme vermeidet. Insgesamt gesehen wird ein Normalvektor-Bézier-Patch von den parametrischen Ableitungen abgeleitet (10, Block 32), sodann werden seine Kontrollpunkte auf die Einheitskugel projiziert (10, Block 34), und deren Raumwinkel an der Einheitskugel wird in einem OBB-Koordinatensystem umgrenzt (10, Block 36), das eine konservative Umgrenzung der normalisierten Normale liefert. Dieser normale Umgrenzungsansatz wird als NPATCH bezeichnet.
  • Die Normale wird, wie bekannt, definiert durch:
    Figure 00080001
  • Unter Verwendung der Formel für Produkte von Bernstein-Polynomen:
    Figure 00080002
  • Gleichung 12 wird geschrieben als:
    Figure 00080003
    die ein Patch mit Bi-Grad (m + n – 1, m + n – 1) mit Kontrollvektoren, vp,q, ist, gegeben durch:
    Figure 00090001
  • Um die Normale des Basis-Patches konservativ über das Patch umzugrenzen, wird die Tatsache genutzt, dass die Normale nach Normalisierung Einheitslänge hat. Daher werden die Kontrollvektoren, vp,q, normalisiert, sodass sie durch Punkte auf der Einheitskugel dargestellt sind.
  • Eine schnelle Art, diese Umgrenzungen abzuleiten, ist das Verwenden der z ^-Achse aus dem OBB-Koordinatensystem, die eine Annäherung der Normalen des Patches ist, und das einfache Berechnen des minimalen Skalarprodukts zwischen einem beliebigen normalisierten Kontrollpunkt und der z ^-Achse. Dies ergibt den Kosinus des Halbwinkels eines Kegels, der die normalisierten Richtungen umschließt. Dies wird in 4 veranschaulicht.
  • Für ein bikubische Bézier-Patch beinhaltet die Berechnung von vp,q 144 Vektorprodukte. Die binomischen Koeffizienten können in einer kleinen Lookup-Tabelle vorausberechnet sein.
  • Es ist jedoch anzumerken, dass jegliche Korrelation hinsichtlich welche Richtung welcher parametrischen Koordinate entspricht verlorengeht. Die Schlüssigkeit des Ansatzes hängt davon ab, ob die nicht-normalisierte Normale gut genug umgrenzt werden kann, was über große Domains schwierig sein kann, was aber leichter mit Größenabnahme der Subdomain wird.
  • Gröbere Umgrenzungen können schneller durch Bilden von zwei Tangentenkegeln aus den Kontrollpunkten der parametrischen Ableitungs-Patches erster Ordnung erreicht werden ∂p/∂u and ∂p/∂v (siehe Gleichungen 6 und 7). Die Kontrollpunkte der Ableitungs-Patches werden normalisiert und auf der Einheitskugel umgrenzt (so wie in 4 gezeigt), wobei sie zwei Kegel T:{t ^, αt} und B:{b ^, αb} bilden. Ein Kegel, T, wird durch eine normalisierte Achse t ^ und einen Halbwinkel definiert αt.
  • Wenn die Kegel T und B sich nicht überlappen, kann ein Kegel N:(n ^, θ), der alle möglichen Vektorprodukte von zwei Vektoren umgrenzt, einer aus jeweils T und B, ausgestaltet werden. Seine Achse n ^ ist in der Richtung t × b und sein Halbwinkel, θ, ist gegeben durch:
    Figure 00100001
    wobei a ^ der kleinste der beiden Winkel zwischenden Kegelachsen parallel zu t ^ bzw. b ^ ist. Der Kegel, N, umgrenzt die gesamte normalisierte Normale über das Patch. Die Kegel T, B und N werden in 5 gezeigt.
  • Verwendet werden die t ^ und b ^-Achsen, die vorstehend als Achsen für die Kegel T und B abgeleitet wurden, und die Kegelwinkel für die Kegel T und B werden aus Kontrollpunkten der parametrischen Ableitungs-Patches gefunden (11, Block 40). Der Kosinus des Kegelwinkels át (áb) ist einfach das minimale Punktprodukt eines beliebigen normalisierten Kontrollpunktes aus dem Tangenten-Patch mit der t ^(b ^)-Achse. Ein Normalkegel wird durch Berechnen des Vektorproduktes von Kegeln T und B abgeleitet (11, Block 42). Die Umgrenzungen für die normalisierte Normale, die in dem OBB-Koordinatensystem ausgedrückt werden, sind: ([–sinθ, sinθ], [–sinθ, sinθ], [cosθ, 1]) (17) wobei θ der Kegelhalbwinkel des Normalkegels N ist. Unter Verwendung der Gleichheit sin2è + cos2è = 1 können die Umgrenzungen der normalisierten Normalen abgeleitet werden, wobei der Normalkegelwinkel ohne irgendwelche trigonometrischen Funktionen verwendet wird (11, Block 44). Dieser Ansatz wird als TPATCH bezeichnet.
  • Es muss unbedingt überprüft werden, dass sich die beiden Tangentenkegel nicht überlappen. Die Kegel überlappen sich, wenn át + áb > a ^, was wie gegeben αt < pi, αb < pi, and β < pi als umschrieben werden kann: cosαtcosαb – sinαtsinαb < cosβ (18)
  • Wenn diese Bedingung zutrifft oder wenn cosát < 0, cosáb < 0, wird die Einheitsbox in das OBB-Koordinatensystem zurückgegeben. Eine Einheitsbox hat die folgenden zwei extremen Eckpunkte: (–1, –1, –1) und (+1, +1, +1). Dies wird jedoch nur selten passieren, außer bei hochgradig gekrümmten Patches, da das OBB-Koordinatensystem aus einer Annäherung der lokalen Flächentangente, Bi-Normalen und Normalen des Basis-Patch berechnet wird.
  • Techniken für Umgrenzungstextur-Lookups involvieren das Beibehalten von zwei zusätzlichen MipMap-Hierarchien. Die erste speichert den maximalen Verschiebungswert über jede Texturgrundfläche und jedes Level, und die zweite speichert den minimalen Verschiebungswert der Grundfläche. Allgemein, wenn der parametrische Abstand abnimmt, nehmen auch die Texturumgrenzungen ab.
  • Die endgültigen Umgrenzungen des Verschiebungsvektors o = n ^t, sind das Produkt (in Form der Abstandsarithmetik) des Abstandes aus dem Textur-Lookup [tmin, tmax] multipliziert mit den Abständen der normalisierten Vektornormale entlang jeder Achse. Mit der Bezeichnung [a, a], um einen Abstand zu definieren, wo a die Untergrenze und a die Obergrenze ist, wird die Multiplikation von zwei Abständen definiert von: [a, a] ⊗ [b, b] = [min(ab, a b, a b, ab), max(ab, a b, a b, ab)] (19)
  • Daher ist die Abstandsversion der x-Komponente von o:
    Figure 00110001
    und ähnlich für die anderen Komponenten. Wenn die Texturverschiebung streng positiv ist, dann kann Gleichung 20 weiter optimiert werden.
  • Der letzte Schritt bei den meisten Domain-Shadern ist die Matrixtransformation, um Platz zu gewinnen, sodass der verbleibende Teil beim Erhalten von Umgrenzungen für q die Modellansichtsprojektionsmatrix ist, die nicht von der parametrischen Domain abhängt, und die als Konstante gesehen werden kann. Diese konstante Matrix kann leicht mit den acht Ecken des OBB multipliziert werden, der aus dem verschobenen Patch d erhalten wurde, was in Umgrenzungen für die Platzgewinnungsposition q resultiert. (Der letzte Schritt kann überflüssig sein, wenn hierarchische Umgrenzungen für Vor-Tesselationssortierung und Strahlverfolgung benutzt werden).
  • Mit gegebener anfänglicher Grobunterteilung des Patches kann bei einigen Ausführungsformen eine Prioritätswarteschlange der Umgrenzungskästen der Subdomains beibehalten werden. (Beispielsweise kann jedes Subpatch alternativ in eine Anzahl an kleineren Subpatches unterteilt werden, bis jedes Subpatch, in Hinblick auf z. B. Volumen, Flächenbereich oder Projektionsbereich „klein genug” ist) Bei jedem der folgenden Unterteilungsschritte wird das oberste Element der Warteschlange genommen, weiter unterteilt, und die unterteilten Kästen werden erneut in die Warteschlange eingefügt.
  • Das genaue Sortierkriterium ist abhängig von der Anwendung, und kann die Bildraummaße des Umgrenzungskasten, die Tiefenwerte, beinhalten, oder Kästen priorisieren, die eine Kegelstumpf-Ebene zur Ansicht von Kegelstumpf-Entfernen durchschneiden. 6 veranschaulicht ein ansichtabhängiges Unterteilungskriterium.
  • Zum Ansicht von Kegelstumpf-Entfernen werden die OBB-Ecken (in Clip-Space) gegen die Kegelstumpf-Ebenen getestet. Das Unterteilungskriterium kann so gestaltet sein, dass Subpatches, die dem Kamera-Kegelstumpf überspannen, priorisiert werden, was Geometrie außerhalb der Clip-Ebenen effizient entfernt. Die Clip-Testergebnisse des Patches können ebenfalls dafür benutzt werden, zu garantieren, dass das gesamte Patch komplett innerhalb des Ansichtskegelstumpfs liegt, sodass die Clip-Tests für generierte Dreiecke von dem Patch möglicherweise umgangen werden können.
  • Mit einem gegebenen groben Tiefenpuffer können Subpatches entfernt werden, wenn deren Umgrenzungskasten vollkommen durch bereits gezeichnete Grundelemente verdeckt ist. Das Unterteilungskriterium kann übernommen werden, sodass Subpatches, die näher an der Kamera sind, zuerst verarbeitet und an die Rasterungsstufe der Pipeline gesendet werden, und damit die Wahrscheinlichkeit von z-Entfernen erhöhen.
  • Entfernen der Rückseiten ist wegen der Schwierigkeit, die geometrische Normale nach Verschiebung effizient umzugrenzen, die schwierigste Art von Entfernen. Bei gegebener Tesselationsrate, den normalen Umgrenzungen und einem engen Abstand der Verschiebung können jedoch Umgrenzungen für die verschobene Flächennormale abgeleitet werden. Das Unterteilungskriterium kann weiter angepasst werden, sodass es auf Patches mit hoher normaler Variation abzielt, wobei die Wahrscheinlichkeit von Entfernen der Rückseiten von Subpatches erhöht wird.
  • Nach Berechnen einer Umgrenzungsdarstellung des verschobenen Bézier-Patches können diese Umgrenzungen für Vor-Tesselationssortieren in Kacheln angewendet werden. Überlappen von Kacheln kann durch hierarchische Unterteilung des größten Bildraum-Umgrenzungskastens verringert werden.
  • In einem strahlverfolgenden Umfeld ist das Unterteilungskriterium darauf abgestimmt, das gesamte Flächengebiet eines jeden OBB zu verringern, ähnlich zu dem Vorgang, wie eine Flächengebiet-Heuristik Beschleunigung von Datenstrukturen bildet. Bei Kollisionserkennung ist das Unterteilungskriterium für verringerte OBB-Volumina abgestimmt.
  • Hierarchische Umgrenzungsvolumina können für Entfernen sowie für Sortieren in Kacheln und Strahlverfolgung benutzt werden. Unter Verwendung der hierin beschriebenen Techniken können elektronische Daten in eine visuelle Form zur Anzeige auf einem Display transformiert werden.
  • Um die DX-11-Tesselations-Pipeline-Stufen effizient zu unterstützen, werden, in einer Kachelungsarchitektur, die Umgrenzungen der verschobenen Flächen vor Anwenden von Tesselation und Domain-Shading benötigt. Diese Umgrenzungen können dafür verwendet werden, die verschobenen Bézier-Patches ohne jegliche Tesselation auszulagern (d. h. Grundelemente in kachelspezifische Warteschlangen zu sortieren). Die Tesselation und Domain-Shading würden dann je nach Bedarf stattfinden. Das Verwenden von hierarchischen Umgrenzungen kann nützlich beim Auslagern, Ansicht von Kegelstumpf-Entfernen, Entfernen von Verdeckungen und Entfernen von Rückseiten sein.
  • Die hierin beschriebenen Grafikverarbeitungstechniken können in verschiedenen Hardware-Architekturen implementiert werden. Beispielsweise kann Grafikfunktionalität innerhalb eines Chipsatzes integriert sein. Alternativ kann ein getrennter Grafikprozessor verwendet werden. Als noch weitere Ausführungsform können die Grafikfunktionen durch einen Universalprozessor, einschließlich eines Mehrkernprozessors, implementiert werden.
  • Das Computersystem 130, wie in 12 gezeigt, kann eine Festplatte 134 und ein austauschbares Medium 136 umfassen, die durch einen Bus 104 mit einem Kernlogik-Chipsatz 110 gekoppelt sind. Eine Tastatur und Maus 120, oder andere herkömmliche Komponenten, können mit dem Kernlogik-Chipsatz über Bus 108 gekoppelt sein. Die Kernlogik kann bei einer Ausführungsform über einen Bus 105 mit dem Grafikprozessor 112, und dem Haupt- oder Hostprozessor 100 gekoppelt sein. Der Grafikprozessor 112 kann auch durch einen Bus 106 mit einem Framepuffer 114 gekoppelt werden. Der Framepuffer 114 kann über einen Bus 107 mit einem Bildschirm 118 gekoppelt werden. Bei einer Ausführungsform kann ein Grafikprozessor 112 ein paralleler Prozessor mit mehreren Threads und mehreren Kernen sein, der eine SIMD-(single instruction multiple data)-Architektur einsetzt.
  • Im Fall einer Softwareimplementierung kann der zugehörige Code in jedem geeigneten Halbleiter-, magnetischen oder optischen Speicher, einschließlieh des Hauptspeichers 132 oder jedem verfügbaren Speicher innerhalb des Grafikprozessors, gespeichert sein. Deshalb kann bei einer Ausführungsform der Code, um die Abläufe von 711 auszuführen, in einem maschinen- oder computerlesbaren Medium, wie z. B. der Speicher 132 oder der Grafikprozessor 112, gespeichert sein, und kann bei einer Ausführungsform durch den Prozessor 100 oder den Grafikprozessor 112 ausgeführt werden.
  • 812 sind Ablaufdiagramme. Bei einigen Ausführungsformen können die Abläufe, die in diesen Ablaufdiagrammen dargestellt sind, in Hardware, Software oder Firmware implementiert sein. Bei einer Software-Ausführungsform kann ein computerlesbares Medium, wie z. B. ein Halbleiterspeicher, ein magnetischer Speicher oder ein optischer Speicher, verwendet werden, um Befehle zu speichern, und kann von einem Prozessor ausgeführt werden, um die Abläufe zu implementieren, die in einem oder mehr der Ablaufdiagramme, dargestellt in 813, gezeigt 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 innerhalb der vorliegenden Erfindung eingeschlossenen Implementierung enthalten ist. Somit beziehen sich Verwendungen des Ausdrucks „bei einer Ausführungsform” nicht notwendigerweise auf die gleiche Ausführungsform. Außerdem können die bestimmten Merkmale, Strukturen oder Charakteristika in anderen geeigneten Formen eingeführt werden, die sich von der bestimmten veranschaulichten Ausführungsform unterscheiden, und alle solchen Formen können innerhalb der Ansprüche der vorliegenden Anmeldung eingeschlossen sein.
  • Obwohl die vorliegende Erfindung im Hinblick auf eine begrenzte Anzahl an Ausführungsformen beschrieben wurde, sind sich Fachleute bewusst, dass viele weitere Modifikationen und Varianten davon möglich sind. Die beigefügten Ansprüche sollen alle solchen Modifikationen und Varianten abdecken, die dem Sinn und Schutzbereich der vorliegenden Erfindung entsprechen.

Claims (30)

  1. Verfahren zum Umgrenzen einer verschobenen parametrischen Fläche, umfassend: Umgrenzen einer parametrischen Fläche unter Verwendung eines Koordinatensystems, das von der parametrischen Fläche abgeleitet wurde; und Umgrenzen eines Verschiebungsvektors in dem gleichen Koordinatensystem.
  2. Verfahren nach Anspruch 1, einschließlich Berechnen von hierarchischen Umgrenzungen der verschobenen parametrischen Fläche.
  3. Verfahren nach Anspruch 2, einschließlich adaptives Präzisieren von Umgrenzungen, wo die parametrische Fläche in kleinere Subpatches aufgespalten wird, durch eine anwendungsdefinierte Prioritätsmetrik.
  4. Verfahren nach Anspruch 3, wobei Umgrenzen Präzisieren von Positions-, Normale- und Texturumgrenzungen umfasst.
  5. Verfahren nach Anspruch 4, einschließlich wiederholtes Anwenden von Bézier-Unterteilung bis ein anwendungsdefinierter Schwellenwert erreicht ist.
  6. Verfahren nach Anspruch 1, einschließlich Bilden des Vektor-Mittelwerts zwischen Eckkontrollpunkten, um zwei Achsen zu erhalten, Nehmen des Vektorproduktes der beiden Achsen, und Normalisieren eines jeden Vektors, um ein objektorientiertes Umgrenzungskasten-Koordinatensystem zu bilden.
  7. Verfahren nach Anspruch 6, einschließlich Ableiten eines Normalvektor-Bèzier-Patches von parametrischen Ableitungen, Projizieren von Kontrollpunkten auf eine Einheitskugel, und Umgrenzen eines Raumwinkels auf einer Einheitskugel in einem objektorientierten Umgrenzungskasten-Koordinatensystem, um eine Umgrenzung der normalisierten Normale des Basis-Patches über das Patch zu geben.
  8. Verfahren nach Anspruch 6, einschließlich Verwenden von Kegeln zum Ableiten von Umgrenzungen von normalisierten Normalen eines Basis-Patches.
  9. Verfahren nach Anspruch 6, einschließlich Bilden eines ersten Kegels aus einer Ableitung in eine parametrische Richtung, Bilden eines zweiten Kegels aus einer Ableitung in eine andere parametrische Richtung, und Bilden eines dritten Kegels durch Berechnen eines Vektorproduktes des ersten und zweiten Kegels in dem Koordinatensystem.
  10. Verfahren nach Anspruch 1, einschließlich Entfernen von Subpatches, Tesselation und Domain-Shading.
  11. Verfahren nach Anspruch 1, einschließlich Verwenden der erhaltenen Umgrenzungen, um Grundelemente höherer Ordnung in Bildraum-Kacheln zu sortieren.
  12. Verfahren nach Anspruch 1, einschließlich Bilden einer Hierarchie von Umgrenzungsvolumina für Strahlverfolgung.
  13. Verfahren nach Anspruch 1, einschließlich Transformieren der Fläche in eine visuelle Form, die auf einem Computer-Display angezeigt wird.
  14. Computerlesbares Medium, das Befehle, die von einem Computer ausgeführt werden, speichert, um: eine parametrische Fläche unter Verwendung eines parametrischen Systems, das von der parametrischen Fläche abgeleitet wurde, umzugrenzen; und einen Verschiebungsvektor in dem gleichen Koordinatensystem umzugrenzen.
  15. Medium nach Anspruch 14, wobei weiter Befehle gespeichert werden, um hierarchische Umgrenzungen der verschobenen parametrischen Fläche zu berechnen.
  16. Medium nach Anspruch 15, wobei weiter Befehle gespeichert werden, um Umgrenzungen adaptiv zu präzisieren, wo die parametrische Fläche in kleinere Subpatches aufgespalten ist.
  17. Medium nach Anspruch 16, wobei weiter Befehle gespeichert werden, um die Position-, Normale- und Texturumgrenzungen während des Umgrenzen zu präzisieren.
  18. Medium nach Anspruch 17, wobei weiter Befehle gespeichert werden, um Bézier-Unterteilung wiederholt anzuwenden, bis der anwendungsdefinierte Schwellenwert erreicht ist.
  19. Medium nach Anspruch 14, wobei weiter Befehle gespeichert werden, um Vektor-Mittelwerte zwischen den Eckkontrollpunkten zu bilden, um zwei Achsen zu erhalten, das Vektorprodukt der beiden Achsen zu nehmen, und jeden Vektor zu normalisieren, um ein objektorientiertes Umgrenzungskasten-Koordinatensystem zu bilden.
  20. Medium nach Anspruch 19, wobei weiter Befehle gespeichert werden, um ein Normalvektor-Bézier-Patch von parametrischen Ableitungen abzuleiten, Kontrollpunkte auf eine Einheitskugel zu projizieren, und den Raumwinkel der Einheitskugel in einem objektorientierten Umgrenzungskasten-Koordinatensystem umzugrenzen, um eine Umgrenzung der normalisierten Normale des Basis-Patches über das Patch zu geben.
  21. Medium nach Anspruch 18, wobei weiter Befehle gespeichert werden, um einen ersten Kegel aus einer Ableitung in eine parametrische Richtung zu bilden, einen zweiten Kegel aus einer Ableitung in eine andere parametrische Richtung zu bilden, und einen dritten Kegel durch Berechnen eines Vektorproduktes des ersten und zweiten Kegels in dem Koordinatensystem zu bilden.
  22. Medium nach Anspruch 14, wobei weiter Befehle gespeichert werden, um Subpatches, Tesselation und Domain-Shading zu entfernen.
  23. Medium nach Anspruch 14, wobei weiter Befehle gespeichert werden, um eine Hierarchie von Umgrenzungsvolumina für Strahlverfolgung zu bilden.
  24. Vorrichtung, umfassend: einen Prozessor; und einen Speicher, gekoppelt mit dem Prozessor, um eine parametrische Fläche unter Verwendung eines Koordinatensystems, abgeleitet von der parametrischen Fläche, umzugrenzen, und um einen Verschiebungsvektor in dem gleichen Koordinatensystem umzugrenzen.
  25. Vorrichtung nach Anspruch 24, einschließlich einem Display, um ein Bild, das aus der Umgrenzung der verschobenen parametrischen Fläche resultiert, anzuzeigen.
  26. Vorrichtung nach Anspruch 24, wobei der Speicher Befehle speichern soll, um hierarchische Umgrenzungen der verschobenen parametrischen Fläche zu berechnen.
  27. Vorrichtung nach Anspruch 26, wobei der Speicher Befehle speichern soll, um Umgrenzungen adaptiv zu präzisieren, wo die parametrische Fläche durch eine anwendungsdefinierte Prioritätsmetrik in kleinere Subpatches aufgespalten ist.
  28. Vorrichtung nach Anspruch 26, wobei der Speicher Befehle speichern soll, um Positive-, Normale- und Texturumgrenzungen zu präzisieren.
  29. Vorrichtung nach Anspruch 28, wobei der Speicher Befehle speichern soll, um Bézier-Unterteilung wiederholt anzuwenden bis ein anwendungsdefinierter Schwellenwert erreicht ist.
  30. Vorrichtung nach Anspruch 24, wobei der Speicher Befehle speichern soll, um einen Vektormittelwert zwischen Eckkontrollpunkten zu bilden, um zwei Achsen zu erhalten, das Vektorprodukt der beiden Achsen zu nehmen, und jeden Vektor zu normalisieren, um ein objektorientiertes Umgrenzungskasten-Koordinatensystem zu bilden.
DE102011016347A 2010-04-07 2011-04-07 Hierarchisches Umgrenzen von verschobenen parametrischen Flächen Withdrawn DE102011016347A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US12/755,506 2010-04-07
US12/755,506 US8144147B2 (en) 2010-04-07 2010-04-07 Hierarchical bounding of displaced parametric surfaces

Publications (1)

Publication Number Publication Date
DE102011016347A1 true DE102011016347A1 (de) 2011-12-08

Family

ID=44072155

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102011016347A Withdrawn DE102011016347A1 (de) 2010-04-07 2011-04-07 Hierarchisches Umgrenzen von verschobenen parametrischen Flächen

Country Status (6)

Country Link
US (2) US8144147B2 (de)
JP (1) JP5111638B2 (de)
CN (1) CN102214369B (de)
DE (1) DE102011016347A1 (de)
GB (1) GB2479461B (de)
TW (1) TWI443602B (de)

Families Citing this family (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8570324B2 (en) * 2009-10-12 2013-10-29 Nvidia Corporation Method for watertight evaluation of an approximate catmull-clark surface
CN104025030B (zh) * 2011-12-30 2017-08-29 英特尔公司 减少域着色器/镶嵌器调用的方法、装置及设备
FR2991448B1 (fr) * 2012-06-01 2015-01-09 Centre Nat Rech Scient Procede de mesures tridimensionnelles par stereo-correlation utilisant une representation parametrique de l'objet mesure
KR101980200B1 (ko) * 2012-07-12 2019-05-20 삼성전자주식회사 베이지어 커브에 대한 타일 비닝을 수행하는 그래픽 처리 장치 및 방법
US9619853B2 (en) 2012-08-09 2017-04-11 Qualcomm Incorporated GPU-accelerated path rendering
US9275498B2 (en) * 2012-08-09 2016-03-01 Qualcomm Incorporated GPU-accelerated path rendering
CN103226846B (zh) * 2013-03-22 2015-10-28 浙江工业大学 一种基于手绘线条的三维雕刻方法
US9401034B2 (en) * 2013-04-30 2016-07-26 Microsoft Technology Licensing, Llc Tessellation of two-dimensional curves using a graphics pipeline
KR102104057B1 (ko) 2013-07-09 2020-04-23 삼성전자 주식회사 점별로 테셀레이션 팩터를 할당하는 방법과 상기 방법을 수행할 수 있는 장치들
CN103345529B (zh) * 2013-07-24 2017-02-08 中国科学院自动化研究所 一种基于贝塞尔曲线的多指标观测数据排序方法和装置
KR102109130B1 (ko) * 2013-08-12 2020-05-08 삼성전자주식회사 그래픽스 프로세싱 유닛, 이의 동작 방법, 및 이를 포함하는 장치들
KR102066533B1 (ko) 2013-11-19 2020-01-16 삼성전자 주식회사 도메인 쉐이딩 방법과 이를 수행하는 장치들
CN104616343B (zh) * 2015-01-20 2017-09-22 武汉大势智慧科技有限公司 一种纹理实时采集在线映射的方法和系统
GB2539042B (en) 2015-06-05 2019-08-21 Imagination Tech Ltd Tessellation method using displacement factors
GB2533444B (en) 2015-06-05 2017-08-16 Imagination Tech Ltd Tessellation method
US10037625B2 (en) * 2016-09-15 2018-07-31 Intel Corporation Load-balanced tessellation distribution for parallel architectures
EP3533034A4 (de) * 2016-12-19 2020-09-09 Hewlett-Packard Development Company, L.P. Anordnungsbestimmung für gefertigte 3d-teile
US10235811B2 (en) 2016-12-29 2019-03-19 Intel Corporation Replicating primitives across multiple viewports
US10846914B2 (en) * 2018-01-11 2020-11-24 Sony Interactive Entertainment Inc. Back-facing patch culling with displacement
US10628910B2 (en) 2018-09-24 2020-04-21 Intel Corporation Vertex shader with primitive replication
US11928391B2 (en) * 2019-04-02 2024-03-12 Autodesk, Inc. Hybrid surface modelling with subdivision surfaces and NURBS surfaces
US11443475B2 (en) * 2020-05-08 2022-09-13 Nvidia Corporation Techniques for ray cone tracing and texture filtering
CN113628316B (zh) * 2020-05-08 2023-12-01 辉达公司 使用射线锥进行各向异性纹理滤波的技术
US11315299B1 (en) * 2020-11-13 2022-04-26 Unity Technologies Sf Method for computation of local densities for virtual fibers
US11908063B2 (en) * 2021-07-01 2024-02-20 Adobe Inc. Displacement-centric acceleration for ray tracing

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5357600A (en) * 1992-10-15 1994-10-18 Sun Microsystems, Inc. Method and apparatus for the rendering of curved surfaces using a cone of normals
US5638503A (en) * 1994-07-07 1997-06-10 Adobe Systems, Inc. Method and apparatus for generating bitmaps from outlines containing bezier curves
JP3436008B2 (ja) * 1996-08-20 2003-08-11 富士ゼロックス株式会社 描画処理装置
US6256038B1 (en) * 1998-12-10 2001-07-03 The Board Of Trustees Of The Leland Stanford Junior University Parameterized surface fitting technique having independent control of fitting and parameterization
US6429867B1 (en) * 1999-03-15 2002-08-06 Sun Microsystems, Inc. System and method for generating and playback of three-dimensional movies
US6556206B1 (en) * 1999-12-09 2003-04-29 Siemens Corporate Research, Inc. Automated viewpoint selection for 3D scenes
US7245299B2 (en) * 2003-05-12 2007-07-17 Adrian Sfarti Bicubic surface real-time tesselation unit
US6738062B1 (en) * 2001-01-10 2004-05-18 Nvidia Corporation Displaced subdivision surface representation
US7212205B2 (en) * 2002-11-12 2007-05-01 Matsushita Electric Industrial Co., Ltd. Curved surface image processing apparatus and curved surface image processing method
JP4421203B2 (ja) * 2003-03-20 2010-02-24 株式会社東芝 管腔状構造体の解析処理装置
US7483024B2 (en) * 2003-12-31 2009-01-27 Autodesk, Inc. Accelerated ray-object intersection
WO2005081683A2 (en) * 2004-02-12 2005-09-09 Pixar Method and apparatus for multiresolution geometry caching based on ray differentials
US7292250B2 (en) * 2004-03-31 2007-11-06 Dreamworks Animation, Llc Character deformation pipeline for computer-generated animation
US8217938B2 (en) * 2007-05-31 2012-07-10 Ford Global Technologies, Llc Method and apparatus for determining item orientation
JP2009086842A (ja) * 2007-09-28 2009-04-23 Fujitsu Ltd ハーネス設計支援装置及び方法及びプログラム
JP2011510396A (ja) * 2008-01-23 2011-03-31 インテル コーポレイション グラフィック・パフォーマンス改善のための方法、装置およびコンピュータ・プログラム・プロダクト
US8698802B2 (en) * 2009-10-07 2014-04-15 Nvidia Corporation Hermite gregory patch for watertight tessellation

Also Published As

Publication number Publication date
GB2479461B (en) 2012-12-19
JP5111638B2 (ja) 2013-01-09
CN102214369B (zh) 2014-03-05
GB2479461A (en) 2011-10-12
GB201105960D0 (en) 2011-05-18
US8144147B2 (en) 2012-03-27
US20120154399A1 (en) 2012-06-21
JP2011238213A (ja) 2011-11-24
US20110248997A1 (en) 2011-10-13
CN102214369A (zh) 2011-10-12
TWI443602B (zh) 2014-07-01
TW201205500A (en) 2012-02-01

Similar Documents

Publication Publication Date Title
DE102011016347A1 (de) Hierarchisches Umgrenzen von verschobenen parametrischen Flächen
DE102020000810A1 (de) 3D-Objektrekonstruktion unter Nutzung einer fotometrischen Netzdarstellung
DE60026197T2 (de) Detailgerichtete hierarchische Distanzfelder in der Objektmodellierung
DE60100452T2 (de) Dynamische einstellung von muster zum pixel filterung in antwort auf benutzereingang und/oder sensoreingang
US6437782B1 (en) Method for rendering shadows with blended transparency without producing visual artifacts in real time applications
DE102018114929B4 (de) System und verfahren für ein rendering eines lichtfeldes
DE102018113845A1 (de) Systeme und Verfahren zum Trainieren von neuronalen Netzwerken mit dünnbesetzten Daten
EP3340185B1 (de) Schnelle wiedergabe von quadrics und markierung von schattenbildern davon
DE102017108096A1 (de) System, verfahren und computerprogrammprodukt zum rendern bei variablen abtastraten mittels projektiver geometrischer verzerrung
DE69924699T2 (de) Verfahren zur Schaffung von als Oberflächenelemente dargestellten grafischen Objekten
DE112009000180T5 (de) Verfahren, Vorrichtung und Computerprogrammprodukt für eine verbesserte Grafikperformance
DE102019118838A1 (de) Virtuelle photogrammetrie
DE102012210521A1 (de) Unbeschnittene Zeit- und Linsen-Begrenzungen für verbesserte Probentest- Effizienz bei Bild-Rendering
DE102013114176A1 (de) Tessellieren von Oberflächendatensegmenten beim kachelbasierten Rendern von Computergrafik
Reddy SCROOGE: Perceptually‐Driven Polygon Reduction
US20080012853A1 (en) Generating mesh from implicit surface
DE102010048486A1 (de) Bildverarbeitungstechniken
DE112009002383T5 (de) Grafikverarbeitung unter Verwendung von Culling auf Gruppen von Vertices
DE102013222685A1 (de) System, Verfahren und Computer-Programm-Produkt zum Abtasten einer hierarchischen Tiefe-Karte
DE102018125472A1 (de) Grafikprozessor, der Abtastungs-basiertes Rendering durchführt, und Verfahren zum Betreiben desselben
EP2528042B1 (de) Verfahren und Vorrichtung zum Re-Meshing von 3D-Polygonmodellen
DE102013021044A1 (de) Erzeugung fehlerbefreiter Voxel-Daten
Osher et al. Variational problems and partial differential equations on implicit surfaces: Bye bye triangulated surfaces?
DE112022002137T5 (de) Hybrides differenzierbares Rendering für Lichttransportsimulationssysteme und -Anwendungen
US10026223B2 (en) Systems and methods for isosurface extraction using tessellation hardware

Legal Events

Date Code Title Description
R012 Request for examination validly filed

Effective date: 20110407

R016 Response to examination communication
R016 Response to examination communication
R002 Refusal decision in examination/registration proceedings
R006 Appeal filed
R008 Case pending at federal patent court
R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee