Patent US6093035A successfully refreshed from Google Patents.
Patent US6094201A successfully refreshed from Google Patents.
US6094201A
Expired / Lapsed
US
⏱️ 0.0 years remaining
Polygon rendering method and system with dedicated setup engine
Assignee: Microsoft Technology Licensing LLC
•
Filing: 1998-04-08
•
Granted: 2000-07-25
•
Expires: 2018-04-08
Abstract
Abstract A system and method of rendering polygons in graphics system using incremental iterative addition in place of complex division operations. A setup engine provides relevant values to edge and span walk modules for rapid processing and rendering of polygon characteristics including material values. Characteristic functions are iterated with respect to polygon area and along individual spans to derive values for each pixel therein.
Inventors
- 👤 Adam Malamy
- 👤 Nicholas R. Baker
- 👤 Robert Laker
- 👤 Padma Parthasarathy
- 👤 Adrian Sfarti
Bibliographic Details
Application Number
—
Jurisdiction
US
Data Source
google_patents
Last Synchronized
2026-11-09 12:36
CPC Classifications
G; G06; G06T; G06T15/00; G06T15/50; G06T15/80
Claims Analysis
Total Claims: 22
Claim 1
Independent Claim
163 words
In a graphics system, a method of rendering a polygon having a plurality of edges and plurality of vertices, each edge being defined by two vertices, and wherein the method is performed in a manner that eliminates having to do a separate division for calculating a slope for each edge, comprising the steps for: a) selecting a polygon edge; and prior to rendering the polygon, performing steps for; b) initializing a set of coordinates at a selected one of the two vertices defining the selected edge; c) defining a plurality of starting points for successive spans along the selected edge, each span comprising at least one pixel, by iteratively incrementing the set of coordinates; and d) for each successive span, rendering each pixel in the span by iteratively incrementing the set of coordinates along the span, and thereafter, rendering the polygon by performing only two divisions, one for a single edge of the polygon and one for the inverse area of the polygon.
Claim 2
Dependent Claim
163 words
In a graphics system, a method of rendering a polygon having a plurality of edges and plurality of vertices, each edge being defined by two vertices, and wherein the method is performed in a manner that eliminates having to do a separate division for calculating a slope for each edge, comprising the steps for: a) selecting a polygon edge; and prior to rendering the polygon, performing steps for; b) initializing a set of coordinates at a selected one of the two vertices defining the selected edge; c) defining a plurality of starting points for successive spans along the selected edge, each span comprising at least one pixel, by iteratively incrementing the set of coordinates; and d) for each successive span, rendering each pixel in the span by iteratively incrementing the set of coordinates along the span, and thereafter, rendering the polygon by performing only two divisions, one for a single edge of the polygon and one for the inverse area of the polygon.
Claim 3
Dependent Claim
129 words
The method of claim 1, wherein the polygon has an area, further comprising: b.1) initializing a first characteristic function value as equal to the polygon area; b.2) initializing a second characteristic function value as equal to zero; and wherein c) comprises: c.1) incrementing each coordinate in the set of coordinates; c.2) incrementing each of the first and second characteristic function values; c.3) responsive to the sum of the first and second characteristic functions being greater than the polygon area: c.3.1) adjusting a first coordinate in the set of coordinates; and c.3.2) adjusting each of the first and second characteristic function values; c.4) defining a span starting point as the set of coordinates; and c.5) responsive to the first characteristic function value being greater than zero, repeating c.1) through c.5).
Claim 4
Dependent Claim
128 words
The method of claim 2, wherein the coordinates comprise an x-coordinate and a y-coordinate, the method further comprising: a.1) determining a slope of the selected edge; a.2) determining a first y-difference value and a second y-difference value; and a.3) determining a first characteristic function increment and a second characteristic function increment; and wherein: c.1) comprises adding the slope to the x-coordinate and adding 1 to the y-coordinate; c.2) comprises adding the first characteristic function increment to the first characteristic function value and adding the second characteristic function increment to the second characteristic function value; c.3.1) comprises adding 1 to the x-coordinate; and c.3.2) comprises subtracting the first y-difference value from the first characteristic function value and subtracting the second y difference value from the second characteristic function value.
Claim 5
Dependent Claim
60 words
The method of claim 3, wherein the polygon is a triangle having vertices (x1,y1), (x2,y2), and (x3,y3): a.1) comprises determining the slope as xstep=(x3-x1)/(y3-y1); a.2) comprises determining the first y-difference value as dy1=y2-y3 and the second y-difference value as dy0=y1-y2; and a.3) comprises determining the first characteristic function increment as dxy1=dy1*xstep-(x2-x3) and determining the second characteristic function increment as dxy0=dy0*xtep-(x1-x2).
Claim 6
Dependent Claim
20 words
The method of claim 4, further comprising the step of a.1.1) adjusting the determined slope to equal an integer value.
Claim 7
Dependent Claim
64 words
The method of claim 1, wherein d) comprises: d.1) initializing pixel coordinates as equal to the span starting point; d.2) initializing a span characteristic function value; d.3) rendering a pixel located at the pixel coordinates; d.4) incrementing the pixel coordinates; d.5) incrementing the span characteristic function value; and d.6) responsive to the span characteristic function value being greater than zero, repeating d.3) through d.6).
Claim 8
Dependent Claim
126 words
The method of claim 6, wherein the coordinates comprise an x-coordinate and a y-coordinate, and wherein the span starting point has a position, the method further comprising: a.1) determining a first y-difference value and a second y-difference value; and wherein: d.2) comprises: d.2.1) selecting a vertex of the polygon; d.2.2) defining a first vector representing the position of the span starting point with respect to the selected vertex; d.2.3) defining a second vector representing a polygon edge adjacent to the selected vertex; and d.2.4) initializing the span characteristic function value as equal to a cross-product between the first and second vectors; d.4) comprises adding 1 to the x-coordinate; and d.5) comprises adding one of the first and second y-difference values to the span characteristic function value.
Claim 9
Dependent Claim
81 words
The method of claim 1, wherein: a) further comprises determining at least one material value at each vertex of the polygon; c) further comprises for each successive span, determining at least one material value for the span starting point by iteratively incrementing the determined material value at the selected vertex; and d) further comprises for each successive span, determining at least one material value for each pixel in the span by iteratively incrementing the material value for the span starting point.
Claim 10
Dependent Claim
14 words
The method of claim 8, wherein the at least one material value represents color.
Claim 11
Dependent Claim
66 words
The method of claim 8, wherein: a) further comprises determining a first material value gradient along the selected edge for each material value, and determining a second material value gradient along a span for each material value; b) comprises iteratively incrementing the material value by adding the first material value gradient; and c) comprises iteratively incrementing the material value by adding the second material value gradient.
Claim 12
Dependent Claim
203 words
A computer program product for implementing in a graphics system, a computerized method of rendering a polygon having a plurality of edges and a plurality of vertices, each edge being defined by two vertices, and wherein the method is performed in a manner that eliminates having to do a separate division for calculating a slope for each edge, the computer program product comprising a computer readable medium for carrying computer readable instructions for implementing the method, and wherein the computer readable instructions are comprised of computer program code means for performing the steps of: a) selecting a polygon edge; and prior to rendering the polygon, performing steps for; b) initializing a set of coordinates at a selected one of the two vertices defining the selected edge; c) defining a plurality of starting points for successive spans along the selected edge, each span comprising at least one pixel, by iteratively incrementing the set of coordinates; and d) for each successive span, rendering each pixel in the span by iteratively incrementing the set of coordinates along the span, and thereafter, rendering the polygon by performing only two divisions, one for a single edge of the polygon and one for the inverse area of the polygon.
Claim 13
Dependent Claim
203 words
A computer program product for implementing in a graphics system, a computerized method of rendering a polygon having a plurality of edges and a plurality of vertices, each edge being defined by two vertices, and wherein the method is performed in a manner that eliminates having to do a separate division for calculating a slope for each edge, the computer program product comprising a computer readable medium for carrying computer readable instructions for implementing the method, and wherein the computer readable instructions are comprised of computer program code means for performing the steps of: a) selecting a polygon edge; and prior to rendering the polygon, performing steps for; b) initializing a set of coordinates at a selected one of the two vertices defining the selected edge; c) defining a plurality of starting points for successive spans along the selected edge, each span comprising at least one pixel, by iteratively incrementing the set of coordinates; and d) for each successive span, rendering each pixel in the span by iteratively incrementing the set of coordinates along the span, and thereafter, rendering the polygon by performing only two divisions, one for a single edge of the polygon and one for the inverse area of the polygon.
Claim 14
Dependent Claim
136 words
The computer program product of claim 11, wherein the polygon has an area, and wherein the implemented method further comprises: b.1) initializing a first characteristic function value as equal to the polygon area; b.2) initializing a second characteristic function value as equal to zero; and wherein c) comprises: c.1) incrementing each coordinate in the set of coordinates; c.2) incrementing each of the first and second characteristic function values; c.3) responsive to the sum of the first and second characteristic functions being greater than the polygon area: c.3.1) adjusting a first coordinate in the set of coordinates; and c.3.2) adjusting each of the first and second characteristic function values; c.4) defining a span starting point as the set of coordinates; and c.5) responsive to the first characteristic function value being greater than zero, repeating c.1) through c.5).
Claim 15
Dependent Claim
132 words
The computer program product of claim 12, wherein the coordinates comprise an x-coordinate and a y-coordinate, and wherein the method further comprises: a.1) determining a slope of the selected edge; a.2) determining a first y-difference value and a second y-difference value; and a.3) determining a first characteristic function increment and a second characteristic function increment; and wherein: c.1) comprises adding the slope to the x-coordinate and adding 1 to the y-coordinate; c.2) comprises adding the first characteristic function increment to the first characteristic function value and adding the second characteristic function increment to the second characteristic function value; c.3.1) comprises adding 1 to the x-coordinate; and c.3.2) comprises subtracting the first y-difference value from the first characteristic function value and subtracting the second y difference value from the second characteristic function value.
Claim 16
Dependent Claim
66 words
The computer program product of claim 13, wherein the polygon is a triangle having vertices (x1, y1), (x2,y2), and (x3,y3) and wherein step a) comprises: a.1) determining the slope as xstep=(x3-x1)/(y3-y1); a.2) determining the first y-difference value as dy1=y2-y3 and the second y-difference value as dy0, y1-y2; and a.3) determining the first characteristic function increment as dxy1=dy1*xstep-(x2-x3) and determining the second characteristic function increment as dxy0=dy0*xstep-(x1-x2).
Claim 17
Dependent Claim
26 words
The computer program product of claim 14, wherein the implemented method further comprises the step of a.1.1) adjusting the determined slope to equal an integer value.
Claim 18
Dependent Claim
71 words
The computer program product of claim 11, wherein step d) of the implemented method comprises: d.1) initializing pixel coordinates as equal to the span starting point; d.2) initializing a span characteristic function value; d.3) rendering a pixel located at the pixel coordinates; d.4) incrementing the pixel coordinates; d.5) incrementing the span characteristic function value; and d.6) responsive to the span characteristic function value being greater than zero, repeating d.3) through d.6).
Claim 19
Dependent Claim
132 words
The computer program product of claim 16, wherein the coordinate comprise an x-coordinate and a y-coordinate, and wherein the span starting point has a position, the implemented method further comprising: for step a): a.1) determining a first y-difference value and a second y-difference value; and for step d.2): d.2.1) selecting a vertex of the polygon; d.2.2) defining a first vector representing the position of the span starting point with respect to the selected vertex; d.2.3) defining a second vector representing a polygon edge adjacent to the selected vertex; and d.2.4) initializing the span characteristic function value as equal to a cross-product between the first and second vectors; d.4) comprises adding 1 to the x-coordinate; and d.5) comprises adding one of the first and second y-difference values to the span characteristic function value.
Claim 20
Dependent Claim
86 words
The computer program product of claim 11, wherein: step a) further comprises determining at least one material value at each vertex of the polygon; step c) further comprises for each successive span, determining at least one material value for the span starting point by iteratively incrementing the determined material value at the selected vertex; and step d) further comprises for each successive span, determining at least one material value for each pixel in the span by iteratively incrementing the material value for the span starting point.
Claim 21
Dependent Claim
16 words
The computer program product of claim 18, wherein the at least one material value represents color.
Claim 22
Dependent Claim
71 words
The computer program product of claim 18, wherein: step a) further comprises determining a first material value gradient along the selected edge for each material value, and determining a second material value gradient along a span for each material value; step b) comprises iteratively incrementing the material value by adding the first material value gradient; and step c) comprises iteratively incrementing the material value by adding the second material value gradient.
References Cited (Backward Citations)
US5684941A
Cited
US5864639A
Cited
USPTO Annuity & Maintenance Windows
| Annuity Stage | Window Opens | Payment Deadline | Surcharge Period Until | Estimated Fee | Status |
|---|---|---|---|---|---|
| 3.5 Years (Year 4) | 2003-07-25 | 2004-01-24 | 2004-07-25 | $2000.00 | Window Closed / Lapsed |
| 7.5 Years (Year 8) | 2007-07-25 | 2008-01-24 | 2008-07-25 | $3760.00 | Window Closed / Lapsed |
| 11.5 Years (Year 12) | 2011-07-25 | 2012-01-24 | 2012-07-25 | $7700.00 | Window Closed / Lapsed |