OpenGL.raw.GL.NV.register_combiners | index /build/buildd/pyopengl-3.0.0~b6/OpenGL/raw/GL/NV/register_combiners.py |
OpenGL extension NV.register_combiners
Overview (from the spec)
NVIDIA's next-generation graphics processor and its derivative
designs support an extremely configurable mechanism know as "register
combiners" for computing fragment colors.
The register combiner mechanism is a significant redesign of NVIDIA's
original TNT combiner mechanism as introduced by NVIDIA's RIVA
TNT graphics processor. Familiarity with the TNT combiners will
help the reader appreciate the greatly enhanced register combiners
functionality (see the NV_texture_env_combine4 OpenGL extension
specification for this background). The register combiner mechanism
has the following enhanced functionality:
The numeric range of combiner computations is from [-1,1]
(instead of TNT's [0,1] numeric range),
The set of available combiner inputs is expanded to include the
secondary color, fog color, fog factor, and a second combiner
constant color (TNT's available combiner inputs consist of
only zero, a single combiner constant color, the primary color,
texture 0, texture 1, and, in the case of combiner 1, the result
of combiner 0).
Each combiner variable input can be independently scaled and
biased into several possible numeric ranges (TNT can only
complement combiner inputs).
Each combiner stage computes three distinct outputs (instead
TNT's single combiner output).
The output operations include support for computing dot products
(TNT has no support for computing dot products).
After each output operation, there is a configurable scale and bias
applied (TNT's combiner operations builds in a scale and/or bias
into some of its combiner operations).
Each input variable for each combiner stage is fetched from any
entry in a combiner register set. Moreover, the outputs of each
combiner stage are written into the register set of the subsequent
combiner stage (TNT could only use the result from combiner 0 as
a possible input to combiner 1; TNT lacks the notion of an
input/output register set).
The register combiner mechanism supports at least two general
combiner stages and then a special final combiner stage appropriate
for applying a color sum and fog computation (TNT provides two
simpler combiner stages, and TNT's color sum and fog stages are
hard-wired and not subsumed by the combiner mechanism as in register
combiners).
The register combiners fit into the OpenGL pipeline as a rasterization
processing stage operating in parallel to the traditional OpenGL
texture environment, color sum, AND fog application. Enabling this
extension bypasses OpenGL's existing texture environment, color
sum, and fog application processing and instead use the register
combiners. The combiner and texture environment state is orthogonal
so modifying combiner state does not change the traditional OpenGL
texture environment state and the texture environment state is
ignored when combiners are enabled.
OpenGL application developers can use the register combiner mechanism
for very sophisticated shading techniques. For example, an
approximation of Blinn's bump mapping technique can be achieved with
the combiner mechanism. Additionally, multi-pass shading models
that require several passes with unextended OpenGL 1.2 functionality
can be implemented in several fewer passes with register combiners.
The official definition of this extension is available here:
http://oss.sgi.com/projects/ogl-sample/registry/NV/register_combiners.txt
Automatically generated by the get_gl_extensions script, do not edit!
Modules | ||||||
|
Functions | ||
|
Data | ||
EXTENSION_NAME = 'GL_NV_register_combiners' GL_BIAS_BY_NEGATIVE_ONE_HALF_NV = GL_BIAS_BY_NEGATIVE_ONE_HALF_NV GL_COLOR_SUM_CLAMP_NV = GL_COLOR_SUM_CLAMP_NV GL_COMBINER0_NV = GL_COMBINER0_NV GL_COMBINER1_NV = GL_COMBINER1_NV GL_COMBINER2_NV = GL_COMBINER2_NV GL_COMBINER3_NV = GL_COMBINER3_NV GL_COMBINER4_NV = GL_COMBINER4_NV GL_COMBINER5_NV = GL_COMBINER5_NV GL_COMBINER6_NV = GL_COMBINER6_NV GL_COMBINER7_NV = GL_COMBINER7_NV GL_COMBINER_AB_DOT_PRODUCT_NV = GL_COMBINER_AB_DOT_PRODUCT_NV GL_COMBINER_AB_OUTPUT_NV = GL_COMBINER_AB_OUTPUT_NV GL_COMBINER_BIAS_NV = GL_COMBINER_BIAS_NV GL_COMBINER_CD_DOT_PRODUCT_NV = GL_COMBINER_CD_DOT_PRODUCT_NV GL_COMBINER_CD_OUTPUT_NV = GL_COMBINER_CD_OUTPUT_NV GL_COMBINER_COMPONENT_USAGE_NV = GL_COMBINER_COMPONENT_USAGE_NV GL_COMBINER_INPUT_NV = GL_COMBINER_INPUT_NV GL_COMBINER_MAPPING_NV = GL_COMBINER_MAPPING_NV GL_COMBINER_MUX_SUM_NV = GL_COMBINER_MUX_SUM_NV GL_COMBINER_SCALE_NV = GL_COMBINER_SCALE_NV GL_COMBINER_SUM_OUTPUT_NV = GL_COMBINER_SUM_OUTPUT_NV GL_CONSTANT_COLOR0_NV = GL_CONSTANT_COLOR0_NV GL_CONSTANT_COLOR1_NV = GL_CONSTANT_COLOR1_NV GL_DISCARD_NV = GL_DISCARD_NV GL_EXPAND_NEGATE_NV = GL_EXPAND_NEGATE_NV GL_EXPAND_NORMAL_NV = GL_EXPAND_NORMAL_NV GL_E_TIMES_F_NV = GL_E_TIMES_F_NV GL_HALF_BIAS_NEGATE_NV = GL_HALF_BIAS_NEGATE_NV GL_HALF_BIAS_NORMAL_NV = GL_HALF_BIAS_NORMAL_NV GL_MAX_GENERAL_COMBINERS_NV = GL_MAX_GENERAL_COMBINERS_NV GL_NUM_GENERAL_COMBINERS_NV = GL_NUM_GENERAL_COMBINERS_NV GL_PRIMARY_COLOR_NV = GL_PRIMARY_COLOR_NV GL_REGISTER_COMBINERS_NV = GL_REGISTER_COMBINERS_NV GL_SCALE_BY_FOUR_NV = GL_SCALE_BY_FOUR_NV GL_SCALE_BY_ONE_HALF_NV = GL_SCALE_BY_ONE_HALF_NV GL_SCALE_BY_TWO_NV = GL_SCALE_BY_TWO_NV GL_SECONDARY_COLOR_NV = GL_SECONDARY_COLOR_NV GL_SIGNED_IDENTITY_NV = GL_SIGNED_IDENTITY_NV GL_SIGNED_NEGATE_NV = GL_SIGNED_NEGATE_NV GL_SPARE0_NV = GL_SPARE0_NV GL_SPARE0_PLUS_SECONDARY_COLOR_NV = GL_SPARE0_PLUS_SECONDARY_COLOR_NV GL_SPARE1_NV = GL_SPARE1_NV GL_UNSIGNED_IDENTITY_NV = GL_UNSIGNED_IDENTITY_NV GL_UNSIGNED_INVERT_NV = GL_UNSIGNED_INVERT_NV GL_VARIABLE_A_NV = GL_VARIABLE_A_NV GL_VARIABLE_B_NV = GL_VARIABLE_B_NV GL_VARIABLE_C_NV = GL_VARIABLE_C_NV GL_VARIABLE_D_NV = GL_VARIABLE_D_NV GL_VARIABLE_E_NV = GL_VARIABLE_E_NV GL_VARIABLE_F_NV = GL_VARIABLE_F_NV GL_VARIABLE_G_NV = GL_VARIABLE_G_NV __file__ = '/build/buildd/pyopengl-3.0.0~b6/OpenGL/raw/GL/NV/register_combiners.py' __name__ = 'OpenGL.raw.GL.NV.register_combiners' glCombinerInputNV = <OpenGL.platform.baseplatform.glCombinerInputNV object at 0x8678aac> glCombinerOutputNV = <OpenGL.platform.baseplatform.glCombinerOutputNV object at 0x8678aec> glCombinerParameterfNV = <OpenGL.platform.baseplatform.glCombinerParameterfNV object at 0x8678fac> glCombinerParameterfvNV = <OpenGL.platform.baseplatform.glCombinerParameterfvNV object at 0x8678ecc> glCombinerParameteriNV = <OpenGL.platform.baseplatform.glCombinerParameteriNV object at 0x8678a6c> glCombinerParameterivNV = <OpenGL.platform.baseplatform.glCombinerParameterivNV object at 0x867894c> glFinalCombinerInputNV = <OpenGL.platform.baseplatform.glFinalCombinerInputNV object at 0x8678b2c> glGetCombinerInputParameterfvNV = <OpenGL.platform.baseplatform.glGetCombinerInputParameterfvNV object at 0x8678b6c> glGetCombinerInputParameterivNV = <OpenGL.platform.baseplatform.glGetCombinerInputParameterivNV object at 0x8678bac> glGetCombinerOutputParameterfvNV = <OpenGL.platform.baseplatform.glGetCombinerOutputParameterfvNV object at 0x8678bec> glGetCombinerOutputParameterivNV = <OpenGL.platform.baseplatform.glGetCombinerOutputParameterivNV object at 0x8678c2c> glGetFinalCombinerInputParameterfvNV = <OpenGL.platform.baseplatform.glGetFinalCombinerInputParameterfvNV object at 0x8678c6c> glGetFinalCombinerInputParameterivNV = <OpenGL.platform.baseplatform.glGetFinalCombinerInputParameterivNV object at 0x8678cac> |