Computer graphics processing and selective visual display system – Computer graphics processing – Graph generating
Utility Patent
1997-06-30
2001-01-02
Powell, Mark R. (Department: 2779)
Computer graphics processing and selective visual display system
Computer graphics processing
Graph generating
Utility Patent
active
06169554
ABSTRACT:
FIELD OF THE INVENTION
The present invention relates to a 3-D graphics accelerator, and more particularly to a floating point processor for a 3-D graphics accelerator with improved clip testing capabilities.
DESCRIPTION OF THE RELATED ART
A three dimensional (3-D) graphics accelerator is a specialized graphics rendering subsystem for a computer system which is designed to off-load the 3-D rendering functions from the host processor, thus providing improved system performance. In a system with a 3-D graphics accelerator, an application program executing on the host processor of the computer system generates three-dimensional geometry data that defines three-dimensional graphics elements for display on a video output device. The application program causes the host processor to transfer the geometry data to the graphics accelerator. The graphics accelerator receives the geometry data and renders the corresponding graphics elements on the display device.
Applications which display three-dimensional graphics require a tremendous amount of processing capabilities. For example, for a computer system to generate smooth 3-D motion video, the computer system is required to maintain a frame rate or update rate of between 20 to 30 frames per second. This requires a 3-D graphics accelerator capable of processing over a million graphics primitives per second.
In general, 3-D graphics accelerators have had three major bottlenecks which limit performance. A first bottleneck is the transfer of geometric primitive data from main memory to the graphics accelerator over the system bus. A second bottleneck is the vertex processing requirements (such as transformation, lighting, and set-up) which are performed on the geometric primitives by the graphics accelerator prior to rendering. A third bottleneck is the speed at which pixels from processed primitives can be filled into the frame buffer.
Vertex processing operations are typically performed by dedicated hardware in the graphics accelerator. This hardware is commonly pipelined, such that each stage of the pipeline effectuates a distinct operation on the vertices of the received geometric primitive. The operations may be performed in either fixed or floating-point math.
In standard graphics processing, each geometric primitive is tested to determine if it is entirely within a defined coordinate region, or viewport. If a portion of the primitive is outside the viewport, the primitive is completely or partially “clipped”. Clipping involves rejecting that portion of an object which lies outside a clipping boundary defining the viewport. A clipped portion of an object is typically discarded from the graphics pipeline and therefore not rendered.
Referring to
FIG. 1
, a video display screen
8
is shown, including a viewport
10
defined by a regular clipping boundary
12
. Triangles
20
,
21
,
22
,
24
,
28
, and
30
represent geometric primitives which are inputs to a 3-D graphics accelerator configured to render objects on video display screen
8
. Triangles
22
and
24
share a common edge
26
.
In standard clipping operation, triangle
20
, which lies wholly within viewport
10
, is not clipped. On the other hand, triangle
30
, which is completely outside regular clipping boundary
12
, is completely clipped, and therefore rejected from further processing. Triangles
21
,
22
,
24
, and
28
, however, are only partially outside viewport
10
. When these primitives are rendered on video display screen
8
in the final stages of the graphics pipeline, only the portion within viewport
10
is displayed.
Clipping is a time-consuming operation. A large number of calculations are required to clip the various properties of a primitive (including coordinate and color data) to the edge of a viewing region such as regular clipping boundary
12
. To increase performance, it is therefore desirable to reduce the number of primitives for which clipping is performed.
For this reason, the concept of guard band clipping was developed. In guard band clipping, a second clipping boundary, encompassing the regular clipping boundary, is defined for the viewport. Primitives which lie partially outside the regular clipping boundary but inside the guard band clipping boundary are not clipped. The pixels within these primitive that are outside the viewport but inside the guard band clipping boundary are instead rejected in a later stage of the graphics pipeline. Because this deferred rejection is typically performed faster than the standard clipping operation, performance of the graphics accelerator is advantageously increased by performing guard band clipping.
In
FIG. 1
, the guard band clipping region is defined by guard band clipping boundary
14
. In contrast to regular clipping, triangles
21
,
22
, and
24
are not clipped when guard band clipping is implemented, since they lie entirely within boundary
14
. Triangle
28
is partially clipped (to boundary
12
) since a portion of the primitive lies outside boundary
14
.
If the guard band clipping boundary is defined to be too much larger than the regular clipping boundary, however, the deferred rejection of pixels in the guard band region may become more time-consuming than the normal clipping procedure. Additionally, problematic numeric overflows may occur in vertex processing operations subsequent to the clip test for primitive vertices in a large guard band region. The guard band region is therefore generally designed to be a small percentage larger than the viewport.
In prior art designs, guard band clip testing generally results in fewer objects being clipped. This advantage comes at the expense of having to perform an extra comparison to determine whether a vertex is outside the guard band clipping boundaries (in addition to the comparison for the regular clipping boundary). The guard band comparison requires more processing time, and hence limits system performance. Additionally, guard band clipping may not be performed consistently in prior art designs, resulting in a shared edge (such as edge
26
in
FIG. 1
) being clipped differently for different triangles.
A graphics accelerator with improved clip testing capabilities is therefore desired.
SUMMARY OF THE INVENTION
The present invention comprises a clip testing unit within a graphics accelerator for comparing a value of a given coordinate of a vertex position of a polygon relative to a plurality of clipping planes. The plurality of clipping planes includes both regular clipping planes and guard band clipping planes. The clip testing unit includes a coordinate input register for receiving the value of the given coordinate of the vertex position. The vertex position is represented in homogenous coordinates, and thus includes a corresponding W value. The clip testing unit further includes a W input register for receiving and storing the W value, as well as a guard band W generation unit coupled to the W input register for generating a guard band W value in response to the W value. Still further, the clip testing unit includes a guard band W register coupled to the guard band W generation unit which receives and stores the guard band W value.
The clip testing unit also includes a clip compare unit coupled to the W input register, the guard band W register and the coordinate input register. The clip compare unit receives and compares the W value and the value of the given coordinate, generating one or more first clip signals in response thereto. The one or more first clip signals indicate whether the value of the given coordinate is outside of a regular clipping space defined by the regular clipping planes. Furthermore, the clip compare unit receives and compares the guard band W value and the value of the given coordinate, generating one or more second clip signals in response thereto. The one or more second clip signals indicate whether the value of the given coordinate is outside of a guard band clipping space defined by the guard band clipping planes.
Because the first and second clip comparisons are performed substantially concurrently by the
Conley & Rose & Tayon P.C.
Hood Jeffrey C.
Nguyen Thu
Powell Mark R.
Sun Microsystems Inc.
LandOfFree
Clip testing unit for a three-dimensional graphics accelerator does not yet have a rating. At this time, there are no reviews or comments for this patent.
If you have personal experience with Clip testing unit for a three-dimensional graphics accelerator, we encourage you to share that experience with our LandOfFree.com community. Your opinion is very important and Clip testing unit for a three-dimensional graphics accelerator will most certainly appreciate the feedback.
Profile ID: LFUS-PAI-O-2447205