OpenGL extension MESAX.texture_stack
This module customises the behaviour of the
OpenGL.raw.GL.MESAX.texture_stack to provide a more
Overview (from the spec)
There are a number of circumstances where an application may wish to
blend two textures out of a larger set of textures. Moreover, in some
cases the selected textures may vary on a per-fragment basis within
a polygon. Several examples include:
1. High dynamic range textures. The application stores several
different "exposures" of an image as different textures. On a
per-fragment basis, the application selects which exposures are
2. A terrain engine where the altitude of a point determines the
texture applied to it. If the transition is from beach sand to
grass to rocks to snow, the application will store each texture
in a different texture map, and dynamically select which two
textures to blend at run-time.
3. Storing short video clips in textures. Each depth slice is a
single frame of video.
Several solutions to this problem have been proposed, but they either
involve using a separate texture unit for each texture map or using 3D
textures without mipmaps. Both of these options have major drawbacks.
This extension provides a third alternative that eliminates the major
drawbacks of both previous methods. A new texture target,
TEXTURE_2D_STACK, is added that functions identically to TEXTURE_3D in
all aspects except the sizes of the non-base level images. In
traditional 3D texturing, the size of the N+1 LOD is half the size
of the N LOD in all three dimensions. For the TEXTURE_2D_STACK target,
the height and width of the N+1 LOD is halved, but the depth is the
same for all levels of detail. The texture then becomes a "stack" of
2D textures. The per-fragment texel is selected by the R texture
The official definition of this extension is available here:
|EXTENSION_NAME = 'GL_MESAX_texture_stack'|
GL_PROXY_TEXTURE_1D_STACK_MESAX = GL_PROXY_TEXTURE_1D_STACK_MESAX
GL_PROXY_TEXTURE_2D_STACK_MESAX = GL_PROXY_TEXTURE_2D_STACK_MESAX
GL_TEXTURE_1D_STACK_BINDING_MESAX = GL_TEXTURE_1D_STACK_BINDING_MESAX
GL_TEXTURE_1D_STACK_MESAX = GL_TEXTURE_1D_STACK_MESAX
GL_TEXTURE_2D_STACK_BINDING_MESAX = GL_TEXTURE_2D_STACK_BINDING_MESAX
GL_TEXTURE_2D_STACK_MESAX = GL_TEXTURE_2D_STACK_MESAX
__file__ = '/home/mcfletch/pylive/OpenGL/GL/MESAX/texture_stack.pyc'
__name__ = 'OpenGL.GL.MESAX.texture_stack'
__package__ = 'OpenGL.GL.MESAX'