glTexParameter.3gl








Name


  glTexParameterf, glTexParameteri, glTexParameterfv, glTexParameteriv - set

  texture parameters





C Specification


  void glTexParameterf(	GLenum target,

			GLenum pname,

			GLfloat	param )

  void glTexParameteri(	GLenum target,

			GLenum pname,

			GLint param )





Parameters




  target  Specifies the	target texture,	which must be either GL_TEXTURE_1D or

	  GL_TEXTURE_2D.



  pname	  Specifies the	symbolic name of a single-valued texture parameter.

	  pname	can be one of the following: GL_TEXTURE_MIN_FILTER,

	  GL_TEXTURE_MAG_FILTER, GL_TEXTURE_WRAP_S, or GL_TEXTURE_WRAP_T.



  param	  Specifies the	value of pname.



C Specification


  void glTexParameterfv( GLenum	target,

			 GLenum	pname,

			 const GLfloat *params )

  void glTexParameteriv( GLenum	target,

			 GLenum	pname,

			 const GLint *params )





Parameters




  target

       Specifies the target texture, which must	be either GL_TEXTURE_1D	or

       GL_TEXTURE_2D.



  pname

       Specifies the symbolic name of a	texture	parameter.  pname can be one

       of the following: GL_TEXTURE_MIN_FILTER,	GL_TEXTURE_MAG_FILTER,

       GL_TEXTURE_WRAP_S, GL_TEXTURE_WRAP_T, or	GL_TEXTURE_BORDER_COLOR.



  params

       Specifies a pointer to an array where the value or values of pname 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 cellophane 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 determine how

  samples are derived from the image.



  glTexParameter assigns the value or values in	params to the texture

  parameter specified as pname.	target defines the target texture, either

  GL_TEXTURE_1D	or GL_TEXTURE_2D.  The following symbols are accepted in

  pname:



  GL_TEXTURE_MIN_FILTER

	    The	texture	minifying function is used whenever the	pixel being

	    textured maps to an	area greater than one texture element. There

	    are	six defined minifying functions.  Two of them use the nearest

	    one	or nearest four	texture	elements to compute the	texture

	    value. The other four use mipmaps.



	    A mipmap is	an ordered set of arrays representing the same image

	    at progressively lower resolutions.	If the texture has dimensions

	    2nx2m 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 dimension 1x1. Mipmaps are defined using

	    glTexImage1D or glTexImage2D with the level-of-detail argument

	    indicating the order of the	mipmaps.  Level	0 is the original

	    texture; level max(n,m) is the final 1x1 mipmap.



	    params supplies a function for minifying the texture as one	of

	    the	following:



	    GL_NEAREST

		      Returns the value	of the texture element 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 textured.  These can include border	texture

		      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

		      criterion	(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

		      criterion	(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	being textured and uses	the

		      GL_NEAREST criterion (the	texture	element	nearest	to

		      the center of the	pixel) to produce a texture value

		      from each	mipmap.	The final texture value	is a weighted

		      average of those two values.



	    GL_LINEAR_MIPMAP_LINEAR

		      Chooses the two mipmaps that most	closely	match the

		      size of the pixel	being textured and uses	the GL_LINEAR

		      criterion	(a weighted average of the four	texture

		      elements that are	closest	to the center of the pixel)

		      to produce 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 produce

	    moire patterns or ragged transitions. The default 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 of

	    the	following:



	    GL_NEAREST

		      Returns the value	of the texture element 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 textured.  These can include border texture

		      elements,	depending on the values	of GL_TEXTURE_WRAP_S

		      and GL_TEXTURE_WRAP_T, and on the	exact mapping.





	    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 default value of

	    GL_TEXTURE_MAG_FILTER is GL_LINEAR.





  GL_TEXTURE_WRAP_S

	    Sets the wrap parameter for	texture	coordinate s to	either

	    GL_CLAMP 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_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 or	GL_REPEAT.  See	the discussion under

	    GL_TEXTURE_WRAP_S. Initially, GL_TEXTURE_WRAP_T is set to

	    GL_REPEAT.



  GL_TEXTURE_BORDER_COLOR

	    Sets a border color.  params contains four values that comprise

	    the	RGBA color of the texture border. Integer color	components

	    are	interpreted linearly such that the most	positive integer maps

	    to 1.0, and	the most negative integer 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).



Notes


  Suppose texturing is enabled (by calling glEnable with argument

  GL_TEXTURE_1D	or GL_TEXTURE_2D) and GL_TEXTURE_MIN_FILTER is set to one of

  the functions	that requires a	mipmap.	 If either the dimensions of the

  texture images currently defined (with previous calls	to glTexImage1D	or

  glTexImage2D)	do not follow the proper sequence for mipmaps (described

  above), or there are fewer texture images defined than are needed, or	the

  set of texture images	have differing numbers of texture components, then it

  is as	if texture mapping were	disabled.



  Linear filtering accesses the	four nearest texture elements only in 2-D

  textures.  In	1-D textures, linear filtering accesses	the two	nearest

  texture elements.



Errors


  GL_INVALID_ENUM is generated when target or pname is not one of the

  accepted defined values, or when params should have a	defined	constant

  value	(based on the value of pname) and does not.



  GL_INVALID_OPERATION is generated if glTexParameter is called	between	a

  call to glBegin and the corresponding	call to	glEnd.



Associated Gets


  glGetTexParameter

  glGetTexLevelParameter



See Also


  glTexEnv, glTexImage1D, glTexImage2D,	glTexGen








Introduction | Alphabetic | Specification

Last Edited: Mon, May 22, 1995

AFV