System, method, and computer program product for performing object-space shading

US9747718B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-9747718-B2
Application numberUS-201514645340-A
CountryUS
Kind codeB2
Filing dateMar 11, 2015
Priority dateAug 12, 2014
Publication dateAug 29, 2017
Grant dateAug 29, 2017

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

A system, method, and computer program product are provided for performing object-space shading. A primitive defined by vertices in three-dimensional (3D) space that is specific to an object defined by at least the primitive is received and a shading sample rate is computed for the primitive based on a screen-space derivative of coordinates of a pixel fragment transformed into the 3D space. A shader program is executed by a processing pipeline to compute shaded attributes for the primitive according to the computed shading sample rate.

First claim

Opening claim text (preview).

The invention claimed is: 1. A method comprising: receiving a primitive defined by vertices in three-dimensional (3D) space that is specific to an object defined by at least the primitive; computing a shading sample rate for the primitive; defining an object-space shading grid that is specific to the primitive, wherein a shape of an object-space shading element corresponds to a shape of the primitive, wherein the object-space shading grid comprises at least one object-space shading element, and points on the object-space shading grid are identified based on the shading sample rate; and executing, by a processing pipeline, a shader program to compute shaded attributes for the primitive by sampling the object-space shading grid. 2. The method of claim 1 , wherein the primitive is defined by a first vertex, a second vertex, and a third vertex in the 3D space. 3. The method of claim 2 , further comprising: executing, by the processing pipeline, the shader program to compute a first shaded attribute associated with the first vertex; executing, by the processing pipeline, the shader program to compute a second shaded attribute associated with the second vertex; and executing, by the processing pipeline, the shader program to compute a third shaded attribute associated with the third vertex. 4. The method of claim 3 , further comprising computing a shaded sample at a location within the primitive by interpolating the first, the second, and the third shaded attributes. 5. The method of claim 4 , wherein the interpolating comprises barycentric interpolation. 6. The method of claim 4 , further comprising: subdividing the primitive into multiple sub-primitives including a first sub-primitive defined by the third vertex, a fourth vertex, and a fifth vertex; executing, by the processing pipeline, the shader program to compute a fourth shaded attribute associated with the fourth vertex; and executing, by the processing pipeline, the shader program to compute a fifth shaded attribute associated with the fifth vertex. 7. The method of claim 6 , further comprising computing a second shaded sample at a location within the first sub-primitive by interpolating the third, the fourth, and the fifth shaded attributes. 8. The method of claim 7 , further comprising computing a final shaded sample for the primitive by interpolating the shaded sample and the second shaded sample. 9. The method of claim 1 , wherein the primitive is subdivided into sub-primitives that approximate a size of a pixel fragment transformed into the 3D space that is specific to the object. 10. The method of claim 9 , wherein the primitive is subdivided based on the computed shading sample rate. 11. The method of claim 1 , further comprising, prior to receiving the primitive, determining that the primitive is visible during early z-testing. 12. The method of claim 1 , further comprising: receiving a second primitive defined by at least one additional vertex in the 3D space that is specific to the object defined by at least the primitive and the second primitive; and computing a second shading sample rate for the second primitive, wherein the computed second shading sample rate is not equal to the computed shading sample rate for the primitive. 13. The method of claim 1 , wherein the computed shading sample rate is also based on a specified shading rate corresponding to a number of samples specified for each screen-space pixel. 14. The method of claim 1 , wherein sampling the object-space shading grid comprises: computing finite differences for a sub-triangle within the primitive that is defined by points within the object-space grid; and transforming the finite differences from 3D space to an orthonormal basis to compute object-space derivatives or screen-space derivatives. 15. The method of claim 1 , wherein the coordinates at the vertices in 3D space that define the object-space shading grid are barycentric coordinates. 16. The method of claim 1 , further comprising updating the object-space grid in response to a change in a shape of the primitive. 17. The method of claim 1 , further comprising determining a camera position is changed and a shape of the primitive has not changed between a first frame and a second frame and reusing the object-space grid for the second frame. 18. The method of claim 1 , wherein the shading sample rate computed for the primitive is a dynamic shading rate that varies within the primitive. 19. A system comprising: a processing pipeline that is configured to: receive a primitive defined by vertices in three-dimensional (3D) space that is specific to an object defined by at least the primitive; compute a shading sample rate for the primitive; define an object-space shading grid that is specific to the primitive, wherein a shape of an object-space shading element corresponds to a shape of the primitive, wherein the object-space shading grid comprises at least one object-space shading element, and points on the object-space shading grid are identified based on the shading sample rate; and execute a shader program to compute shaded attributes for the primitive by sampling the object-space shading grid. 20. A non-transitory computer-readable storage medium storing instructions that, when executed by a processor, causes the processor to perform steps comprising: receiving a primitive defined by vertices in three-dimensional (3D) space that is specific to an object defined by at least the primitive; computing a shading sample rate for the primitive; defining an object-space shading grid that is specific to the primitive, wherein a shape of an object-space shading element corresponds to a shape of the primitive, wherein the object-space shading grid comprises at least one object-space shading element, and points on the object-space shading grid are identified based on the shading sample rate; and executing, by a processing pipeline, a shader program to compute shaded attributes for the primitive by sampling the object-space shading grid.

Assignees

Inventors

Classifications

  • General purpose rendering architectures · CPC title

  • Re-meshing · CPC title

  • Processor architectures; Processor configuration, e.g. pipelining · CPC title

  • Level of detail · CPC title

  • G06T15/80Primary

    Shading · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US9747718B2 cover?
A system, method, and computer program product are provided for performing object-space shading. A primitive defined by vertices in three-dimensional (3D) space that is specific to an object defined by at least the primitive is received and a shading sample rate is computed for the primitive based on a screen-space derivative of coordinates of a pixel fragment transformed into the 3D space. A s…
Who is the assignee on this patent?
Nvidia Corp
What technology area does this patent fall under?
Primary CPC classification G06T15/80. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Aug 29 2017 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 1 related publication on this page (citations in our corpus or others sharing the same primary CPC).