IP Library Granted Patent US 10,332,290
Granted Patent B2
US 10,332,290 · App. 15/075,464 · Granted Jun 25, 2019

Fast, coverage-optimized, resolution-independent and anti-aliased graphics processing

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,332,290
App. No.
15/075,464
Granted
Jun 25, 2019
Kind
B2
Abstract

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.

Claims (40)

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.

Assignments (1)
CHANGE OF NAME Recorded Dec 10, 2018
From: ADOBE SYSTEMS INCORPORATED
To: ADOBE INC.
Reel/Frame 048421/0361 →