1.6. 渲染管线 Processing Pipeline
For specifying the behavior of OpenGL, the various operations are defined to be applied in a
particular order, so we can also think of OpenGL as a GRAPHICS PROCESSING PIPELINE.
Let's start by looking at a block diagram of how OpenGL was defined up through OpenGL 1.5.
Figure 1.1 is a diagram of the so-called FIXED FUNCTIONALITY of OpenGL. This diagram shows the
fundamentals of how OpenGL has worked since its inception and is a simplified representation
of how OpenGL still works. It shows the main features of the OpenGL pipeline for the purposes
of this overview. Some new features were added to OpenGL in versions 1.1 through 1.5, but
the basic architecture of OpenGL remained unchanged until OpenGL 2.0. We use the term fixed
functionality because every OpenGL implementation is required to have the same functionality
and a result that is consistent with the OpenGL specification for a given set of inputs. Both the
set of operations and the order in which they occur are defined (fixed) by the OpenGL
specification.
Figure 1.1. Overview of OpenGL operation
[View full size image]
It is important to note that OpenGL implementations are not required to match precisely the
order of operations shown in Figure 1.1. Implementations are free to modify the order of
operations as long as the rendering results are consistent with the OpenGL specification. Many
innovative software and hardware architectures have been designed to implement OpenGL, and
most block diagrams of those implementations look nothing like Figure 1.1. However, the
diagram does ground our discussion of the way the rendering process appears to work in
OpenGL, even if the underlying implementation does things a bit differently.