Next: 13.1.2 Geometric Drawing and
Up: 13.1 Introduction
Previous: 13.1 Introduction
The pixel transfer pipeline is the part of OpenGL most typically
thought of in image processing applications. The pipeline is a
configurable series of operations which are applied to each pixel
during any command that moves pixels between the framebuffer, host
memory, and texture memory, including:
- glDrawPixels()
- glReadPixels()
- glTexImage*D()
- glTexSubImage*D()
- glGetTexImage*D()
- glCopyPixels()
- glCopyTexImage*D()
- glCopyTexSubImage*D()
These operations move image data which falls into one of the following
categories:
- Color index values
- Color values (RGBA, luminance, luminance/alpha, red, green, ...)
- Stencil buffer values
- Depth values
The ``pixel transfer pipeline'' processes each of these categories of
data differently. For image processing, operations on color data are
generally the most interesting. Before any operations are applied,
source data in any color format (for example, GL_LUMINANCE) and
type (for example, GL_UNSIGNED_BYTE) is converted into
floating-point RGBA components. All color pixel transfer operations
operate on images of this type and format. After the pixel transfer
operations have been applied, the image is converted to its
destination type and format.
Base OpenGL defines only a few pixel transfer operations, which are
controlled using the glPixelTransfer() command. The operations
are:
- GL_INDEX_SHIFT and GL_INDEX_OFFSET, which are
applied only to color index images.
- Scale and bias values which are applied to each channel of RGBA
images.
- Scale and bias values which are applied to depth values.
- Pixel maps, discussed in detail in Section 13.2.3.
The pixel transfer pipeline is the part of OpenGL that has grown the
most through OpenGL extensions. Some of the more interesting
extensions will be discussed in this section, including the vendors
who support each extension in OpenGL 1.1 as of April 1998. Where
possible, we will mention techniques to achieve equivalent results on
systems that do not support the extension.
Next: 13.1.2 Geometric Drawing and
Up: 13.1 Introduction
Previous: 13.1 Introduction
David Blythe
1999-08-06