gluBuild3DMipmaps man page on YellowDog

Man page or keyword search:  
man Server   18644 pages
apropos Keyword Search (all sections)
Output format
YellowDog logo
[printable version]

GLUBUILD3DMIPMAPS(3G)					 GLUBUILD3DMIPMAPS(3G)

NAME
       gluBuild3DMipmaps - builds a three-dimensional mipmap

C SPECIFICATION
       GLint gluBuild3DMipmaps( GLenum target,
				GLint internalFormat,
				GLsizei width,
				GLsizei height,
				GLsizei depth,
				GLenum format,
				GLenum type,
				const void *data )

PARAMETERS
       target	       Specifies the target texture.  Must be GL_TEXTURE_3D.

       internalFormat  Requests	 the  internal	storage	 of the texture image.
		       The most current version of the SGI  implementation  of
		       GLU does not check this value for validity before pass‐
		       ing it on to the underlying OpenGL  implementation.   A
		       value that is not accepted by the OpenGL implementation
		       will lead to an	OpenGL	error.	 The  benefit  of  not
		       checking	 this  value  at  the GLU level is that OpenGL
		       extensions can add new internal texture formats without
		       requiring  a revision of the GLU implementation.	 Older
		       implementations of GLU check this value and raise a GLU
		       error  if it is not 1, 2, 3, or 4 or one of the follow‐
		       ing symbolic constants: GL_ALPHA, GL_ALPHA4, GL_ALPHA8,
		       GL_ALPHA12,  GL_ALPHA16,	 GL_LUMINANCE,	GL_LUMINANCE4,
		       GL_LUMINANCE8,	  GL_LUMINANCE12,      GL_LUMINANCE16,
		       GL_LUMINANCE_ALPHA,		 GL_LUMINANCE4_ALPHA4,
		       GL_LUMINANCE6_ALPHA2,		 GL_LUMINANCE8_ALPHA8,
		       GL_LUMINANCE12_ALPHA4,	       GL_LUMINANCE12_ALPHA12,
		       GL_LUMINANCE16_ALPHA16,	GL_INTENSITY,	GL_INTENSITY4,
		       GL_INTENSITY8,  GL_INTENSITY12, GL_INTENSITY16, GL_RGB,
		       GL_R3_G3_B2,  GL_RGB4,  GL_RGB5,	  GL_RGB8,   GL_RGB10,
		       GL_RGB12,   GL_RGB16,   GL_RGBA,	  GL_RGBA2,  GL_RGBA4,
		       GL_RGB5_A1,  GL_RGBA8,	GL_RGB10_A2,   GL_RGBA12,   or
		       GL_RGBA16.

       width, height, depth
		       Specifies in pixels the width, height and depth respec‐
		       tively, in pixels of the texture image.

       format	       Specifies the  of the  pixel  data.   Must  be  one  of
		       GL_COLOR_INDEX,	GL_DEPTH_COMPONENT,  GL_RED, GL_GREEN,
		       GL_BLUE, GL_ALPHA, GL_RGB,  GL_RGBA,  GL_BGR,  GL_BGRA,
		       GL_LUMINANCE, or GL_LUMINANCE_ALPHA.

       type	       Specifies  the  data  type  for	data.  Must be one of:
		       GL_UNSIGNED_BYTE,	  GL_BYTE,	    GL_BITMAP,
		       GL_UNSIGNED_SHORT,  GL_SHORT,  GL_UNSIGNED_INT, GL_INT,
		       GL_FLOAT,		       GL_UNSIGNED_BYTE_3_3_2,
		       GL_UNSIGNED_BYTE_2_3_3_REV,    GL_UNSIGNED_SHORT_5_6_5,
		       GL_UNSIGNED_SHORT_5_6_5_REV, GL_UNSIGNED_SHORT_4_4_4_4,
		       GL_UNSIGNED_SHORT_4_4_4_4_REV,
		       GL_UNSIGNED_SHORT_5_5_5_1,
		       GL_UNSIGNED_SHORT_1_5_5_5_REV, GL_UNSIGNED_INT_8_8_8_8,
		       GL_UNSIGNED_INT_8_8_8_8_REV,
		       GL_UNSIGNED_INT_10_10_10_2,			    or
		       GL_UNSIGNED_INT_2_10_10_10_REV.

       data	       Specifies a pointer to the image data in memory.

DESCRIPTION
       gluBuild3DMipmaps builds a series of prefiltered three-dimensional tex‐
       ture  maps  of decreasing resolutions called a mipmap. This is used for
       the antialiasing of texture-mapped primitives.

       A return value of zero indicates success, otherwise a GLU error code is
       returned (see gluErrorString).

       Initially,  the	width,	height and depth of data are checked to see if
       they are a power of 2. If not, a copy of data (not data), is scaled  up
       or  down	 to  the  nearest  power  of  2. (If width, height or depth is
       exactly between powers of 2, then the copy of data will scale upwards.)
       This  copy  will be used for subsequent mipmapping operations described
       below.  For example, if width is 57, height is 23 and depth is 24  then
       a  copy	of data will scale up to 64 in width, down to 16 in height and
       up to 32 in depth, before mipmapping takes place.

       Then, proxy textures (see glTexImage3D) are used to  determine  if  the
       implementation  can fit the requested texture. If not, all three dimen‐
       sions are continually halved until it fits.

       Next, a series of mipmap levels is built by decimating a copy  of  data
       in half along all three dimensions until size 1×1×1 is reached. At each
       level, each texel in the halved mipmap level is an average of the  cor‐
       responding  eight texels in the larger mipmap level. (If exactly one of
       the dimensions is 1, four texels are averaged.  If exactly two  of  the
       dimensions are 1, two texels are averaged.)

       glTexImage3D is called to load each of these mipmap levels.  Level 0 is
       a copy of data.	The highest  level  is	log2(max(width,height,depth)).
       For  example,  if  width	 is  64, height is 16 and depth is 32, and the
       implementation can store a texture of this size, the  following	mipmap
       levels  are  built:  64×16×32, 32×8×16, 16×4×8, 8×2×4, 4×1×2, 2×1×1 and
       1×1×1. These correspond to levels 0 through 6, respectively.

       See the glTexImage1D reference page for a description of the acceptable
       values  for format parameter. See the glDrawPixels reference page for a
       description of the acceptable values for type parameter.

NOTES
       Note that there is no direct way of querying the	 maximum  level.  This
       can  be derived indirectly via glGetTexLevelParameter. First, query for
       the width, height and depth actually used  at  level  0.	  (The	width,
       height  and  depth  may not be equal to width, height and depth respec‐
       tively since proxy textures might have scaled them to fit the implemen‐
       tation.)	  Then	the  maximum  level  can  be  derived from the formula
       log2(max(width,height,depth)).

       gluBuild3DMipmaps is only available  if	the  GLU  version  is  1.3  or
       greater.

       Formats	 GL_BGR,   and	 GL_BGRA,  and	types  GL_UNSIGNED_BYTE_3_3_2,
       GL_UNSIGNED_BYTE_2_3_3_REV,		      GL_UNSIGNED_SHORT_5_6_5,
       GL_UNSIGNED_SHORT_5_6_5_REV,		    GL_UNSIGNED_SHORT_4_4_4_4,
       GL_UNSIGNED_SHORT_4_4_4_4_REV,		    GL_UNSIGNED_SHORT_5_5_5_1,
       GL_UNSIGNED_SHORT_1_5_5_5_REV,		      GL_UNSIGNED_INT_8_8_8_8,
       GL_UNSIGNED_INT_8_8_8_8_REV,	 GL_UNSIGNED_INT_10_10_10_2,	   and
       GL_UNSIGNED_INT_2_10_10_10_REV  are only available if the GL version is
       1.2 or greater.

ERRORS
       GLU_INVALID_VALUE is returned if width, height, or depth is < 1.

       GLU_INVALID_ENUM is returned if internalFormat, format, or type is  not
       legal.

       GLU_INVALID_OPERATION  is returned if type is GL_UNSIGNED_BYTE_3_3_2 or
       GL_UNSIGNED_BYTE_2_3_3_REV and format is not GL_RGB.

       GLU_INVALID_OPERATION is returned if type is GL_UNSIGNED_SHORT_5_6_5 or
       GL_UNSIGNED_SHORT_5_6_5_REV and format is not GL_RGB.

       GLU_INVALID_OPERATION  is returned if type is GL_UNSIGNED_SHORT_4_4_4_4
       or GL_UNSIGNED_SHORT_4_4_4_4_REV and  format  is	 neither  GL_RGBA  nor
       GL_BGRA.

       GLU_INVALID_OPERATION  is returned if type is GL_UNSIGNED_SHORT_5_5_5_1
       or GL_UNSIGNED_SHORT_1_5_5_5_REV and  format  is	 neither  GL_RGBA  nor
       GL_BGRA.

       GLU_INVALID_OPERATION is returned if type is GL_UNSIGNED_INT_8_8_8_8 or
       GL_UNSIGNED_INT_8_8_8_8_REV and format is neither GL_RGBA nor GL_BGRA.

       GLU_INVALID_OPERATION is returned if type is GL_UNSIGNED_INT_10_10_10_2
       or  GL_UNSIGNED_INT_2_10_10_10_REV  and	format	is neither GL_RGBA nor
       GL_BGRA.

SEE ALSO
       glDrawPixels(3G), glTexImage1D(3G), glTexImage2D(3G), glTexImage3D(3G),
       gluBuild1DMipmaps(3G),	 gluBuild3DMipmaps(3G),	   gluErrorString(3G),
       glGetTexImage(3G),			   glGetTexLevelParameter(3G),
       gluBuild1DMipmapLevels(3G),		   gluBuild2DMipmapLevels(3G),
       gluBuild3DMipmapLevels(3G)

							 GLUBUILD3DMIPMAPS(3G)
[top]

List of man pages available for YellowDog

Copyright (c) for man pages and the logo by the respective OS vendor.

For those who want to learn more, the polarhome community provides shell access and support.

[legal] [privacy] [GNU] [policy] [cookies] [netiquette] [sponsors] [FAQ]
Tweet
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
....................................................................
Vote for polarhome
Free Shell Accounts :: the biggest list on the net