Method and apparatus for correcting errors in pixel characteristics when interpolating polygons into a pixel grid
First Claim
1. A method of correcting errors of at least one variable characteristic of a polygon while interpolating the polygon into a pixel grid, wherein the pixel grid includes reference and orthogonal dimensions and corresponding coordinates defining pixel boundaries and wherein the polygon is interpolated with orthogonal span lines of pixels each beginning at an initial pixel along a main slope of the polygon, comprising the steps of:
- calculating an error value for a variable characteristic based on an orthogonal component of the main slope and an orthogonal slope value of the variable characteristic;
incorporating the calculated error value into the variable characteristic of each initial pixel of the orthogonal scan lines in the numerically opposite direction as the characteristic orthogonal slope value of the variable characteristic;
indicating when the main slope crosses a pixel grid boundary while interpolating to a next orthogonal scan line due to an overflow of a fractional portion of the orthogonal component of the main slope; and
adding the orthogonal slope value of the variable characteristic to the variable characteristic of an initial pixel of the orthogonal scan line when fractional overflow is indicated.
5 Assignments
0 Petitions
Accused Products
Abstract
An incremental orthogonal error correction process for 3D graphics for correcting errors or otherwise reducing abrupt changes in the characteristics of adjacent pixels while interpolating a polygon into a pixel grid. Error values are calculated for each desired characteristic to be corrected, where the error values are calculated based on the slope of the main slope and the orthogonal slope of the corresponding characteristic value. Thus, the error values adjust the characteristics of the pixels in the scan line to adjust for the slant of the main slope of the polygon. An interpolator for each corrected characteristic accumulates the error value in the opposite direction as the corresponding orthogonal slope. When the fractional component of the x parameter overflows, the orthogonal slope values are subtracted from the corresponding accumulated error values to thereby reduce the magnitude of the error values. Thus, the error values accumulate until an overflow causes a pixel shift of the scan line, and then the magnitude of the errors is reduced. The resulting values of the characteristics along the surface of the polygon appear smoother and monotonic. Furthermore, intersection lines between polygons drawn in 3D space appear straight rather than jagged.
32 Citations
44 Claims
-
1. A method of correcting errors of at least one variable characteristic of a polygon while interpolating the polygon into a pixel grid, wherein the pixel grid includes reference and orthogonal dimensions and corresponding coordinates defining pixel boundaries and wherein the polygon is interpolated with orthogonal span lines of pixels each beginning at an initial pixel along a main slope of the polygon, comprising the steps of:
-
calculating an error value for a variable characteristic based on an orthogonal component of the main slope and an orthogonal slope value of the variable characteristic; incorporating the calculated error value into the variable characteristic of each initial pixel of the orthogonal scan lines in the numerically opposite direction as the characteristic orthogonal slope value of the variable characteristic; indicating when the main slope crosses a pixel grid boundary while interpolating to a next orthogonal scan line due to an overflow of a fractional portion of the orthogonal component of the main slope; and adding the orthogonal slope value of the variable characteristic to the variable characteristic of an initial pixel of the orthogonal scan line when fractional overflow is indicated. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. A method of correcting errors in pixel characteristics when interpolating a coplanar polygon into a pixel grid having a reference dimension and an orthogonal dimension and corresponding coordinates, the polygon being interpolated with orthogonal scan lines of pixels from a main slope of the polygon, comprising the steps of:
-
receiving an initial characteristic value of a base point at one end of the main slope, a main slope characteristic slope value, a characteristic orthogonal slope value and a characteristic error value; accumulating an orthogonal coordinate beginning with an initial orthogonal coordinate of the base point and adding an orthogonal component of the main slope; accumulating a main slope characteristic value by starting with the initial characteristic value and adding the main slope characteristic slope value for each pixel along the main slope; accumulating an error value by adding characteristic error values for each pixel along the main slope; adding the accumulated error value to the main slope characteristic value for each pixel along the main slope; indicating a fractional overflow when a fractional portion of the orthogonal coordinate overflows to an integer portion; and adding the characteristic orthogonal slope value to reduce the magnitude of the accumulated error value when fractional overflow is indicated. - View Dependent Claims (11, 12, 13, 14, 15, 16, 17)
-
-
18. An apparatus for incrementally correcting errors of at least one variable characteristic of a polygon while interpolating the polygon into a pixel grid, wherein the pixel grid includes reference and orthogonal dimensions and corresponding coordinates and wherein the polygon is interpolated with orthogonal span lines of pixels each beginning at an initial pixel along a main slope of the polygon, comprising:
-
means for calculating an initial orthogonal value, an orthogonal component of the main slope, an initial characteristic value of a characteristic, a characteristic orthogonal slope value of said characteristic and a characteristic error value based on said orthogonal component of the main slope and said characteristic orthogonal slope value; an interpolator receiving said initial orthogonal value and said orthogonal component of the main slope for providing orthogonal coordinates of the initial pixels along the main slope; a comparator circuit coupled to said interpolator for indicating a fractional overflow of an orthogonal coordinate; and an accumulator circuit coupled to said comparator circuit and receiving said characteristic error value and said characteristic orthogonal slope value for incorporating said characteristic error value into characteristic values of the initial pixels along the main slope in a numerically opposite direction as said characteristic orthogonal slope value, said accumulator circuit further adding said characteristic orthogonal slope value to one of said characteristic values when said comparator circuit indicates fractional overflow. - View Dependent Claims (19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29)
-
-
30. An apparatus for interpolating a coplanar polygon into a pixel grid, the pixel grid having reference and orthogonal coordinates for locating each pixel in the pixel grid and further including memory for storing characteristic values for at least one characteristic of the polygon, and wherein the polygon is interpolated with orthogonal rows of pixels from a main side of the polygon, comprising:
-
means for calculating initial and incremental values for the reference and orthogonal coordinates and at least one characteristic of the polygon and for calculating a count value indicative of the number of orthogonal rows of pixels for the polygon, said incremental values including an orthogonal coordinate slope value representing the slope of the main side of the polygon in the orthogonal direction and an orthogonal characteristic slope value representing the change of the characteristic between orthogonally adjacent pixels, said calculating means further for calculating a characteristic error value based on said orthogonal coordinate slope value and said orthogonal characteristic slope value; a reference interpolator for providing a reference coordinate for each of the orthogonal row of pixels based on initial and incremental reference coordinate values; an orthogonal interpolator for providing an orthogonal coordinate for an initial pixel of each orthogonal row of pixels based on said orthogonal coordinate slope value, said orthogonal interpolator including integer and fractional portions; an overflow circuit coupled to said orthogonal interpolator for determining when said fractional portion of said orthogonal interpolator overflows into said integer portion, and for providing an overflow signal indicative thereof; a width interpolator for providing a width value based on initial and incremental orthogonal width values; a characteristic interpolator for providing a characteristic value for each said initial pixel of the orthogonal rows of pixels along the main side of the polygon based on an initial characteristic value and a main side characteristic slope value; and an error interpolator coupled to said characteristic interpolator, said overflow circuit and receiving said characteristic error value for accumulating said characteristic error value and for adding said accumulated error value to said characteristic value of each said initial pixel, and wherein said error interpolator further receives and adds said orthogonal characteristic slope value to reduce the magnitude of said accumulated error value when said overflow signal is provided. - View Dependent Claims (31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44)
-
Specification