Fast, coverage-optimized, resolution-independent and anti-aliased graphics processing
View Patent ↗Technology related to efficient, coverage-optimized, resolution-independent, and anti-aliased graphics processing is described. Uniquely, an example system may include a graphics processing unit configured to receive a plurality of vertices representing a control polygon of a curve and expanding the control polygon of the curve. The graphic processing unit may further tessellate the control polygon into a plurality of tiles, select a subset of tiles from the plurality of tiles based on satisfying selection criteria, rasterize fragments using the selected subset of tiles, and render the curve based on the fragments.
1. A computer-implemented method for stroking a curve comprising:
receiving, at a graphics processing unit, a plurality of vertices representing a control polygon of the curve, wherein the graphics processing unit maintains resolution independence from a central processing unit by:
expanding the control polygon of the curve in at least one location proximate at least one endpoint of the curve;
tessellating the control polygon into a plurality of tiles;
selecting a subset of tiles from the plurality of tiles based on each of the tiles of the subset satisfying a selection criterion;
rasterizing the curve into fragments using only the selected subset of tiles that satisfy the selection criterion, wherein the selection criteria requires a tile in the plurality of tiles to have a vertex within a threshold distance from the curve; and
rendering the curve based on the fragments.
2. The computer-implemented method of claim 1 , comprising discarding unselected tiles of the plurality of tiles.
3. The computer-implemented method of claim 1 , comprising interpolating texture coordinates of vertices of the plurality of tiles.
4. The computer-implemented method of claim 1 , wherein rendering the curve comprises anti-aliasing the curve.
5. The computer-implemented method of claim 1 , wherein the selection criterion requires that a tile in the plurality of tiles include a first vertex inside the curve and a second vertex outside the curve.
6. The computer-implemented method of claim 1 , wherein the threshold distance is at least a portion of a height of one of the plurality of tiles.
7. The computer-implemented method of claim 1 , wherein the curve is a quadratic Bezier curve or a cubic Bezier curve.
8. The computer-implemented method of claim 1 , wherein a width of the curve is less than a device pixel.
9. The computer-implemented method of claim 1 , comprising expanding the control polygon of the curve by a device pixel.
10. A system comprising:
a central processing unit;
a graphics processing unit; and
a memory coupled to the central processing unit and the graphics processing unit and storing instructions, which when executed, cause the graphics processing unit to perform operations comprising:
receiving a plurality of vertices representing a control polygon of a curve;
expanding, by maintaining resolution independence from the central processing unit, the control polygon of the curve in at least one location proximate at least one endpoint of the curve;
tessellating, by maintaining resolution independence from the central processing unit, the control polygon into a plurality of tiles;
selecting a subset of tiles from the plurality of tiles based on each of the tiles of the subset satisfying a selection criterion;
rasterizing the curve into fragments using only the selected subset of tiles that satisfy the selection criterion, wherein the selection criteria requires a tile in the plurality of tiles to have a vertex within a threshold distance from the curve; and
rendering the curve based on the fragments.
11. The system of claim 10 , wherein the instructions further cause the graphics processing unit to perform operations comprising discarding unselected tiles of the plurality of tiles.
12. The system of claim 10 , wherein the instructions further cause the graphics processing unit to perform operations comprising interpolating texture coordinates of vertices of the plurality of tiles.
13. The system of claim 10 , wherein the selection criterion requires that a tile in the plurality of tiles include a first vertex inside the curve and a second vertex outside the curve.
14. The system of claim 10 , wherein the threshold distance is at least a portion of a height of one of the plurality of tiles.
15. A non-transitory computer-readable medium storing a computer readable program, wherein the computer readable program when executed causes a graphics processing unit to perform operations comprising:
receiving a plurality of vertices representing a control polygon of a curve;
expanding, by maintaining resolution independence from a central processing unit, the control polygon of the curve in at least one location proximate at least one endpoint of the curve;
tessellating, by maintaining resolution independence from the central processing unit, the control polygon into a plurality of tiles;
selecting a subset of tiles from the plurality of tiles based on each of the tiles of the subset satisfying a selection criterion;
rasterizing the curve into fragments using only the selected subset of tiles that satisfy the selection criterion, wherein the selection criteria requires a tile in the plurality of tiles to have a vertex within a threshold distance from the curve; and
rendering the curve based on the fragments.
16. The non-transitory computer-readable medium of claim 15 , wherein the computer readable program further causes the graphics processing unit to perform operations comprising discarding unselected tiles of the plurality of tiles.
17. The non-transitory computer-readable medium of claim 15 , wherein the computer readable program further causes the graphics processing unit to perform operations comprising interpolating texture coordinates of vertices of the plurality of tiles.
18. The non-transitory computer-readable medium of claim 15 , wherein the selection criterion requires that a tile in the plurality of tiles include a first vertex inside the curve and a second vertex outside the curve.
19. The non-transitory computer-readable medium of claim 15 , wherein the threshold distance is at least a portion of a height of one of the plurality of tiles.