*nix Documentation Project
·  Home
 +   man pages
·  Linux HOWTOs
·  FreeBSD Tips
·  *niX Forums

  man pages->IRIX man pages -> OpenGL/glubuild3dmipmaps (3)              
Title
Content
Arch
Section
 

Contents


gluBuild3DMipmaps(3G)	       OpenGL Reference		 gluBuild3DMipmaps(3G)


NAME    [Toc]    [Back]

     gluBuild3DMipmaps - builds	a three-dimensional mipmap

C SPECIFICATION    [Toc]    [Back]

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

PARAMETERS    [Toc]    [Back]

     target	     Specifies the target texture.  Must be GL_TEXTURE_3D.

     internalFormat  Requests the internal storage format of the texture
		     image.  Must be 1,	2, 3, 4, or one	of the following
		     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
		     respectively, in pixels of	the texture image.

     format	     Specifies the format 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.



									Page 1






gluBuild3DMipmaps(3G)	       OpenGL Reference		 gluBuild3DMipmaps(3G)



     data	     Specifies a pointer to the	image data in memory.

DESCRIPTION    [Toc]    [Back]

     gluBuild3DMipmaps builds a	series of prefiltered three-dimensional
     texture 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
     dimensions	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 x 1 x	1 is reached. At each
     level, each texel in the halved mipmap level is an	average	of the
     corresponding 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 log (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 x 16 x 32, 32	x 8 x 16, 16 x 4 x 8, 8	x 2 x 4,
     4 x 1 x 2,	2 x 1 x	1 and 1	x 1 x 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    [Toc]    [Back]

     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 respectively since
     proxy textures might have scaled them to fit the implementation.)	Then
     the maximum level can be derived from the formula
     log (max(width,height,depth)).
	2




									Page 2






gluBuild3DMipmaps(3G)	       OpenGL Reference		 gluBuild3DMipmaps(3G)



     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    [Toc]    [Back]

     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    [Toc]    [Back]

      
      
     glDrawPixels, glTexImage1D, glTexImage2D, glTexImage3D,
     gluBuild1DMipmaps,	gluBuild3DMipmaps, gluErrorString, glGetTexImage,
     glGetTexLevelParameter, gluBuild1DMipmapLevels, gluBuild2DMipmapLevels,
     gluBuild3DMipmapLevels


									PPPPaaaaggggeeee 3333
[ Back ]
 Similar pages
Name OS Title
glubuild2dmipmaps IRIX builds a two-dimensional mipmap
glubuild1dmipmaps IRIX builds a one-dimensional mipmap
glubuild1dmipmaplevels IRIX builds a subset of one-dimensional mipmap levels
glubuild2dmipmaplevels IRIX builds a subset of two-dimensional mipmap levels
glubuild3dmipmaplevels IRIX builds a subset of three-dimensional mipmap levels
gluBuild1DMipmaps Tru64 builds a 1-D mipmap
gluBuild2DMipmaps Tru64 builds a 2-D mipmap
pmerge Tru64 Builds a network bootable kernel.
config Tru64 Builds system configuration files
newaliases Tru64 Builds a new copy of the alias database
Copyright © 2004-2005 DeniX Solutions SRL
newsletter delivery service