Face augmentation in video
US-12165275-B2 · Dec 10, 2024 · US
US10089774B2 · US · B2
| Field | Value |
|---|---|
| Publication number | US-10089774-B2 |
| Application number | US-201113298051-A |
| Country | US |
| Kind code | B2 |
| Filing date | Nov 16, 2011 |
| Priority date | Nov 16, 2011 |
| Publication date | Oct 2, 2018 |
| Grant date | Oct 2, 2018 |
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.
The disclosed techniques includes generating an input visibility stream for each tile of a frame, the input visibility stream indicating whether or not an input primitive is visible in each tile when rendered, and generating an output visibility stream for each tile of the frame, the output visibility stream indicating whether or not an output primitive is visible in each tile when rendered, wherein the output primitive is produced by tessellating the input primitive. In this way, based on the input visibility stream, tessellation may be skipped for entire input primitive that is not visible in the tile. Also, based on the output visibility stream, tessellation may be skipped for certain ones of the output primitives that are not visible in the tile, even if some of the input primitive is not visible.
Opening claim text (preview).
What is claimed is: 1. A method for tessellation in a tile-based graphics rendering pipeline by a graphics processor, the method comprising: generating an input visibility stream for each tile of a frame before rendering the frame, the input visibility stream indicating whether or not an input primitive is visible in each tile when rendered; generating an output visibility stream for each tile of the frame before rendering the frame, the output visibility stream including an indication of whether or not an output primitive is visible in the tile based on a depth test, wherein the output primitive is determined to be visible if any pixel produced by rasterizing the output primitive is determined to be visible, and wherein the output primitive is produced by tessellating the input primitive, wherein the output visibility stream comprises a series of bits that indicate for every output primitive whether it contributes to the rendered tile or not and the input visibility stream comprises a series of bits that indicate for every input primitive whether it contributes to the rendered tile or not; and tessellating the input primitives to create the output primitives for a current tile based on the input visibility stream and the output visibility stream, wherein tessellating the input primitives comprises: skipping tessellation for the input primitives indicated by the input visibility stream as not contributing to the current tile; and performing tessellation, based on the output visibility stream, for input primitives indicated by the input visibility stream as contributing to the current tile, wherein tessellation is skipped for a portion of the input primitives for which corresponding output primitives are indicated as not contributing to the current tile by the output visibility stream. 2. The method of claim 1 , wherein generating the input visibility stream comprises: vertex shading the input primitive; hull shading the vertex shaded input primitive; tessellating the hull shaded input primitive to produce a plurality of output primitives; domain shading the plurality of output primitives; rasterizing the plurality of output primitives to produce pixels; performing a depth test to determine if the pixels are visible for a tile of a frame; and generating an indication in the input visibility stream of whether or not the input primitive is visible in the tile based on the depth test, wherein the input primitive is determined to be visible if any of the pixels produced by rasterizing the output primitives associated with the input primitive are determined to be visible. 3. The method of claim 1 , wherein the input primitive is a patch and wherein the output primitive is a triangle, quad or isoline. 4. The method of claim 1 , further comprising: rendering the current tile of the frame, wherein rendering is skipped for input primitives indicated as being non-visible in the current tile by the input visibility stream. 5. The method of claim 1 , further comprising: rendering the current tile of the frame, wherein rendering is skipped for output primitives indicated as being non-visible in the current tile by the output visibility stream. 6. A method for tessellation in a tile-based graphics rendering pipeline by a graphics processor, the method comprising: generating a visibility stream for each input primitive for each tile of a frame before rendering the frame, the visibility stream including an indication of whether or not an output primitive is visible in the tile based on a depth test, wherein the output primitive is determined to be visible if any pixel produced by rasterizing the output primitive is determined to be visible, the visibility stream having a length of N bits, wherein each bit indicates whether or not a respective output primitive is visible in each tile when rendered, and wherein the output primitive is produced by tessellating the input primitive; and tessellating the input primitives to create the output primitives for a current tile based on the visibility stream, wherein tessellating the input primitives comprises skipping tessellation for a portion of the input primitives for which corresponding output primitives are indicated as not contributing to the current tile by the visibility stream. 7. The method of claim 6 , wherein the length N is determined by the maximum number of output primitives per input primitive as defined by a rendering pipeline. 8. The method of claim 6 , wherein generating the visibility stream comprises: vertex shading the input primitive; hull shading the vertex shaded input primitive; tessellating the hull shaded input primitive to produce a plurality of output primitives; domain shading the plurality of output primitives; rasterizing the plurality of output primitives to produce pixels; performing a depth test to determine if the pixels are visible for a tile of a frame; and generating the indication in the visibility stream of whether or not the output primitive is visible in the tile based on the depth test, wherein the output primitive is determined to be visible if any pixel produced by rasterizing the output primitive is determined to be visible. 9. The method of claim 6 , further comprising: rendering the current tile of the frame, wherein rendering is skipped for input primitives in the case that every bit in the visibility stream indicates a non-visible output primitive. 10. The method of claim 6 , further comprising: rendering the current tile of the frame, wherein rendering is skipped for output primitives indicated as being non-visible in the current tile by the visibility stream. 11. The method of claim 6 , wherein the tile-based rendering architecture has an enabled geometry shader, and wherein the visibility stream has a length of N×M bits, wherein M is the maximum number of output primitives produced by the geometry shader, and wherein generating the visibility stream further comprises geometry shading the plurality of output primitives after domain shading the output primitives. 12. An apparatus configured to perform tessellation in a tile-based graphics rendering pipeline comprising: a memory configured to store graphics data; and a graphics processor in communication with the memory, the graphics processor configured to: execute a binning pipeline on the graphics data, the binning pipeline configured to generate an input visibility stream for each tile of a frame before rendering the frame, the input visibility stream indicating whether or not an input primitive is visible in each tile when rendered, the binning pipeline further configured to generate an output visibility stream for each tile of the frame before rendering the frame, the output visibility stream including an indication of whether or not an output primitive is visible in the tile based on a depth test, wherein the output primitive is determined to be visible if any pixel produced by rasterizing the output primitive is determined to be visible, and wherein the output primitive is produced by tessellating the input primitive, wherein the output visibility stream comprises a series of bits that indicate for every output primitive whether it contributes to the rendered tile or not and the input visibility stream comprises a series of bits that indicate for every input primitive whether it contributes to the rendered tile or not, and the graphics processor is further configured to execute a rendering pipeline, wherein the rendering pipeline is configured to tessellate the input primitives to create the output primitives for a current tile based on the input visibility stream and the output visibility stream, wherein tessellat
General purpose rendering architectures · CPC title
Related publications grouped by family.
Answers are generated from the same data shown on this page.