The 3-D Graphics Pipeline

 

  • Almost every disscusion of 3-D graphics begins here

  • Seldom are any two versions drawn the same way

  • Seldom are any two versions implemented the same way

  • Primitives are processed in a set series of steps

  • Each step forwards its result on to the next step

 

Nearly all discussions of three-dimensional computer graphics start with the graphics pipeline. However, the notion of "the graphics pipeline" is somewhat of a misnomer. Seldom are any two depictions, or implementations for that matter, of a graphics pipeline identical.
The basic idea is that the processing of information in 3-dimensional computer graphics occurs in a series of steps, where each step generates results for the successive one.
The process starts with models that are usually described by three-dimensional coordinates (x, y, z). The models usually define either solids or the boundaries of object. Each of these modeling styles has a name. In solid modeling the primitives used to describe an object have volume. In boundary representations, or B-reps, the objects are defined in terms of their skins, or two-dimensional surfaces that approximate the interfaces between different material types. These models are usually defined within there own coordinate system, with their own origins and scales of measurement.
The first step in the rendering pipeline is to transform an object from it's own model space to a common coordinate space, called world space, in which all objects, light sources, and the viewer coexist. This step is called the modeling transformation stage.
The next step is an optimization. In the trivial rejection stage of the rendering pipeline we attempt to eliminate any objects that cannot possibly be seen. This removes some of the scene description from further processing by the rest of the pipeline.
Next we illuminate the objects that might possibly be seen giving them colors based on their material properties and the light sources in the scene. There are many different ways to accomplish this illumination depending the shading model and the surface model.
After illumination we perform another change in coordinate system that maps the viewing position to the origin, and the viewing plane to some desired position. This viewing transformation moves objects from world space into eye space.
Next we perform clipping of the scene's objects within a three dimensional viewing volume called a viewing frustum. This step totally eliminates any objects (and pieces of objects) that are not visible in the image.
In the next step we actually project the objects into two-dimensions. The transformations is from eye-space to screen-space.
In the rasterization step we scan-convert the object into pixels. This will often involve interpolating parameters as we go along.

To summarize, almost every step in the rendering pipeline involves a change of coordinate systems. This transformation process is central to understanding three-dimensional computer graphics.