OpenGL.GL.SGIS.pixel_texture
OpenGL extension SGIS.pixel_texture
This module customises the behaviour of the
OpenGL.raw.GL.SGIS.pixel_texture to provide a more
Python-friendly API
Overview (from the spec)
The geometry rasterization and pixel pipeline "convert to fragment"
stages each produce fragments. The fragments are processed by
a unified per fragment pipeline that begins with the application
of the texture to the fragment color. Because the pixel pipeline
shares the per fragment processing with the geometry pipeline, the
fragments produced by the pixel pipeline must have the same fields
as the ones produced by the geometry pipeline. When
pixel groups are being converted to fragments, the parts
of the fragment that aren't derived from the pixel groups
are taken from the associated values in the current raster position.
A fragment consists of x and y window coordinates and their
associated color value, depth value, and texture coordinates.
In the 1.1 OpenGL specification, when the pixel group is RGBA
the fragment color is always derived from the pixel group,
and the depth value and texture coordinates always come
from the raster position.
This extension provides a way to specify how the texture coordinates
of the fragments can be derived from RGBA pixel groups. When
this option is enabled, the source of the fragment color value
when the pixel group is RGBA can be specified to come from either
the raster position or the pixel group.
Deriving the fragment texture coordinates from the pixel group
effectively converts a color image into a texture coordinate image.
The multidimensional texture mapping lookup logic also makes this
extension useful for implementing multidimensional color lookups.
Multidimensional color lookups can be used to implement very
accurate color space conversions.
Deriving texture coordinates from the pixel groups in the pixel
pipeline introduces a problem with the lambda parameter in the
texture mapping equations. When texture coordinates are
being taken from the current raster position texture coordinates,
the texture coordinate values don't change from pixel to pixel,
and the equation for calculating lambda always produces zero.
Enabling pixel_texture introduces changes in the texture
coordinates from pixel to pixel which are not necessarily
meaningful for texture lookups. This problem is addressed
by specifying that lambda is always set to zero when pixel_texture
is enabled.
The official definition of this extension is available here:
http://www.opengl.org/registry/specs/SGIS/pixel_texture.txt
Functions
Constants
GL_PIXEL_FRAGMENT_ALPHA_SOURCE_SGIS (33621)
GL_PIXEL_FRAGMENT_RGB_SOURCE_SGIS (33620)
GL_PIXEL_GROUP_COLOR_SGIS (33622)
GL_PIXEL_TEXTURE_SGIS (33619)