Graphics Reference
In-Depth Information
contents toward the front of the pipeline. The rest of the pipeline, including ras-
terization and the many per-fragment operations at the end of the pipeline, use
hardwired algorithms controlled via a number of configuration parameters.
As explained in Section 1.6, every 3D graphics system includes geome-
try processing that controls the conversion of geometric data (e.g., mesh ver-
tices) successively from the modeling coordinate system (“object coordinates”
in OpenGL nomenclature) to the world coordinate system, continuing on to the
camera coordinate system (depicted in Figure 1.15, known in OpenGL as the “eye
coordinate system” or “eye space”), and ultimately to some physical “device”
coordinate system.
Coordinate-system transformations are performed via matrix arithmetic, as
described in Chapters 7 and 11. Matrices are set up by the application using
an abstraction provided by the immediate-mode API; we describe the OpenGL
fixed-function abstraction below. Internally, the IM layer manipulates the matri-
ces to prepare them for transmission to the GPU. The GPU itself may perform
further manipulations to maximize the speed of computations and it must extend
the pipeline's scope further to produce physical/screen-pixel coordinates. Our dis-
cussion here focuses solely on the IM-level abstraction.
Matrix
transformation
Operation
Coordinate system
Object
coordinates (3D)
World
coordinates (3D)
Model-view
matrix
Eye
coordinates (3D)
Projection
matrix
Clip coordinates
(3D homogeneous)
Normalized device
coordinates
(3D, interval [−1, 1]
on each axis)
Window
coordinates (2D)
Figure 16.4: OpenGL's geometry pipeline: a sequence of coordinate systems through which
each 3D vertex of the original model progresses, via transformations, into its corresponding
2D display-device position.
Search WWH ::




Custom Search