Functional Description
D15343-003 127
6.4.2 3D Engine
The 3D engine of the GMCH has been designed with a deeply pipelined architecture, where
performance is maximized by allowing each stage of the pipeline to simultaneously operate on
different primitives or portions of the same primitive. The GMCH supports the following:
• Perspective-corrected Texture mapping
• Multitexturing
• Embossed and Dot-Product Bump mapping
• Cubic Environment Maps
• Bilinear, Trilinear, and Anisotropic MIP map filtering
• Gouraud shading and Flat shading
• Alpha-blending
• Per-Vertex and per- pixel fog
• Z/W buffering
These features are independently controlled via a set of 3D instructions. The 3D pipeline
subsystem performs the 3D rendering acceleration. The main blocks of the pipeline are the Setup
Engine, Scan Converter, Texture Pipeline, and Raster Pipeline. A typical programming sequence
would be to send instructions to set the state of the pipeline followed by rendering instructions
containing 3D primitive vertex data.
6.4.2.1 Setup Engine
The GMCH 3D setup engine takes the input data associated with each vertex of a 3D primitive and
computes the various parameters required for scan conversion. In formatting this data, the GMCH
maintains sub-pixel accuracy. The per-vertex data is converted into gradients that can be used to
interpolate the data at any pixel within a polygon (colors, alpha, Z or W depth, fog, and texture
coordinates). The pixels covered by a polygon are identified and per-pixel texture addresses are
calculated.
6.4.2.2 Viewport Transform and Perspective Divide
A 3D-geometry pipeline typically involves transformation of vertices from model space to clipping
space followed by clip test and clipping. Lighting can be performed during the transformation or at
any other point in the pipeline. After clipping, the next stage involves perspective divide followed
by transformation to the viewport or screen space. The GMCH can support viewport transform and
perspective divide portion of the 3D geometry pipeline in hardware.
6.4.2.3 3D Primitives and Data Formats Support
The 3D primitives rendered by the GMCH are points, lines, discrete triangles, line strips, triangle
strips, triangle fans, and polygons. In addition to this, the GMCH supports DirectX's* Flexible
Vertex Format* (FVF), which enables the application to specify a variable length parameter list,
obviating the need for sending unused information to the hardware. Strips, Fans, and Indexed
Vertices as well as FVF improves delivered vertex rate to the setup engine significantly.
6.4.2.4 Pixel Accurate Fast Scissoring and Clipping Operation
The GMCH supports clipping to a scissoring rectangle within the drawing window. The GMCH
clipping and scissoring in hardware reduce the need for software to process polygons, and thus
improves performance. During the setup stage, the GMCH clips polygons to the drawing window.