Apparatus and method for synthesizing 2D image and media using inverse rendering with 3D spatially varying lighting information estimation
US-12548237-B2 · Feb 10, 2026 · US
US9836878B2 · US · B2
| Field | Value |
|---|---|
| Publication number | US-9836878-B2 |
| Application number | US-201514820438-A |
| Country | US |
| Kind code | B2 |
| Filing date | Aug 6, 2015 |
| Priority date | Mar 15, 2013 |
| Publication date | Dec 5, 2017 |
| Grant date | Dec 5, 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 processing primitive-specific attributes. A portion of a graphics processor is determined to operate in a fast geometry shader mode and a vertex associated with a set of per-vertex attributes is determined to be a shared vertex. The shared vertex is determined to be a non-provoking vertex corresponding to a first primitive that is associated with a first set of per-primitive attributes and the shared vertex is determined to be a provoking vertex corresponding to a second primitive that is associated with a second set of per-primitive attributes. Only one set of the per-vertex attributes associated with the shared vertex is stored and only one of the second set of per-primitive attributes associated with the second primitive is stored.
Opening claim text (preview).
What is claimed is: 1. A method, comprising: determining that a portion of a graphics processor is operating in a fast geometry shader mode, wherein the graphics processor comprises at least one streaming multiprocessor configured to execute a vertex shader and a geometry shader; determining that a first vertex associated with a first set of per-vertex attributes is a first shared vertex; determining that the first shared vertex is a non-provoking vertex corresponding to a first primitive that is associated with a first set of per-primitive attributes; determining that the first shared vertex is a provoking vertex corresponding to a second primitive that is associated with a second set of per-primitive attributes by examining vertices of the second primitive and vertices of a third primitive when the first primitive is received; storing the first set of the per-vertex attributes associated with the first shared vertex; and storing only one copy of the second set of per-primitive attributes associated with the second primitive. 2. The method of claim 1 , further comprising processing the only one copy of the second set of per-primitive attributes associated with the second primitive. 3. The method of claim 1 , wherein the first set of the per-vertex attributes associated with the first shared vertex is stored in a cache entry. 4. The method of claim 3 , wherein the only one copy of the second set of per-primitive attributes associated with the second primitive is also stored in the cache entry. 5. The method of claim 3 , further comprising setting a bit corresponding to the cache entry indicating that the first shared vertex is the provoking vertex. 6. The method of claim 3 , further comprising associating a primitive identifier corresponding to the second primitive with the cache entry. 7. The method of claim 1 , further comprising: determining that a second vertex associated with a second set of per-vertex attributes is a second shared vertex; determining that the second shared vertex is the provoking vertex corresponding to the first primitive and a third primitive that is associated with a third set of per-primitive attributes; and duplicating the second set of per-vertex attributes associated with the second shared vertex to generate a duplicated set of per-vertex attributes associated with the second shared vertex. 8. The method of claim 7 , further comprising: storing the second set of per-vertex attributes and the first set of per-primitive attributes associated with the first primitive in a first cache entry; and storing the duplicated set of per-vertex attributes and the third set of per-primitive attributes associated with the third primitive in a second cache entry. 9. A non-transitory computer readable medium, storing instructions that, when executed by a processor, cause the processor to perform steps, comprising: determining that a portion of a graphics processor is operating in a fast geometry shader mode, wherein the graphics processor comprises at least one streaming multiprocessor configured to execute a vertex shader and a geometry shader; determining that a first vertex associated with a first set of per-vertex attributes is a first shared vertex; determining that the first shared vertex is a non-provoking vertex corresponding to a first primitive that is associated with a first set of per-primitive attributes; determining that the first shared vertex is a provoking vertex corresponding to a second primitive that is associated with a second set of per-primitive attributes by examining vertices of the second primitive and vertices of a third primitive when the first primitive is received; storing the first set of the per-vertex attributes associated with the first shared vertex; and storing only one copy of the second set of per-primitive attributes associated with the second primitive. 10. A system, comprising: a graphics processor comprising at least one streaming multiprocessor configured to execute a vertex shader and a geometry shader, and configured to: determine that a portion of a graphics processor is operating in a fast geometry shader mode; determine that a first vertex associated with a first set of per-vertex attributes is a first shared vertex; determine that the first shared vertex is a non-provoking vertex corresponding to a first primitive that is associated with a first set of per-primitive attributes; determine that the first shared vertex is a provoking vertex corresponding to a second primitive that is associated with a second set of per-primitive attributes by examining vertices of the second primitive and vertices of a third primitive when the first primitive is received; store the first set of the per-vertex attributes associated with the first shared vertex; and store only one copy of the second set of per-primitive attributes associated with the second primitive. 11. The system of claim 10 , wherein the graphics processor comprises a cache and the first set of the per-vertex attributes associated with the first shared vertex is stored in a cache entry. 12. The system of claim 11 , wherein the only one copy of the second set of per-primitive attributes associated with the second primitive is also stored in the cache entry. 13. The system of claim 11 , wherein the graphics processor is further configured to set a bit corresponding to the cache entry indicating that the first shared vertex is the provoking vertex. 14. A method, comprising: determining that a portion of a graphics processor is operating in a fast geometry shader mode, wherein the graphics processor comprises at least one streaming multiprocessor configured to execute a vertex shader and a geometry shader; determining that a first vertex associated with a first set of per-vertex attributes is a first shared vertex; determining that the first shared vertex is a non-provoking vertex corresponding to a first primitive that is associated with a first set of per-primitive attributes; determining that the first shared vertex is a provoking vertex corresponding to a second primitive that is associated with a second set of per-primitive attributes; determining that a second vertex associated with a second set of per-vertex attributes is a second shared vertex; determining that the second shared vertex is the provoking vertex corresponding to the first primitive; duplicating the second set of per-vertex attributes associated with the second shared vertex to generate a duplicated set of per-vertex attributes associated with the second shared vertex; storing the first set of the per-vertex attributes associated with the first shared vertex; and storing only one copy of the second set of per-primitive attributes associated with the second primitive. 15. The method of claim 14 , wherein the first set of the per-vertex attributes associated with the first shared vertex is stored in a cache entry.
Gouraud shading · CPC title
involving 3D image data · CPC title
involving image processing hardware · CPC title
General purpose rendering architectures · CPC title
Shading · CPC title
Related publications grouped by family.
Answers are generated from the same data shown on this page.