![]() |
|
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.