- set texture parameters
C SPECIFICATION
PARAMETERS
_param1 Specifies the target texture, which must be
either GL_TEXTURE_1D, GL_TEXTURE_2D, or
GL_TEXTURE_3D.
_param2 Specifies the symbolic name of a single-valued
texture parameter. _param2 can be one of the
following: GL_TEXTURE_MIN_FILTER,
GL_TEXTURE_MAG_FILTER, GL_TEXTURE_MIN_LOD,
GL_TEXTURE_MAX_LOD, GL_TEXTURE_BASE_LEVEL,
GL_TEXTURE_MAX_LEVEL, GL_TEXTURE_WRAP_S,
GL_TEXTURE_WRAP_T, GL_TEXTURE_WRAP_R, or
GL_TEXTURE_PRIORITY.
_param3 Specifies the value of _param2.
C SPECIFICATION
PARAMETERS
_param1
Specifies the target texture, which must be either
GL_TEXTURE_1D, GL_TEXTURE_2D or GL_TEXTURE_3D.
_param2
Specifies the symbolic name of a texture parameter.
_param2 can be one of the following:
GL_TEXTURE_MIN_FILTER, GL_TEXTURE_MAG_FILTER,
GL_TEXTURE_MIN_LOD, GL_TEXTURE_MAX_LOD,
GL_TEXTURE_BASE_LEVEL, GL_TEXTURE_MAX_LEVEL,
GL_TEXTURE_WRAP_S, GL_TEXTURE_WRAP_T,
GL_TEXTURE_WRAP_R, GL_TEXTURE_BORDER_COLOR, or
GL_TEXTURE_PRIORITY.
_param3
Specifies a pointer to an array where the value or
values of _param2 are stored.
DESCRIPTION
Texture mapping is a technique that applies an image onto
an object's surface as if the image were a decal or cello-
phane shrink-wrap. The image is created in texture space,
with an (s, t) coordinate system. A texture is a one- or
two-dimensional image and a set of parameters that deter-
mine how samples are derived from the image.
glTexParameter assigns the value or values in _param3 to
the texture parameter specified as _param2. _param1
defines the target texture, either GL_TEXTURE_1D,
GL_TEXTURE_2D, or GL_TEXTURE_3D. The following symbols
there are max(n,m)+1 mipmaps. The first mipmap
is the original texture, with dimensions 2nx2m.
Each subsequent mipmap has dimensions 2k-1x2l-1,
where 2kx2l are the dimensions of the previous
mipmap, until either k=0 or l=0. At that point,
subsequent mipmaps have dimension 1x2l-1 or
2k-1x1 until the final mipmap, which has dimen-
sion 1x1. To define the mipmaps, call
glTexImage1D, glTexImage2D, glTexImage3D,
glCopyTexImage1D, or glCopyTexImage2D with the
level argument indicating the order of the
mipmaps. Level 0 is the original texture; level
max(n,m) is the final 1x1 mipmap.
_param3 supplies a function for minifying the
texture as one of the following:
GL_NEAREST
Returns the value of the texture ele-
ment that is nearest (in Manhattan
distance) to the center of the pixel
being textured.
GL_LINEAR Returns the weighted average of the
four texture elements that are closest
to the center of the pixel being tex-
tured. These can include border tex-
ture elements, depending on the values
of GL_TEXTURE_WRAP_S and
GL_TEXTURE_WRAP_T, and on the exact
mapping.
GL_NEAREST_MIPMAP_NEAREST
Chooses the mipmap that most closely
matches the size of the pixel being
textured and uses the GL_NEAREST cri-
terion (the texture element nearest to
the center of the pixel) to produce a
texture value.
GL_LINEAR_MIPMAP_NEAREST
Chooses the mipmap that most closely
matches the size of the pixel being
textured and uses the GL_LINEAR crite-
rion (a weighted average of the four
texture elements that are closest to
the center of the pixel) to produce a
texture value.
GL_NEAREST_MIPMAP_LINEAR
Chooses the two mipmaps that most
closely match the size of the pixel
a texture value from each mipmap. The
final texture value is a weighted
average of those two values.
As more texture elements are sampled in the
minification process, fewer aliasing artifacts
will be apparent. While the GL_NEAREST and
GL_LINEAR minification functions can be faster
than the other four, they sample only one or
four texture elements to determine the texture
value of the pixel being rendered and can pro-
duce moire patterns or ragged transitions. The
initial value of GL_TEXTURE_MIN_FILTER is
GL_NEAREST_MIPMAP_LINEAR.
GL_TEXTURE_MAG_FILTER
The texture magnification function is used when
the pixel being textured maps to an area less
than or equal to one texture element. It sets
the texture magnification function to either
GL_NEAREST or GL_LINEAR (see below). GL_NEAREST
is generally faster than GL_LINEAR, but it can
produce textured images with sharper edges
because the transition between texture elements
is not as smooth. The initial value of
GL_TEXTURE_MAG_FILTER is GL_LINEAR.
GL_NEAREST
Returns the value of the texture ele-
ment that is nearest (in Manhattan
distance) to the center of the pixel
being textured.
GL_LINEAR Returns the weighted average of the
four texture elements that are closest
to the center of the pixel being tex-
tured. These can include border tex-
ture elements, depending on the values
of GL_TEXTURE_WRAP_S and
GL_TEXTURE_WRAP_T, and on the exact
mapping.
GL_TEXTURE_MIN_LOD
Sets the minimum level-of-detail parameter.
This floating-point value limits the selection
of highest resolution mipmap (lowest mipmap
level). The initial value is -1000.
GL_TEXTURE_MAX_LOD
Sets the index of the highest defined mipmap
level. This is an integer value. The initial
value is 1000.
GL_TEXTURE_WRAP_S
Sets the wrap parameter for texture coordinate s
to either GL_CLAMP, GL_CLAMP_TO_EDGE, or
GL_REPEAT. GL_CLAMP causes s coordinates to be
clamped to the range [0,1] and is useful for
preventing wrapping artifacts when mapping a
single image onto an object. GL_CLAMP_TO_EDGE
causes s coordinates to be clamped to the range
[_<I>N_,1-_<I>N_], where N is the size of the texture in
the direction of clamping. GL_REPEAT causes the
integer part of the s coordinate to be ignored;
the GL uses only the fractional part, thereby
creating a repeating pattern. Border texture
elements are accessed only if wrapping is set to
GL_CLAMP. Initially, GL_TEXTURE_WRAP_S is set
to GL_REPEAT.
GL_TEXTURE_WRAP_T
Sets the wrap parameter for texture coordinate t
to either GL_CLAMP, GL_CLAMP_TO_EDGE, or
GL_REPEAT. See the discussion under
GL_TEXTURE_WRAP_S. Initially, GL_TEXTURE_WRAP_T
is set to GL_REPEAT.
GL_TEXTURE_WRAP_R
Sets the wrap parameter for texture coordinate r
to either GL_CLAMP, GL_CLAMP_TO_EDGE, or
GL_REPEAT. See the discussion under
GL_TEXTURE_WRAP_S. Initially, GL_TEXTURE_WRAP_R
is set to GL_REPEAT.
GL_TEXTURE_BORDER_COLOR
Sets a border color. _param3 contains four val-
ues that comprise the RGBA color of the texture
border. Integer color components are inter-
preted linearly such that the most positive
integer maps to 1.0, and the most negative inte-
ger maps to -1.0. The values are clamped to the
range [0,1] when they are specified. Initially,
the border color is (0, 0, 0, 0).
GL_TEXTURE_PRIORITY
Specifies the texture residence priority of the
currently bound texture. Permissible values are
in the range [0, 1]. See glPrioritizeTextures
and glBindTexture for more information.
above), or there are fewer texture images defined than are
needed, or the set of texture images have differing num-
bers of texture components, then it is as if texture map-
ping were disabled.
Linear filtering accesses the four nearest texture ele-
ments only in 2D textures. In 1D textures, linear filter-
ing accesses the two nearest texture elements.
When the GL_ARB_multitexture extension is supported,
glTexParameter specifies the texture parameters for the
active texture unit, specified by calling
glActiveTextureARB.
ERRORS
GL_INVALID_ENUM is generated if _param1 or _param2 is not
one of the accepted defined values.
GL_INVALID_ENUM is generated if _param3 should have a
defined constant value (based on the value of _param2) and
does not.
GL_INVALID_OPERATION is generated if glTexParameter is
executed between the execution of glBegin and the corre-
sponding execution of glEnd.
ASSOCIATED GETS
glGetTexParameter
glGetTexLevelParameter
SEE ALSO
glActiveTextureARB, glBindTexture, glCopyPixels,
glCopyTexImage1D, glCopyTexImage2D, glCopyTexSubImage1D,
glCopyTexSubImage2D, glCopyTexSubImage3D, glDrawPixels,
glPixelStore, glPixelTransfer, glPrioritizeTextures,
glTexEnv, glTexGen, glTexImage1D, glTexImage2D,
glTexImage3D, glTexSubImage1D, glTexSubImage2D,
glTexSubImage3D
1