glGenerateMipmap, glGenerateTextureMipmap — generate mipmaps for a specified texture object
void glGenerateMipmap( | GLenum target) ; |
void glGenerateTextureMipmap( | GLuint texture) ; |
target
Specifies the target to which the texture object is bound for glGenerateMipmap
. Must be one of GL_TEXTURE_1D
, GL_TEXTURE_2D
, GL_TEXTURE_3D
, GL_TEXTURE_1D_ARRAY
, GL_TEXTURE_2D_ARRAY
, GL_TEXTURE_CUBE_MAP
, or GL_TEXTURE_CUBE_MAP_ARRAY
.
texture
Specifies the texture object name for glGenerateTextureMipmap
.
glGenerateMipmap
and glGenerateTextureMipmap
generates mipmaps for the specified texture object. For glGenerateMipmap
, the texture object is that bound to to target
. For glGenerateTextureMipmap
, texture
is the name of the texture object.
For cube map and cube map array textures, the texture object must be cube complete or cube array complete respectively.
Mipmap generation replaces texel image levels $level_{base} + 1$ through $q$ with images derived from the $level_{base}$ image, regardless of their previous contents. All other mimap images, including the $level_{base}+1$ image, are left unchanged by this computation.
The internal formats of the derived mipmap images all match those of the $level_{base}$ image. The contents of the derived images are computed by repeated, filtered reduction of the $level_{base} + 1$ image. For one- and two-dimensional array and cube map array textures, each layer is filtered independently.
Cube map array textures are accepted only if the GL version is 4.0 or higher.
GL_INVALID_ENUM
is generated by glGenerateMipmap
if target
is not one of the accepted texture targets.
GL_INVALID_OPERATION
is generated by glGenerateTextureMipmap
if texture
is not the name of an existing texture object.
GL_INVALID_OPERATION
is generated if target
is GL_TEXTURE_CUBE_MAP
or GL_TEXTURE_CUBE_MAP_ARRAY
, and the specified texture object is not cube complete or cube array complete, respectively.
GLuint texture_id; glGenTextures(1, &texture_id); glBindTexture(GL_TEXTURE_2D, texture_id); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR_MIPMAP_LINEAR); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE); // texture_data is the source data of your texture, in this case // its size is sizeof(unsigned char) * texture_width * texture_height * 4 glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, texture_width, texture_height, 0, GL_RGBA, GL_UNSIGNED_BYTE, texture_data); glGenerateMipmap(GL_TEXTURE_2D); // Unavailable in OpenGL 2.1, use gluBuild2DMipmaps() instead glBindTexture(GL_TEXTURE_2D, 0);
Songho - OpenGL Frame Buffer Object (FBO)
open.gl - Textures Objects and Parameters
opengl-tutorial.org - Tutorial 5 : A Textured Cube
OpenGL Version | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
Function / Feature Name | 2.0 | 2.1 | 3.0 | 3.1 | 3.2 | 3.3 | 4.0 | 4.1 | 4.2 | 4.3 | 4.4 | 4.5 |
glGenerateMipmap | - | - | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
glGenerateTextureMipmap | - | - | - | - | - | - | - | - | - | - | - | ✔ |
Copyright © 2010-2014 Khronos Group. This material may be distributed subject to the terms and conditions set forth in the Open Publication License, v 1.0, 8 June 1999. https://opencontent.org/openpub/.