System, method, and computer program product for shading using a dynamic object-space grid
US-2016048999-A1 · Feb 18, 2016 · US
US9747718B2 · US · B2
| Field | Value |
|---|---|
| Publication number | US-9747718-B2 |
| Application number | US-201514645340-A |
| Country | US |
| Kind code | B2 |
| Filing date | Mar 11, 2015 |
| Priority date | Aug 12, 2014 |
| Publication date | Aug 29, 2017 |
| Grant date | Aug 29, 2017 |
A practical reading order for non-experts. Skip the full description unless you need deep technical detail.
What the patent document calls the invention.
A short plain-language summary of the technical disclosure.
Who owns or filed the patent and who is credited as inventor.
Filing, priority, publication, and grant dates set the timeline.
The legal scope of protection — read this for what is actually claimed.
Technology tags used to group this patent with similar filings.
Prior art links and similar publications in this corpus.
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.
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.
General purpose rendering architectures · CPC title
Re-meshing · CPC title
Processor architectures; Processor configuration, e.g. pipelining · CPC title
Level of detail · CPC title
Shading · CPC title
Related publications grouped by family.
Answers are generated from the same data shown on this page.