Geometry EngineThe Geometry Engine contains four identical floating point processor datapaths. Each

module, constructed around a Texas Instruments 74ACT8867 chip, is capable of 32

million floating point operations per second (MFLOPS), giving a peak aggregate rate

of 128 MFLOPS. The Geometry Engine processes a stream of high-level graphics

commands mixed with single-precision floating point data. Each GE module includes

local memory for temporary storage of data during processing. The four modules act

together as a SIMD machine under control of a centralized microsequencer, operating

on Up to four vertices simultaneously. The Geometry Engine is designed to have a

very short latency time for maximum throughput efficiency.The first task is to perform matrix operations on incoming vertices. The GE's use a 4x4

matrix stack to rotate, translate, and scale 2D and 3D homogeneous coordinates. A 3x3

normal matrix stack is also used to transform surface normals.The next task is to light the vertices. The GE maintains the position, direction, and

intensity specifications for lighting calculations. It supports up to eight independent

point-source lights or spotlights; material specifications including ambient, diffuse,

and specular reflectance parameters; and lighting model information. The color

applied to each transformed vertex is a function of the vertex position, the surface

normal direction, the lighting model, the lights, and the characteristics of the surface.

The result of the lighting calculation is either a set of four eight-bit red, green, blue,

and alpha values (in RGBA niode) or a single 12-bit color index (in color index mode).The third task is to clip coordinates to a 6-plane bounding box. (The ability to clip

against additional arbitrary planes is available as well). A fast accept/reject clip-

checking algorithm eliminates the need for complex clipping calculations in most

cases.The final steps of the vertex computation are to perform depth-cued color

calculations, to clip colors to the required eight-bit range, and to decompose polygons

with five or more vertices into triangular and quadrilateral segments. Data leaving the

Geometry Subsystem is in the form of 2D screen space vertices (with retained Z values

for hidden surface removal).

3.1.5 Scan Conversion Subsystem

Screen coordinates sent from the Geometry Engine to the Scan Conversion Subsystem

specify points and the vertices of lines and polygons. The Scan Conversion Subsystem

performs the calculations required to reduce vertex data to individual pixels. Each

pixel is assigned an X, Y screen position, plus a number of parameters per pixel,

including Z, red, green, blue, alpha, and the texture parameters S and T. These

parameters are always linearly interpolated between vertices and between the edges

of polygons.The task of scan-converting polygons is partitioned into four separate processors

within the Scan Conversion Subsvstem: the Vertex Reorganizer, the Poly Engine, the

Area Engine, and the Span Processor.