Functional Description
D15343-003 131
6.4.3.1 Texture Map Blending
Multiple textures can be blended together in an iterative process and applied to a primitive. The
GMCH allows up to four distinct or shared texture coordinates and texture maps to be specified
onto the same polygon. Also, the GMCH supports a texture coordinate set to access multiple
texture maps. State variables in multiple textures are bound to texture coordinates, texture map or
texture blending.
6.4.3.2 Combining Intrinsic and Specular Color Components
The GMCH allows an independently specified and interpolated specular RGB attribute to be added
to the post-texture blended pixel color. This feature provides a full RGB specular highlight to be
applied to a textured surface, permitting a high quality reflective colored lighting effect not
available in devices which apply texture after the lighting components have been combined. If the
specular-add state variable is disabled, only the resultant colors from the map blending are used. If
this state variable is enabled, the specular RGB color is added to the RGB values from the output of
the map blending.
6.4.3.3 Color Shading Modes
The Raster engine supports the Flat and Gouraud shading modes. These shading modes are
programmed by the appropriate state variables issued through the command stream.
• Flat shading is performed by smoothly interpolating the vertex intrinsic color components
(Red, Green, Blue), Specular (R, G, B), Fog, and Alpha to the pixel, where each vertex color
has the same value. The setup engine substitutes one of the vertex's attribute values for the
other two vertices attribute values thereby creating the correct flat shading terms. This
condition is set up by the appropriate state variables issued prior to rendering the primitive.
• Gouraud shading is performed by smoothly interpolating the vertex intrinsic color components
(Red, Green, Blue). Specular (RGB), Fog, and Alpha to the pixel, where each vertex color has
a different value.
6.4.3.4 Color Dithering
Color Dithering in the GMCH helps to hide color quantization errors for 16-bit color buffers. Color
Dithering takes advantage of the human eye's propensity to average the colors in a small area. Input
color, alpha, and fog components are converted from 8-bit components to 5-bit or 6-bit component
by dithering. Dithering is performed on blended textured pixels. In 32-bit mode, dithering is not
performed.
6.4.3.5 Vertex and Per Pixel Fogging
Fogging is used to create atmospheric effects such as low visibility conditions in flight simulator-
type games. It adds another level of realism to computer-generated scenes. Fog can be used for
depth cueing or hiding distant objects. With fog, distant objects can be rendered with fewer details
(less polygons), thereby improving the rendering speed or frame rate. Fog is simulated by
attenuating the color of an object with the fog color as a function of distance, and the greater the
distance, the higher the density (lower visibility for distant objects). There are two ways to
implement the fogging technique: per-vertex (linear) fogging and per-pixel (non-linear) fogging.
The per-vertex method interpolates the fog value at the vertices of a polygon to determine the fog
factor at each pixel within the polygon. This method provides realistic fogging as long as the
polygons are small. With large polygons (such as a ground plane depicting an airport runway), the
per-vertex technique results in unnatural fogging.