IP Library Granted Patent US 9,922,457
Granted Patent B2
US 9,922,457 · App. 14/094,567 · Granted Mar 20, 2018

Computing tessellation coordinates using dedicated hardware

Inventors: Justin S. Legakis (Sunnyvale, CA); Emmett M. Kilgariff (San Jose, CA); Michael C. Shebanow (Saratoga, CA)
Assignee: NVIDIA CORPORATION
G06T17/20G06T15/005
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,922,457
App. No.
14/094,567
Granted
Mar 20, 2018
Kind
B2
Abstract

A system and method for performing tessellation of three-dimensional surface patches performs some tessellation operations using programmable processing units and other tessellation operations using fixed function units with limited precision. (u,v) parameter coordinates for each vertex are computed using fixed function units to offload programmable processing engines. The (u,v) computation is a symmetric operation and is based on integer coordinates of the vertex, tessellation level of detail values, and a spacing mode.

Claims (37)

1. A method for performing tessellation operations using a graphics processor, the method comprising:

receiving a set of control points defining a first three-dimensional surface patch at the graphics processor;

receiving a fractional tessellation level of detail value for the first surface patch;

in response to determining that an even fractional spacing mode is specified, determining a first tessellation level of detail value and a second tessellation level of detail value for performing an interpolation operation for the fractional level of detail value, wherein the first tessellation level of detail value comprises an even integer value that is less than the fractional tessellation level of detail value, and the second tessellation level of detail value comprises an even integer value that is greater than the fractional tessellation level of detail value;

performing the interpolation operation for the fractional level of detail value, wherein the interpolation operation includes interpolating between first (u, v) coordinates associated with the first tessellation level of detail value and second (u, v) coordinates associated with the second tessellation level of detail value to compute fractional (u, v) coordinates associated with the fractional tessellation level of detail value for a vertex of the first surface patch; and

computing vertex attributes for the vertex based on the (u, v) coordinates and the set of control points.

2. The method of claim 1 , further comprising the step of determining a topology of the first three-dimensional surface patch that is defined by a stream of indices corresponding to vertices.

3. The method of claim 1 , wherein computing the (u, v) coordinates for each vertex is performed with 16 bit fixed point arithmetic operations.

4. The method of claim 1 , further comprising:

in response to determining that an odd fractional spacing mode is specified, determining the first tessellation level of detail value comprising an odd integer value that is less than the fractional tessellation level of detail value and the second tessellation level of detail value comprising an odd integer value that is greater than the fractional tessellation level of detail value for performing the interpolation operation for the fractional tessellation level of detail value.

5. The method of claim 1 , further comprising the step of storing the (u, v) coordinates as tessellation data.

6. The method of claim 1 , further comprising the step of executing a tessellation evaluation shader in a programmable shader engine within the graphics processor to produce attributes for each vertex.

7. A graphics subsystem for performing tessellation operations, the graphics subsystem comprising:

a graphics processor configured to:

receive a set of control points defining a first three-dimensional surface patch at the graphics processor;

receive a fractional tessellation level of detail value for the first surface patch;

in response to determining that an even fractional spacing mode is specified, determine a first tessellation level of detail value and a second tessellation level of detail value for performing an interpolation operation for the fractional level of detail value, wherein the first tessellation level of detail value comprises an even integer value that is less than the fractional tessellation level of detail value, and the second tessellation level of detail value comprises an even integer value that is greater than the fractional tessellation level of detail value;

perform the interpolation operation for the fractional level of detail value, wherein the interpolation operation includes interpolating between first (u, v) coordinates associated with the first tessellation level of detail value and second (u, v) coordinates associated with the second tessellation level of detail value to compute fractional (u, v) coordinates associated with the fractional tessellation level of detail value for a vertex of the first surface patch; and

compute vertex attributes for the vertex based on the (u, v) coordinates and the set of control points.

8. The graphics subsystem of claim 7 , wherein the graphics processor is further configured to determine a topology of the first three-dimensional surface patch that is defined by a stream of indices corresponding to vertices.

9. The graphics subsystem of claim 7 , wherein computing the (u, v) coordinates for each vertex is performed with 16 bit fixed point arithmetic operations.

10. The graphics subsystem of claim 7 , wherein the graphics processor is further configured to:

in response to determining that an odd fractional spacing mode is specified, determine the first tessellation level of detail value comprising an odd integer value that is less than the fractional tessellation level of detail value and the second tessellation level of detail value comprising an odd integer value that is greater than the fractional tessellation level of detail value for performing the interpolation operation for the fractional tessellation level of detail value.

11. The graphics subsystem of claim 7 , wherein the graphics processor is further configured to store the (u, v) coordinates as tessellation data.

12. The graphics subsystem of claim 7 , wherein the graphics processor is further configured to execute a tessellation evaluation shader in a programmable shader engine within the graphics processor to produce attributes for each vertex.

13. A computing device for performing tessellation operations, the computing device comprising:

a graphics processor configured to:

receive a set of control points defining a first three-dimensional surface patch at the graphics processor;

receive a fractional tessellation level of detail value for the first surface patch;

in response to determining that an even fractional spacing mode is specified, determine a first tessellation level of detail value and a second tessellation level of detail value for performing an interpolation operation for the fractional level of detail value, wherein the first tessellation level of detail value comprises an even integer value that is less than the fractional tessellation level of detail value, and the second tessellation level of detail value comprises an even integer value that is greater than the fractional tessellation level of detail value;

perform the interpolation operation for the fractional level of detail value, wherein the interpolation operation includes interpolating between first (u, v) coordinates associated with the first tessellation level of detail value and second (u, v) coordinates associated with the second tessellation level of detail value to compute fractional (u, v) coordinates associated with the fractional tessellation level of detail value for a vertex of the first surface patch; and

compute vertex attributes for the vertex based on the (u, v) coordinates and the set of control points.

14. The computing device of claim 13 , wherein the graphics processor is further configured to determine a topology of the first three-dimensional surface patch that is defined by a stream of indices corresponding to vertices.

15. The computing device of claim 13 , wherein computing the (u, v) coordinates for each vertex is performed with 16 bit fixed point arithmetic operations.

16. The computing device of claim 13 , wherein the graphics processor is further configured to:

in response to determining that an odd fractional spacing mode is specified, determine the first tessellation level of detail value comprising an odd integer value that is less than the fractional tessellation level of detail value and the second tessellation level of detail value comprising an odd integer value that is greater than the fractional tessellation level of detail value for performing the interpolation operation for the fractional tessellation level of detail value.

17. The computing device of claim 13 , wherein the graphics processor is further configured to store the (u, v) coordinates as tessellation data.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 1, 2016
From: LEGAKIS, JUSTIN S.; KILGARIFF, EMMETT M.; SHEBANOW, MICHAEL C.
To: NVIDIA CORPORATION
Reel/Frame 037637/0703 →
Continuity (2)
Continuation 12240390 · Sep 29, 2008
Related Publication 20140160126A1 · Jun 12, 2014