Claims
- 1. A graphics system for rendering an image on a display device, the graphics system comprising:
a buffer memory; a first unit configured to (a) receive three vertices corresponding to a triangle, (b) compute edge displacements for each edge of the triangle based on the three vertices, (c) determine a first ordering code and a second ordering code corresponding respectively to a first ordering and a second ordering of the vertices and edge displacements in response to sign bits of the edge displacements, (d) store the vertices, edge displacements, first ordering code and second ordering code in the buffer memory; and a second unit configured to access and operate on said vertices and edge displacements from the buffer memory to determine axial ordinate rate values for the triangle, wherein said second unit accesses said vertices and edge displacements from the buffer memory according to the first and second orderings using the first and second ordering codes respectively; wherein said axial ordinate rate values are usable to determine a portion of a displayable image.
- 2. The graphics system of claim 1 further comprising:
a sample fill unit configured to receive the axial ordinate rate values from the second unit, and to generate samples for the triangle using the axial ordinate rate values; a frame buffer configured to store the samples; a pixel computation unit configured to read and filter said samples from the frame buffer to generate a pixel value, wherein the pixel value defines said portion of the displayable image.
- 3. The graphics system of claim 2, wherein the first unit, the second unit and the sample fill unit are configured within a common integrated circuit chip.
- 4. The graphics system of claim 3, wherein the filtering unit is also configured within the common integrated circuit chip.
- 5. The graphics system of claim 1, wherein said edge displacements include a horizontal edge displacement of a horizontal coordinate and a vertical edge displacement of a vertical coordinate for each edge, wherein, for each edge, the first unit is further configured to:
identify a major axis displacement for each edge as the larger of the horizontal edge displacement or the vertical edge displacement of the edge; determine a controlling edge among the three edges of the triangle as the edge having a largest of the major axis displacement; wherein the first ordering is an ordering of the vertices with respect to the horizontal coordinate and the second ordering is an ordering of the vertices with respect to the vertical coordinate if the horizontal edge displacement of the controlling edge is larger than the vertical edge displacement of the controlling edge.
- 6. The graphics system of claim 1, wherein (c) comprises determining the first ordering code in response to said signs of the horizontal edge displacements if the horizontal edge displacement of the controlling edge is larger than the vertical edge displacement of the controlling edge.
- 7. The graphics system of claim 1, wherein (c) comprises determining the second ordering code in response to signs of the vertical edge displacements if the horizontal edge displacement of the controlling edge is larger than the vertical edge displacement of the controlling edge.
- 8. The graphics system of claim 1, wherein (c) comprises determining the first and second ordering code by accessing a lookup table using the signs of the edge displacements.
- 9. The graphics system of claim 1, wherein the second unit comprises a controller unit, a multiplexor and an arithmetic unit, wherein the multiplexor is configured to receive said vertices and edge displacements from the buffer memory and to provide one or more of said vertices and edge displacements according to the first and second ordering to the arithmetic unit in one or more computational cycles in response to control signals asserted by the control unit.
- 10. The graphics system of claim 9, wherein the control unit is configured to read the first and second ordering codes from the buffer memory and to assert said control signals in response to said first and second ordering codes.
- 11. A method for rendering an image on a display device, the method comprising:
(a) receiving three vertices corresponding to a triangle; (b) computing edge displacements for each edge of the triangle based on the three vertices; (c) storing the vertices and edge displacements in a buffer memory; (d) determining a first ordering code and a second ordering code corresponding respectively to a first ordering and a second ordering of the vertices and edge displacements in response to sign bits of the edge displacements; (e) accessing said vertices and edge displacements according to the first ordering and second ordering from the buffer memory using respectively the first ordering code and second ordering code; (f) performing arithmetic operations on said vertices and edge displacements according to the first ordering and second ordering to generate samples for the triangle; and (g) filtering the samples to generate a pixel value, wherein the pixel value is usable to define a display image.
- 12. The method of claim 11 wherein (b) comprises:
computing a horizontal edge displacement of a horizontal coordinate and a vertical edge displacement of a vertical coordinate for each edge; identifying a major axis displacement for each edge as the larger of the horizontal edge displacement or the vertical edge displacement of the edge; determining a controlling edge among the three edges of the triangle as the edge having a largest of the major axis displacements; wherein the first ordering is an ordering of the vertices with respect to the horizontal coordinate and the second ordering is an ordering of the vertices with respect to the vertical coordinate if the horizontal edge displacement of the controlling edge is larger than the vertical edge displacement of the controlling edge.
- 13. The method of claim 12, wherein the first ordering is an ordering of the vertices with respect to the vertical coordinate and the second ordering is an ordering of the vertices with respect to the horizontal coordinate if the horizontal edge displacement of the controlling edge is smaller than the vertical edge displacement of the controlling edge.
- 14. The method of claim 11 wherein (d) comprises determining the first ordering code in response to said signs of the horizontal edge displacements if the horizontal edge displacement of the controlling edge is larger than the vertical edge displacement of the controlling edge.
- 15. The method of claim 11, wherein (d) comprises determining the second ordering code in response to signs of the vertical edge displacements if the horizontal edge displacement of the controlling edge is larger than the vertical edge displacement of the controlling edge.
- 16. The method of claim 11, wherein (d) comprises accessing a lookup table using the sign bits of the edge displacements.
- 17. The method of claim 11 wherein (e) comprises controlling a multiplexor through successive computational cycles to transmit selected subsets of said vertices and edge displacements according to the first ordering and second ordering from the buffer memory to an arithmetic unit in response to the first ordering code and second ordering code respectively.
- 18. The method of claim 11 wherein (f) comprises:
computing a first axial rate of change of an image attribute in response to a first subset of said vertices and edges accessed from the buffer memory according to the first ordering using the first ordering code; computing a second axial rate of change of the image attribute in response to a second subset of said vertices and edges accessed from the buffer memory according to the second ordering using the second ordering code; determining a set of sample positions interior to the triangle; assigning values for the first image attribute to the interior sample positions using the first and second axial rates; wherein said samples for the triangle comprise said values of the first image attribute.
- 19. The method of claim 18 wherein said image attributes is selected from the group consisting of red, green, blue, alphas and z.
- 20. The method of claim 11 wherein (g) comprises performing a discrete convolution on the samples according to a convolution filter to generate the pixel value.
CROSS-REFERENCE TO RELATED APPLICATIONS
[0001] This application claims benefit of U.S. Provisional Application Ser. No. 60/227,716 filed on Aug. 24, 2000 titled “Interpolating Sample Values from Known Triangle Vertex Values”.
Provisional Applications (1)
|
Number |
Date |
Country |
|
60227716 |
Aug 2000 |
US |