Method and apparatus implementing high resolution rendition of Z-buffered primitives
First Claim
1. A method for rendering three-dimensional graphics data, the method comprising:
- receiving a set of three-dimensional graphics data representing a plurality of primitives, wherein each primitive comprises one or more vertices;
translating said one or more vertices to view clipping coordinates based on a selected viewpoint, wherein said translating includes generating Z-values for the one or more vertices, wherein the Z-values vary from one at a front clipping plane to near zero at a back clipping plane; and
scan converting the primitives into pixels, wherein said pixels are displayable to form an image, wherein said translating is accomplished by applying a formula substantially equivalent to Z=Wf/w, wherein Z is the Z-value being calculated, wherein w is a scaled distance along a z-axis from the selected viewpoint to the vertex being transformed, and wherein Wf is a value of w at the front clipping plane.
2 Assignments
0 Petitions
Accused Products
Abstract
An object'"'"'s Z-buffered primitives are determined using a floating point Z=wF/W, where wF is the value the W coordinate achieves at the front clipping plane F. This representation produces Z-values ranging from 1 to ≈0 as W varies from W=wF to W→∞. Z-values for distances near the back clipping plane advantageously have leading zeros and are more amenable to floating point representation and exhibit less information loss. Primitive vertices are examined and the largest vertex floating point exponent is stored and associated with the entire primitive as that triangle'"'"'s floating point Z exponent. The stored exponent is subtracted from all the vertices'"'"' exponents and the results converted to fixed point, which format advantageously typically has few or no leading zeroes. After normal fixed point set-up and scan conversion operations occur, each pixel'"'"'s final Z fixed-point value is converted back to floating point, and the relevant stored exponent for the polygon is added back in before distance comparisons are made.
64 Citations
23 Claims
-
1. A method for rendering three-dimensional graphics data, the method comprising:
-
receiving a set of three-dimensional graphics data representing a plurality of primitives, wherein each primitive comprises one or more vertices; translating said one or more vertices to view clipping coordinates based on a selected viewpoint, wherein said translating includes generating Z-values for the one or more vertices, wherein the Z-values vary from one at a front clipping plane to near zero at a back clipping plane; and scan converting the primitives into pixels, wherein said pixels are displayable to form an image, wherein said translating is accomplished by applying a formula substantially equivalent to Z=Wf/w, wherein Z is the Z-value being calculated, wherein w is a scaled distance along a z-axis from the selected viewpoint to the vertex being transformed, and wherein Wf is a value of w at the front clipping plane. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A graphics system configured to render three-dimensional graphics data, the graphics system comprising:
-
a graphics accelerator configured to receive the three-dimensional graphics data and generate a corresponding plurality of pixels that are displayable to form an image, wherein the three-dimensional graphics data represents a plurality of primitives, wherein each primitive comprises one or more vertices, and wherein the graphics accelerator is configured to translate the vertices to view clipping coordinates based on a selected viewpoint by generating Z-values for the one or more vertices, wherein the Z-values vary from one at a front clipping plane to near zero at a back clipping plane; a frame buffer configured to receive and store pixels from the graphics processor; and a video control unit configured to read the contents of the frame buffer and output them to a display device, wherein said graphics accelerator is configured to translate the vertices by applying a formula substantially equivalent to Z=Wf/w, wherein Z is the Z-value being calculated, wherein w is a scaled distance along a z-axis from the selected viewpoint to the vertex being transformed, and wherein Wf is a value of w at the front clipping plane. - View Dependent Claims (10, 11, 12, 13)
-
-
14. A method for rendering three-dimensional graphics data, the method comprising:
-
receiving a set of three-dimensional graphics data representing a plurality of primitives, wherein each primitive comprises two or more vertices; translating said two or more vertices to view clipping coordinates based on a selected viewpoint, wherein said translating includes generating floating point Z-values for each vertex; comparing the Z-values of said two or more vertices to determine which of the Z-values has the largest exponent value; subtracting the largest exponent value from each of the Z-values; converting the resulting Z-values to fixed-point format; performing scan line conversion on the fixed-point Z-values to generate pixels having fixed-point Z-values, wherein the pixels are displayable to form an image; converting the fixed point pixel Z-values to floating point format; adding the corresponding largest exponent to the floating point pixel Z-values; and storing the pixels and the floating point pixel Z-values in a frame buffer, wherein said translating is accomplished by applying a formula substantially equivalent to Z=Wf/w, wherein Z is the Z-value being calculated, wherein w is a scaled distance along a z-axis from the selected viewpoint to the vertex being transformed, and wherein Wf is a value of w at the front clipping plane. - View Dependent Claims (15, 16, 17)
-
-
18. A graphics accelerator configured to render three-dimensional graphics data, the graphics system comprising:
-
a means for receiving the three-dimensional graphics data; a graphics processor configured to generate a plurality of pixels corresponding to the three-dimensional graphics data, wherein the three-dimensional graphics data represents a plurality of primitives, wherein each primitive comprises one or more vertices, and wherein the graphics processor is configured to translate the vertices to view clipping coordinates based on a selected viewpoint by generating Z-values for the one or more vertices, wherein the Z-values vary from one at a front clipping plane to near zero at a back clipping plane, wherein said graphics accelerator is configured to translate the vertices by applying a formula substantially equivalent to Z=Wf/w, wherein Z is the Z-value being calculated, wherein w is a scaled distance along a z-axis from the selected viewpoint to the vertex being transformed, and wherein Wf is a value of w at the front clipping plane; and a means for outputting the pixels to a frame buffer for storage and eventual display as an image. - View Dependent Claims (19, 20, 21, 22)
-
-
23. A method for rendering graphics data in a graphics system, the method comprising:
-
receiving three-dimensional graphics data representing objects to be displayed by the computer graphics system, wherein the graphics data comprises one or more graphics primitives, wherein each graphics primitives comprises one or more vertices, wherein each vertex includes a floating point Z-value; comparing the exponents of the floating point Z-values for a particular geometric primitive; storing the largest exponent; subtracting the largest exponent from the Z-values for the particular geometric primitive; translating the Z-values for the particular geometric primitive into fixed-point format using the formula Z=Wf/w, wherein Wf is the value of a w-coordinate at a front clipping plane F; performing set-up calculations on the particular geometric primitive using the fixed-point format Z-values to generate fixed-point results; converting the fixed-point results of the set-up calculations into converted floating point Z-values; performing Z comparisons using the converted floating point Z-values; rendering the geometric primitive into a frame buffer in response to a winning Z comparison; and displaying the contents of the frame buffer on a display device to form an image.
-
Specification