Face augmentation in video
US-12165275-B2 · Dec 10, 2024 · US
US9607390B2 · US · B2
| Field | Value |
|---|---|
| Publication number | US-9607390-B2 |
| Application number | US-201414511540-A |
| Country | US |
| Kind code | B2 |
| Filing date | Oct 10, 2014 |
| Priority date | Nov 11, 2013 |
| Publication date | Mar 28, 2017 |
| Grant date | Mar 28, 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 technique is provided for performing rasterisation of input primitives to generate graphics fragments to be processed to generate output data. The technique comprises determining a bounding box for an input primitive, and performing a multi-level patch analysis, each patch having an array of grid points defining boundaries of a set of sub-patches within that patch. The technique further comprises, when performing patch analysis of a selected patch, performing a bounding box evaluation step to determine if a condition exists where the bounding box does not cover any of the grid points, or if a special grid point coverage condition exists, and in the presence of the condition, adopting an alternative operation for that selected patch instead of a default operation. The alternative operation is configured to determine whether the primitive at least partially covers any of the sub-patches of the selected patch.
Opening claim text (preview).
The invention claimed is: 1. A method of performing rasterisation in a graphics processing system that includes a rasterisation stage for rasterising input primitives to generate graphics fragments to be processed by a rendering stage in order to generate output data for display in a render output area, each input primitive specifying vertex data, and having at least one edge equation associated therewith, the method comprising for each input primitive: determining from the vertex data a bounding box for the input primitive; performing a multi-level patch analysis in order to determine patches covered at least partially by the input primitive, at a first level the render output area being divided into one or more patches, and at each subsequent level the render output area being divided into a plurality of patches smaller than the patches of the preceding level; each patch having an array of grid points defining boundaries of a set of sub-patches within that patch; at each level the patch analysis comprising, for each of one or more selected patches at that level, performing as a default operation testing of the grid points of the selected patch against the at least one edge equation of the primitive to determine whether the primitive at least partially covers any of the sub-patches of that selected patch; for any selected patch for which it is determined that the primitive at least partially covers any of the sub-patches of that patch, and assuming the final level of the patch analysis has not been reached, the patch analysis further comprising sub-dividing that selected patch into the set of sub-patches, and for each sub-patch that the primitive at least partially covers, treating that sub-patch as a selected patch to be analysed at the next level of the patch analysis; and generating one or more graphics fragments for at least each sub-patch of the final level of the patch analysis determined to be covered at least partially by the primitive; when performing patch analysis of a selected patch, performing a bounding box evaluation step to determine if a special condition exists where the bounding box does not cover any of the grid points in the array of grid points, and, in the presence of said special condition, adopting an alternative operation for that selected patch instead of said default operation, said alternative operation determining whether the primitive at least partially covers any of the sub-patches of the selected patch without testing the grid points of the selected patch against the at least one edge equation of the primitive, wherein: said bounding box evaluation step determines existence of said special condition if the bounding box does not cover any of the grid points in the array of grid points, and the bounding box is contained entirely within a single sub-patch; each input primitive has a depth equation associated therewith; the default operation further comprises performing a depth calculation operation using the depth equation of the primitive in order to determine a depth range for each sub-patch; and in the event of said special condition being detected, said alternative operation further comprises determining the depth range without performing said depth calculation operation. 2. A method as claimed in claim 1 , wherein on detection of said special condition said alternative operation comprises marking the single sub-patch containing the bounding box as partially covered and marking all other sub-patches of the selected patch as not covered. 3. A method as claimed in claim 1 , wherein: said default operation uses data generated by the testing of the grid points of the selected patch against the at least one edge equation in order to determine grid point coverage information for each grid point in the array and grid edge coverage information for each grid edge between adjacent grid points in the array in order to identify grid points and grid edges covered by the input primitive; and on detection of said special condition said alternative operation determines the grid point coverage information and grid edge coverage information to identify that no grid points and no grid edges are covered by the input primitive. 4. A method as claimed in claim 1 , wherein said alternative operation determines the depth range from the depth values associated with each vertex of the input primitive. 5. A method as claimed in claim 1 , wherein: at each level the patch analysis further comprises performing a depth testing and update operation, and if for a current selected patch the equivalent sub-patch at the preceding level of the patch analysis passed the depth testing and update operation, the patch analysis skips the depth testing part of the depth testing and update operation. 6. A method as claimed in claim 1 , wherein said step of determining from the vertex data a bounding box for the input primitive comprises: determining minimum and maximum X and Y values from the vertex data; snapping said minimum and maximum X and Y values out to the boundaries of the nearest sub-patch associated with the final level of the patch analysis in order to determine the boundaries of the bounding box so as to ensure that all pixel sampling points for pixels within the primitive are covered by the bounding box. 7. A method of performing rasterisation in a graphics processing system that includes a rasterisation stage for rasterising input primitives to generate graphics fragments to be processed by a rendering stage in order to generate output data for display in a render output area, each input primitive specifying vertex data, and having at least one edge equation associated therewith, the method comprising for each input primitive: determining from the vertex data a bounding box for the input primitive; performing a multi-level patch analysis in order to determine patches covered at least partially by the input primitive, at a first level the render output area being divided into one or more patches, and at each subsequent level the render output area being divided into a plurality of patches smaller than the patches of the preceding level; each patch having an array of grid points defining boundaries of a set of sub-patches within that patch; at each level the patch analysis comprising, for each of one or more selected patches at that level, performing as a default operation testing of the grid points of the selected patch against the at least one edge equation of the primitive to determine whether the primitive at least partially covers any of the sub-patches of that selected patch; for any selected patch for which it is determined that the primitive at least partially covers any of the sub-patches of that patch, and assuming the final level of the patch analysis has not been reached, the patch analysis further comprising sub-dividing that selected patch into the set of sub-patches, and for each sub-patch that the primitive at least partially covers, treating that sub-patch as a selected patch to be analysed at the next level of the patch analysis; and generating one or more graphics fragments for at least each sub-patch of the final level of the patch analysis determined to be covered at least partially by the primitive; when performing patch analysis of a selected patch, performing a bounding box evaluation step to determine if a special condition exists where the bounding box does not cover any of the grid points in the array of grid points, and, in the presence of said special condition, adopting an alternative operation for that selected patch instead of said default operation, said alternative operation determining whether the primitive at least partially covers any of the sub-patches of the selected patch without testing the grid points of the selected p
General purpose rendering architectures · CPC title
Physics · mapped topic
Finite element generation, e.g. wire-frame surface description, {tesselation} · CPC title
of area, perimeter, diameter or volume · CPC title
Related publications grouped by family.
Answers are generated from the same data shown on this page.