System, method, and computer program product for shading using a dynamic object-space grid

US9754407B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-9754407-B2
Application numberUS-201514645327-A
CountryUS
Kind codeB2
Filing dateMar 11, 2015
Priority dateAug 12, 2014
Publication dateSep 5, 2017
Grant dateSep 5, 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 shading using a dynamic object-space grid. An object defined by triangle primitives in a three-dimensional (3D) space that is specific to the object is received and an object-space shading grid is defined for a first triangle primitive of the triangle primitives based on coordinates of the first triangle primitive in the 3D space. A shader program is executed by a processing pipeline to compute a shaded value at a point on the object-space shading grid for the first triangle primitive.

First claim

Opening claim text (preview).

What is claimed is: 1. A method comprising: receiving an object defined by a plurality of triangle primitives in a three-dimensional (3D) space that is specific to the object; defining an object-space shading grid for at least one of the plurality of triangle primitives based on coordinates at vertices of the at least one triangle primitive in the 3D space, wherein a shape of an object-space shading element corresponds to a shape of the at least one triangle primitive, wherein the object-space shading grid comprises at least one object-space shading element; and executing, by a processing pipeline, a shader program to compute a shaded value at a point on the object-space shading grid for a first triangle primitive. 2. The method of claim 1 , wherein the vertices comprise a first vertex, a second vertex, and a third vertex that define the first triangle primitive and the point corresponds to the first vertex. 3. The method of claim 2 , further comprising: executing, by the processing pipeline, the shader program to compute a second shaded value at a second point that corresponds to the second vertex; and executing, by the processing pipeline, the shader program to compute a third shaded value at a third point that corresponds to the third vertex. 4. The method of claim 3 , further comprising computing a shaded sample at a location within the first triangle by interpolating the first, second, and third shaded values. 5. The method of claim 1 , wherein the object-space shading grid comprises an additional level comprising only vertex positions of four sub-triangles produced by bisecting each edge of the first triangle primitive. 6. The method of claim 5 , wherein the additional level of the object-space shading grid is dynamically generated during execution of the shader program. 7. The method of claim 1 , wherein the object-space shading grid is mipmapped such that each higher resolution mip level is generated by subdividing a lower resolution mip level into substantially congruent sub-triangles within the first triangle primitive. 8. The method of claim 7 , further comprising: transforming a screen-space pixel into the 3D space that is specific to the object to generate a footprint; and identifying a first mip level of the mipmapped object-space shading grid that includes a sub-triangle having an area that most closely approximates an area of the footprint. 9. The method of claim 8 , further comprising identifying a second mip level of the mipmapped object-space shading grid that includes a sub-triangle having an area that closely approximates the area of the footprint. 10. The method of claim 9 , further comprising executing the shader program to compute a second shaded value at a second point on the object-space shading grid for the sub-triangle. 11. The method of claim 10 , wherein the sub-triangle is defined by the point, the second point on the object-space shading grid, and a third point on the object-space shading grid. 12. The method of claim 11 , further comprising: executing the shader program to compute a third shaded value at the third point for the sub-triangle; and computing a shaded sample at a sample location within the sub-triangle based on the shaded value, the second shaded value, and the third shaded value. 13. The method of claim 1 , further comprising: transforming a screen-space pixel into the 3D space that is specific to the object to generate a footprint defined by at least a first sample location; and determining that a sub-triangle within the first triangle encloses the first sample location. 14. The method of claim 13 , further comprising, executing the shader program to compute a second shaded value at a second point on the object-space shading grid that corresponds to a first vertex of the sub-triangle. 15. The method of claim 1 , further comprising updating the object-space grid in response to a change in a shape of the first triangle primitive. 16. The method of claim 1 , further comprising computing a dynamic shading rate for the first triangle primitive that varies within the first triangle primitive and is used to sample the object-space shading grid for the first triangle primitive. 17. A system comprising: a processing pipeline that is configured to: receive an object defined by a plurality of triangle primitives in a three-dimensional (3D) space that is specific to the object; define an object-space shading grid for at least one of the plurality of triangle primitives based on coordinates at vertices of the at least one triangle primitive in the 3D space, wherein a shape of an object-space shading element corresponds to a shape of the at least one triangle primitive, wherein the object-space shading grid comprises at least one object-space shading element; and execute a shader program to compute a shaded value at a point on the object-space shading grid for a first triangle primitive. 18. The system of claim 17 , wherein the object-space shading grid is mipmapped such that each higher resolution mip level is generated by subdividing a lower resolution mip level into substantially congruent sub-triangles within the first triangle primitive. 19. The system of claim 17 , wherein the object-space shading grid comprises an additional level comprising only vertex positions of four sub-triangles produced by bisecting each edge of the first triangle primitive. 20. A non-transitory computer-readable storage medium storing instructions that, when executed by a processor, causes the processor to perform steps comprising: receiving an object defined by a plurality of triangle primitives in a three-dimensional (3D) space that is specific to the object; defining an object-space shading grid for at least one of the plurality of triangle primitives based on coordinates at vertices of the at least one triangle primitive in the 3D space, wherein a shape of an object-space shading element corresponds to a shape of the at least one triangle primitive, wherein the object-space shading grid comprises at least one object-space shading element; and executing, by a processing pipeline, a shader program to compute a shaded value at a point on the object-space shading grid for a first triangle primitive.

Assignees

Inventors

Classifications

  • G06T15/80Primary

    Shading · CPC title

  • Re-meshing · CPC title

  • Level of detail · CPC title

  • Constructive solid geometry [CSG] using solid primitives, e.g. cylinders, cubes · CPC title

  • Finite element generation, e.g. wire-frame surface description, {tesselation} · 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 US9754407B2 cover?
A system, method, and computer program product are provided for shading using a dynamic object-space grid. An object defined by triangle primitives in a three-dimensional (3D) space that is specific to the object is received and an object-space shading grid is defined for a first triangle primitive of the triangle primitives based on coordinates of the first triangle primitive in the 3D space. …
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 Sep 05 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).