
B
gluBuild2DMipmaps
Chapter 2
39
If the GL version is 1.1 or greater, gluBuild2DMipmaps then uses proxy textures (see
glTexImage1D) to determine whether there’s enough room for the requested texture in
the implementation. If not, width is halved (and halved again) until it fits.
gluBuild2DMipmaps then uses proxy textures (see glTexImage2D) to determine if the
implementation can store the requested texture in texture memory. If not, both
dimensions are continually halved until it fits.
Next, gluBuild2DMipmaps builds a series of images; it halves a copy of type (or a scaled
version of type, if necessary) along both dimensions until size 11 is reached. At each
level, each texel in the halved mipmap is an average of the corresponding four texels in
the larger mipmap. (In the case of rectangular images, halving the images repeatedly
eventually results in an n 1 or 1n configuration. Here, two texels are averaged instead.)
glTexImage2D is called to load each of these images by level. If width and height are
both powers of 2 which fit in the implementation, level 0 is a copy of data, and the
highest level is log
2
(max(width, height)). For example, if width is 64 and height is 16, the
following mipmaps are built: 64
×
16, 32
×
8, 16
×
4, 8
×
2, 4
×
1, 2
×
1 and 1
×
1. These correspond
to levels 0 through 6, respectively.
See the glTexImage1D reference page for a description of the acceptable values for
format. See the glDrawPixels reference page for a description of the acceptable values for
type.
Notes
While you can’t query the maximum level directly, you can derive it indirectly by calling
glGetTexLevelParameter. First, query for the width and height actually used at level 0.
(The width and height may be unequal to width and height since proxy textures might
have shrunk or expanded them if width or height are not powers of 2 or if the
implementation only supports smaller textures.) The maximum level can then be
derived using the formula log
2
(max(width, height)).
Errors
•
GLU_INVALID_VALUE is returned if width or height are negative.
•
GLU_INVALID_ENUM is returned if format or type is not one of the accepted
values.
See Also
glDrawPixels,
glTexImage1D,
glTexImage2D,
gluBuild1DMipmaps,
gluErrorString,
gluScaleImage
Содержание c3700 - Workstation
Страница 9: ...Chapter 1 9 1 A ...
Страница 12: ...A glAccum Chapter 1 12 glLogicOp glPixelStore glPixelTransfer glReadBuffer glReadPixels glScissor glStencilOp ...
Страница 18: ...A glArrayElement Chapter 1 18 glNormalPointer glTexCoordPointer glVertexPointer ...
Страница 19: ...Chapter 2 19 2 B ...
Страница 40: ...B gluBuild2DMipmaps Chapter 2 40 ...
Страница 41: ...Chapter 3 41 3 C ...
Страница 49: ...C glXChooseVisual Chapter 3 49 See Also glXCreateContext glXGetConfig ...
Страница 73: ...C glCopyPixels Chapter 3 73 glReadBuffer glReadPixels glStencilFunc ...
Страница 84: ...C glCopyTexSubImage2D Chapter 3 84 glTexParameter glTexSubImage1D glTexSubImage2D ...
Страница 93: ...Chapter 4 93 4 D ...
Страница 99: ...D glDeleteTextures Chapter 4 99 glTexImage1D glTexImage2D glTexParameter ...
Страница 127: ...Chapter 5 127 5 E ...
Страница 148: ...E glEvalPoint Chapter 5 148 ...
Страница 149: ...Chapter 6 149 6 F ...
Страница 161: ...Chapter 7 161 7 G ...
Страница 164: ...G glGenTextures Chapter 7 164 glTexImage1D glTexImage2D glTexParameter ...
Страница 185: ...G glGet Chapter 7 185 glGetTexGen glGetTexImage glGetTexLevelParameter glGetTexParameter glIsEnabled ...
Страница 207: ...G glGetPointer Chapter 7 207 glSelectBuffer glTexCoordPointer glVertexPointer ...
Страница 224: ...G glGetTexParameter Chapter 7 224 See Also glAreTexturesResident glPrioritizeTextures glTexParameter ...
Страница 225: ...Chapter 8 225 8 H ...
Страница 228: ...H glHint Chapter 8 228 ...
Страница 229: ...Chapter 9 229 9 I ...
Страница 248: ...I glIsTexture Chapter 9 248 ...
Страница 249: ...Chapter 10 249 10 L ...
Страница 256: ...L glLightModel Chapter 10 256 See Also glLight glMaterial ...
Страница 271: ...Chapter 11 271 11 M ...
Страница 291: ...Chapter 12 291 12 N ...
Страница 312: ...N gluNurbsSurface Chapter 12 312 ...
Страница 313: ...Chapter 13 313 13 O ...
Страница 317: ...Chapter 14 317 14 P ...
Страница 345: ...P glPolygonStipple Chapter 14 345 See Also glDrawPixels glLineStipple glPixelStore glPixelTransfer ...
Страница 360: ...P glPushName Chapter 14 360 See Also glInitNames glLoadName glRenderMode glSelectBuffer ...
Страница 362: ...P gluPwlCurve Chapter 14 362 ...
Страница 363: ...Chapter 15 363 15 Q ...
Страница 372: ...Q glXQueryVersion Chapter 15 372 glXQueryVersion ...
Страница 373: ...Chapter 16 373 16 R ...
Страница 390: ...R glRotate Chapter 16 390 ...
Страница 391: ...Chapter 17 391 17 S ...
Страница 397: ...S glScissor Chapter 17 397 See Also glEnable glViewport ...
Страница 409: ...Chapter 18 409 18 T ...
Страница 430: ...T glTexEnv Chapter 18 430 glCopyTexSubImage2D glTexImage1D glTexImage2D glTexParameter glTexSubImage1D glTexSubImage2D ...
Страница 448: ...T glTexImage3DEXT Chapter 18 448 glTexGen glTexImage1D glTexImage2D glTexParameter ...
Страница 457: ...T glTexSubImage1D Chapter 18 457 glTexImage2D glTexParameter glTexSubImage2D ...
Страница 465: ...T glTranslate Chapter 18 465 See Also glMatrixMode glMultMatrix glPushMatrix glScale ...
Страница 466: ...T glTranslate Chapter 18 466 ...
Страница 467: ...Chapter 19 467 19 U ...
Страница 469: ...U gluUnProject Chapter 19 469 See Also glGet gluProject ...
Страница 471: ...U glXUseXFont Chapter 19 471 See Also glBitmap glXMakeCurrent ...
Страница 472: ...U glXUseXFont Chapter 19 472 ...
Страница 473: ...Chapter 20 473 20 V ...
Страница 482: ...V glVisibilityBufferhp Chapter 20 482 ...
Страница 483: ...Chapter 21 483 21 W ...
Страница 486: ...W glXWaitX Chapter 21 486 ...