3D graphics rendering system for performing Z value clamping in near-Z range to maximize scene resolution of visually important Z components
First Claim
1. In a 3D graphics rendering system, a method of performing Z buffering, comprising:
- establishing a first clipping plane, znear, at a Z-axis position very near to the Z=0 plane and a second clipping plane, zfar, at a Z-axis position very far from the z=0 plane;
establishing a Z-axis value clamping plane, znear2, at z=znear2=znear*(1<
<
n), wherein “
n”
is a predetermined integer value that sets a position of the znear2 clamping plane relative to the znear plane and effectively provides a predetermined z value resolution for a portion of a rendered scene that lies between the znear2 plane and the zfar plane;
performing conventional Z-buffering for pixels having z values where znear2<
z<
zfar; and
clamping z values to a predetermined value for pixels where znear≦
z≦
znear2, wherein pixel data corresponding to clamped z values is written to a display frame buffer in a first to last rendered order.
1 Assignment
0 Petitions
Accused Products
Abstract
A graphics system including a custom graphics and audio processor produces exciting 2D and 3D graphics and surround sound. The system includes a graphics and audio processor including a 3D graphics pipeline and an audio digital signal processor. The graphics pipeline performs Z-buffering and optionally provides memory efficient full scene anti-aliasing (FSAA). When the anti-aliasing rendering mode is selected, Z value bit compression is performed to more efficiently make use of the available Z buffer memory. A Z-clamping arrangement is used to improve the precision of visually important Z components by clamping Z values to zero of pixels that fall within a predetermined Z-axis range near the Z=0 eye/camera (viewport) plane. This allows a Z-clipping plane to be used very close to the eye/camera plane—to avoid undesirable visual artifacts produced when objects rendered near to the eye/camera plane are clipped—while preserving Z value precision for the remaining depth of the scene. In an example implementation, a Z value compression circuit provided in the graphics pipeline is enhanced to effectuate Z-clamping within the predetermined range of Z values. The enhanced circuitry includes an adder for left-shifting an input Z value one or more bits prior to compression and gates for masking out the most significant non-zero shifted bits to zero.
-
Citations
7 Claims
-
1. In a 3D graphics rendering system, a method of performing Z buffering, comprising:
-
establishing a first clipping plane, znear, at a Z-axis position very near to the Z=0 plane and a second clipping plane, zfar, at a Z-axis position very far from the z=0 plane;
establishing a Z-axis value clamping plane, znear2, at z=znear2=znear*(1<
<
n), wherein “
n”
is a predetermined integer value that sets a position of the znear2 clamping plane relative to the znear plane and effectively provides a predetermined z value resolution for a portion of a rendered scene that lies between the znear2 plane and the zfar plane;
performing conventional Z-buffering for pixels having z values where znear2<
z<
zfar; and
clamping z values to a predetermined value for pixels where znear≦
z≦
znear2, wherein pixel data corresponding to clamped z values is written to a display frame buffer in a first to last rendered order.- View Dependent Claims (2)
-
-
3. In a 3D graphics rendering system including a processor and a separate graphics processing pipeline having transformation and lighting circuitry, the pipeline performing Z buffering, an arrangement included within the graphics pipeline for providing Z value compression and selectable Z value clamping, comprising:
-
a priority encoder and a shifter, wherein said priority encoder provides a shift value to said shifter for performing a binary value compression operation; and
an adder including bit masking circuitry, said adder connected between the priority encoder and the shifter, wherein said adder is used to selectably increase a shift value provided by the priority encoder to said shifter during a Z value compression operation to effectively clamp Z values within a selectable predetermined range. - View Dependent Claims (4, 5)
-
-
6. In a 3D graphics rendering system including a processor and a separate graphics processing pipeline, the pipeline performing full scene anti-aliasing with Z-value compression, a method for selectably setting a predetermined Z value resolution for a portion of a rendered scene, comprising:
shifting a binary Z-value one or more bit positions prior to performing Z value compression, wherein the amount of shifting determines a range of Z values near a Z=0 plane for which Z values are clamped to a predetermined value.
-
7. In a graphics processing system that renders and displays images at least in part in response to polygon vertex attribute data including Z-value binary data stored in an associated memory, a Z value compression processing circuit portion embodied in hardware, comprising:
-
a priority encoder, a shifter, and an adder connected between the priority encoder and the shifter, wherein the adder may be used to selectably increase a value provided by said priority encoder to said shifter for shifting the Z-value binary data an additional predetermined number of bit positions during a compression operation to effectuate a clamping of Z values that are within a predetermined range of Z values to a predetermined value.
-
Specification