IP Library Granted Patent US 10,198,788
Granted Patent B2
US 10,198,788 · App. 14/709,064 · Granted Feb 5, 2019

Method and system of temporally asynchronous shading decoupled from rasterization

Inventors: Daniel Kurt Baker (Towson, MD); Timothy James Kipp (Fallston, MD)
Assignee: OXIDE INTERACTIVE LLC
G06T1/60G06T1/20G06T15/80G06T2200/12G06T2200/28
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 10,198,788
App. No.
14/709,064
Granted
Feb 5, 2019
Kind
B2
Abstract

A method and system for rendering a graphic object that decouples shading from rasterization is disclosed. The method includes selecting a set of points of a graphic object for shading. At least one shading parameter is determined for application to the selected set of points of the graphic object. The selected points are shaded using the shading parameter image to produce a shaded graphic object image via a graphic processor at a first frequency relative to the frame rate. The shaded graphic object image is rasterized into a frame image in parallel at a second frequency relative to the frame rate. Multiple processors may be used for the shading and rasterization.

Claims (50)

1. A method for generating a graphic display of image frames at a frame rate by decoupling shading from rasterization in a graphic processing system, the method comprising:

for each graphic object of a plurality of graphic objects:

selecting a set of points of a corresponding one of the plurality of graphic objects for shading via a first graphic processor unit (GPU), the corresponding one of the plurality of graphic objects being represented as a mesh in object space;

determining at least one shading parameter for application to the selected set of points of the corresponding one of the plurality of graphic objects via the first GPU;

precalculating a shading parameter image based on the determined at least one shading parameter via the first GPU;

storing the shading parameter image in a memory of the first GPU;

sorting the plurality of graphic objects to minimize state changes of a shader program and allocating an image space in the memory of the first GPU for the plurality of graphic objects;

shading, with the shader program, the selected set of points of the mesh representing the corresponding one of the plurality of graphic objects according to a sorting order of the plurality of graphic objects using the shading parameter image to produce a shaded mesh having corresponding shaded object space values at a first frequency relative to the frame rate;

anti-aliasing the shading of the shaded mesh by calculating a MIP chain of the shaded mesh; and

rasterizing, by the first GPU, the MIP chain of the shaded mesh to produce a geometric representation of the shaded mesh for a frame image at a second frequency different from the first frequency, the rasterizing of the MIP chain of the shaded mesh including mapping the corresponding object space values of the MIP chain of the shaded mesh to corresponding pixels of the frame image allocated in the image space for the corresponding one of the plurality of graphic objects.

2. The method of claim 1 , wherein the shading of the selected points of the mesh using the shading parameter image to produce the shaded mesh having corresponding shaded object space values is performed by a second GPU.

3. The method of claim 1 , wherein the first frequency is lower than the second frequency.

4. The method of claim 1 , further comprising:

creating a request for shading execution in a queue; and

selecting between the first GPU and a second GPU for performing the request from the queue.

5. The method of claim 1 , wherein the shading parameter image is stored for other instances of the corresponding one of the plurality of graphic objects for another frame image.

6. The method of claim 5 , further comprising reusing the shading parameter image for another frame image if the parameters for the corresponding one of the plurality of graphic objects are similar for the another frame image.

7. The method of claim 6 , further comprising rasterizing the shaded mesh for the other frame image on a second GPU in parallel with the reusing the shading parameter image.

8. The method of claim 1 , wherein the corresponding one of the plurality of graphic objects is shaded in object space.

9. A graphic rendering system for producing a frame image at a frame rate by decoupling shading from rasterization of a graphic object in the frame image, the system comprising:

a memory of one or more graphic processing units (GPUs), the memory storing a plurality of graphic objects, each of the plurality of graphic objects including a set of points, each of the plurality of graphic objects being represented as a mesh in object space; and

one or more processors coupled to the memory of the one or more GPUs, at least one of the one or more processors being operable to:

for each graphic object of the plurality of graphic objects:

select a set of points of a corresponding one of the plurality of graphic objects for shading via the one or more GPUs,

determine at least one shading parameter for application to the selected set of points of the corresponding one of the plurality of graphic objects via the one or more GPUs;

precalculate a shading parameter image based on the determined at least one shading parameter via the one or more GPUs;

store the shading parameter image in the memory of the one or more GPUs;

sort the plurality of graphic objects to minimize state changes of a shader program and allocate an image space in the memory of the one or more GPUs for the plurality of graphic objects;

shade, with the shader program, the selected set of points of the mesh representing the corresponding one of the plurality of graphic objects according to a sorting order of the plurality of graph objects at a first frequency relative to the frame rate using the shading parameter image to produce a shaded mesh having corresponding shaded object space values;

anti-alias the shading of the shaded mesh by calculating a MIP chain of the shaded mesh; and

rasterize, by the one or more GPUs, the MIP chain of the shaded mesh at a second frequency relative to the frame rate to produce a geometric representation of the shaded mesh for the frame image, the rasterizing of the MIP chain of the shaded mesh including mapping the corresponding object space values of the MIP chain of the shaded mesh to corresponding pixels of the frame image allocated in the image space for the corresponding one of the plurality of graphic objects.

10. The system of claim 9 , wherein the one or more GPUs includes a second GPU.

11. The system of claim 10 , wherein the second GPU shades the selected points of the mesh using the shading parameter image to produce the shaded mesh having corresponding shaded object space values.

12. The system of claim 10 , wherein selected set of points of the corresponding one of the plurality of graphic objects is shaded in response to a request for shading execution in a queue, and wherein the one or more GPUs including the second GPU is selected for executing the request from the queue.

13. The system of claim 9 , wherein the first frequency is lower than the second frequency.

14. The system of claim 9 , wherein the shading parameter image is stored in the memory for other instances of the corresponding one of the plurality of graphic objects for another frame image.

15. The system of 14 , wherein the shading parameter image is reused for another frame image if the parameters for the corresponding one of the plurality of graphic objects are similar for the another frame image.

16. The system of claim 15 , wherein the rasterizing of the MIP chain of the shaded mesh for the other frame image is performed in parallel with the reusing the shading parameter image.

17. A non-transitory, machine readable medium having stored thereon instructions for producing a frame image at a frame rate by decoupling shading from rasterization of a graphic object in the frame image, which when executed by at least one machine processor, cause the at least one machine processor to:

for each graphic object of a plurality of graphic objects stored in a memory of one or more graphic processing units (GPUs):

select a set of points of a corresponding one of the plurality of graphic objects for shading via the one or more GPUs, the corresponding one of the plurality of graphic objects being represented as a mesh in object space;

determine at least one shading parameter for application to the selected set of points of the corresponding one of the plurality of graphic objects via the one or more GPUs;

precalculate a shading parameter image based on the determined at least one shading parameter via the one or more GPUs;

store the shading parameter image in the memory of the one or more GPUs; and

sort the plurality of graphic objects to minimize state changes of a shader program and allocate an image space in the memory of the one or more GPUs for the plurality of graphic objects,

wherein at least one of the one or more processors shades, with the shader program, the selected set of points of the mesh representing the corresponding one of the plurality of graphic objects according to a sorting order of the plurality of graphic objects at a first frequency relative to the frame rate using the shading parameter image to produce a shaded mesh having corresponding shaded object space values,

wherein at least one of the one or more processors anti-aliases the shading of the shaded mesh by calculating a MIP chain of the shaded mesh, and

wherein at least one of the one or more processors rasterizes, by the one or more GPUs, the MIP chain of the shaded mesh at a second frequency relative to the frame rate to produce a geometric representation of the mesh for the frame image, the rasterizing of the MIP chain of the shaded mesh including mapping the corresponding shaded object space values of the of the MIP chain of the shaded mesh to corresponding pixels of the frame image allocated in the image space for the corresponding one of the plurality of graphic objects.

18. The non-transitory, machine readable medium of claim 17 , wherein the corresponding one of the plurality of graphic objects is shaded in object space.

19. The non-transitory, machine readable medium of claim 17 , wherein the object space is a texture space.

Assignments (2)
CHANGE OF NAME Recorded Jul 26, 2023
From: OXIDE INTERACTIVE, LLC
To: OXIDE INTERACTIVE, INC.
Reel/Frame 064388/0248 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 10, 2018
From: BAKER, DANIEL KURT; KIPP, TIMOTHY JAMES
To: OXIDE INTERACTIVE LLC
Reel/Frame 046515/0318 →
Continuity (2)
Continuation In Part 14076604 · Nov 11, 2013
Related Publication 20150262413A1 · Sep 17, 2015