Patentable/Patents/US-8698803
US-8698803

Efficient geometric tessellation and displacement

PublishedApril 15, 2014
Assigneenot available in USPTO data we have
Inventorsnot available in USPTO data we have
Technical Abstract

Methods and computer-storage media are provided for rendering three-dimensional (3D) graphics by tessellating objects using novel structures and algorithms. Rendering utilizing “patches,” configurable functions that include a specified number of control points, allows for computation on a per-patch or per-control-point basis, in addition to traditional per-vertex, per-primitive, and per-pixel methods. This produces a number of advantages over previous tessellation methods, including the reuse of computations across existing vertices and the ability to process at a lower frequency. The operations to compute points are simplified in order to optimize system resources used in the process. Transitions from un-tessellated to tessellated objects are smoother utilizing the present invention, while developers have more flexibility in the level of detail present at different edges of the same patch. Detail within a displacement map also can be increased without negative effects associated with previous systems and methods.

Patent Claims
12 claims

Legal claims defining the scope of protection, as filed with the USPTO.

1

1. One or more computer storage media hardware devices having computer-useable instructions embodied thereon for performing an efficient method of calculating and loading data points for rendering three-dimensional (3D) graphics, wherein objects are rendered utilizing one or more patches made up of graphics primitives, the method comprising: defining the one or more patches, wherein each patch is defined by a configurable function and a number of control points; calculating and loading a first set of data points according to a set of parameters associated with a first patch, wherein calculating utilizes fixed-point calculations that exclude floating point calculations in order to reduce processing; based on the fixed-point generated first set of data points, continuously and directly rendering the first patch prior to additional calculations or write operations to memory of the first set of data points, wherein the additional calculations or write operations to memory render the first patch at an alternate time; and calculating and loading a second set of data points associated with the first patch, wherein calculating utilizes the fixed-point calculations that exclude floating point calculations while reusing one or more intermediate results from one or more values from the calculated first set of data points of the first patch, wherein the first and second sets of data points are used to continuously render the three-dimensional graphics, and wherein the fixed-point calculations and reusing intermediate results calculates and loads at least the first sets of data points using an optimized frequency, the fixed point calculations comprising reciprocals, multiplication, and addition operations while explicitly excluding division operations.

2

2. The media of claim 1 , wherein the set of parameters include one or more frequencies associated with the patch selected from the group comprising: per-vertex frequency, per-primitive frequency, per pixel frequency, per-control-point frequency, and per-patch frequency, wherein the one or more frequencies are selectively identified for rendering based in part on optimizing rendering at different frequencies.

3

3. The media of claim 2 , wherein each parameter in the set of parameters is given a unique integer identifier.

4

4. The media of claim 1 , further comprising: generating a set of data associated with a total quantity of operations necessary for calculating and loading the first set of data points; and performing a query of the set of data.

5

5. A method of calculating and loading data points for rendering three-dimensional (3D) graphics, wherein objects are rendered utilizing one or more patches made up of graphics primitives, the method comprising: defining the one or more patches, wherein each patch is defined by a configurable function and a number of control points; calculating and loading a first set of data points according to a set of parameters associated with a first patch, wherein calculating utilizes fixed-point calculations that exclude floating point calculations in order to reduce processing; based on the fixed-point generated first set of data points, continuously and directly rendering the first patch prior to additional calculations or write operations to memory of the first set of data points, wherein the additional calculations or write operations to memory render the first patch at an alternate time; and calculating and loading a second set of data points associated with the first patch, wherein calculating utilizes the fixed-point calculations that exclude floating point calculations while reusing one or more intermediate results from one or more values from the calculated first set of data points of the first patch, wherein the first and second sets of data points are used to continuously render the three-dimensional graphics, and wherein the fixed-point calculations and reusing intermediate results calculates and loads at least the first sets of data points using an optimized frequency, the fixed point calculations comprising reciprocals, multiplication, and addition operations while explicitly excluding division operations.

6

6. The method of claim 5 , wherein the set of parameters include one or more frequencies associated with the patch selected from the group comprising: per-vertex frequency, per-primitive frequency, per pixel frequency, per-control-point frequency, and per-patch frequency, wherein the one or more frequencies are selectively identified for rendering based in part on optimizing rendering at different frequencies.

7

7. The method of claim 6 , wherein each parameter in the set of parameters is given a unique integer identifier.

8

8. The method of claim 5 , further comprising: generating a set of data associated with a total quantity of operations necessary for calculating and loading the first set of data points; and performing a query of the set of data.

9

9. A computing device having stored thereon computer-useable instructions that, when executed, cause the computing device to perform a method of calculating and loading data points for rendering three-dimensional (3D) graphics, wherein objects are rendered utilizing one or more patches made up of graphics primitives, the method comprising: defining the one or more patches, wherein each patch is defined by a configurable function and a number of control points; calculating and loading a first set of data points according to a set of parameters associated with a first patch, wherein calculating utilizes fixed-point calculations that exclude floating point calculations in order to reduce processing, based on the fixed-point generated first set of data points, continuously and directly rendering the first patch prior to additional calculations or write operations to memory of the first set of data points, wherein the additional calculations or write operations to memory render the first patch at an alternate time; and calculating and loading a second set of data points associated with the first patch, wherein calculating utilizes the fixed-point calculations that exclude floating point calculations while reusing one or more intermediate results from one or more values from the calculated first set of data points of the first patch, wherein the first and second sets of data points are used to continuously render the three-dimensional graphics, and wherein the fixed-point calculations and reusing intermediate results calculates and loads at least the first sets of data points using an optimized frequency, the fixed point calculations comprising reciprocals, multiplication, and addition operations while explicitly excluding division operations.

10

10. The computing device of claim 9 , wherein the set of parameters include one or more frequencies associated with the patch selected from the group comprising: per-vertex frequency, per-primitive frequency, per pixel frequency, per-control-point frequency, and per-patch frequency, wherein the one or more frequencies are selectively identified for rendering based in part on optimizing rendering at different frequencies.

11

11. The computing device of claim 10 , wherein each parameter in the set of parameters is given a unique integer identifier.

12

12. The computing device of claim 9 , further comprising: generating a set of data associated with a total quantity of operations necessary for calculating and loading the first set of data points; and performing a query of the set of data.

Classification Codes (CPC)

Cooperative Patent Classification codes for this invention. Click any code to explore related patents in that topic.

Patent Metadata

Filing Date

March 3, 2011

Publication Date

April 15, 2014

Want to explore more patents?

Browse 5M+ US patents with plain-English claim translations and AI-generated analysis.

Citation & reuse

Analysis on this page is generated by Patentable — an AI-powered patent intelligence platform. AI-generated summaries, explanations, and analysis may be reused with attribution and a visible link back to the canonical URL below. Patent abstracts and claims are USPTO public domain.

Cite as: Patentable. “Efficient geometric tessellation and displacement” (US-8698803). https://patentable.app/patents/US-8698803

© 2026 Patentable. All rights reserved.

Patentable is a research and drafting-assistant tool, not a law firm, and does not provide legal advice. Documents we generate are drafts for review by a licensed patent attorney.