- set texture environment parameters
C SPECIFICATION
PARAMETERS
_param1 Specifies a texture environment. Must be
GL_TEXTURE_ENV.
_param2 Specifies the symbolic name of a single-valued
texture environment parameter. Must be
GL_TEXTURE_ENV_MODE.
_param3 Specifies a single symbolic constant, one of
GL_MODULATE, GL_DECAL, GL_BLEND, or GL_REPLACE.
C SPECIFICATION
PARAMETERS
_param1
Specifies a texture environment. Must be
GL_TEXTURE_ENV.
_param2
Specifies the symbolic name of a texture environ-
ment parameter. Accepted values are
GL_TEXTURE_ENV_MODE and GL_TEXTURE_ENV_COLOR.
_param3
Specifies a pointer to a parameter array that con-
tains either a single symbolic constant or an RGBA
color.
DESCRIPTION
A texture environment specifies how texture values are
interpreted when a fragment is textured. _param1 must be
GL_TEXTURE_ENV. _param2 can be either GL_TEXTURE_ENV_MODE
or GL_TEXTURE_ENV_COLOR.
If _param2 is GL_TEXTURE_ENV_MODE, then _param3 is (or
points to) the symbolic name of a texture function. Four
texture functions may be specified: GL_MODULATE, GL_DECAL,
GL_BLEND, and GL_REPLACE.
A texture function acts on the fragment to be textured
using the texture image value that applies to the fragment
(see glTexParameter) and produces an RGBA color for that
fragment. The following table shows how the RGBA color is
produced for each of the three texture functions that can
be chosen. C is a triple of color values (RGB) and A is
the associated alpha value. RGBA values extracted from a
texture image are in the range [0,1]. The subscript f
refers to the incoming fragment, the subscript t to the
texture image, the subscript c to the texture environment
----------------------------------------------------------------------
GL_ALPHA Cv=Cf undefined Cv=Cf Cv=Cf
Av=AfAt Av=Af Av=At
----------------------------------------------------------------------
GL_LUMINANCE Cv=LtCf undefined Cv=(1-Lt)Cf Cv=Lt
+LtCc
1 Av=Af Av=Af Av=Af
----------------------------------------------------------------------
GL_LUMINANCE Cv=LtCf undefined Cv=(1-Lt)Cf Cv=Lt
\f3_ALPHA +LtCc
2 Av=AtAf Av=AtAf Av=At
----------------------------------------------------------------------
GL_INTENSITY Cv=CfIt undefined Cv=(1-It)Cf Cv=It
+ItCc
c Av=AfIt Av=(1-It)Af Av=It
+ItAc
----------------------------------------------------------------------
GL_RGB Cv=CtCf Cv=Ct Cv=(1-Ct)Cf Cv=Ct
+CtCc
3 Av=Af Av=Af Av=Af Av=Af
----------------------------------------------------------------------
GL_RGBA Cv=CtCf Cv=(1-At)Cf Cv=(1-Ct)Cf Cv=Ct
+AtCt +CtCc
4 Av=AtAf Av=Af Av=AtAf Av=At
----------------------------------------------------------------------
GL_TEXTURE_ENV_MODE defaults to GL_MODULATE and
GL_TEXTURE_ENV_COLOR defaults to (0, 0, 0, 0).
NOTES
GL_REPLACE may only be used if the GL version is 1.1 or
greater.
Internal formats other than 1, 2, 3, or 4 may only be used
if the GL version is 1.1 or greater.
When the GL_ARB_multitexture extension is supported,
glTexEnv controls the texture environment for the current
active texture unit, selected by glActiveTextureARB.
GL_INVALID_ENUM is generated when _param1 or _param2 is
not one of the accepted defined values, or when _param3
should have a defined constant value (based on the value
of _param2) and does not.
GL_INVALID_OPERATION is generated if glTexEnv is executed
between the execution of glBegin and the corresponding
execution of glEnd.
ASSOCIATED GETS
glGetTexEnv
SEE ALSO
glActiveTextureARB, glCopyPixels, glCopyTexImage1D,
glCopyTexImage2D, glCopyTexSubImage1D,
glCopyTexSubImage2D, glCopyTexSubImage3D, glTexImage1D,
glTexImage2D, glTexImage3D, glTexParameter,
glTexSubImage1D, glTexSubImage2D, glTexSubImage3D
1