Mipmap
A pre-computed set of progressively lower-resolution versions of a texture, used by GPUs to reduce aliasing and improve rendering performance when textures are viewed at reduced sizes.
A mipmap (from Latin "multum in parvo") is a data structure described by Lance Williams in a 1983 paper that stores a texture at multiple resolution levels. Each level is half the dimensions of the previous, continuing down to 1x1.
- Level structure: Level 0 is full resolution (e.g., 1024x1024), level 1 is 512x512, and so on. Total memory overhead is approximately 33% (4/3 of original size)
- LOD selection: The GPU selects a mip level based on screen-space pixel coverage. Distant objects use lower levels, reducing aliasing and bandwidth
- Trilinear filtering: Bilinear interpolation within two adjacent levels, then linear blending between them. Reduces visible seams at level transitions
- Anisotropic filtering: Non-uniform sampling based on viewing angle for sharper oblique surfaces.
GL_MAX_TEXTURE_MAX_ANISOTROPYreports the implementation's limit on the degree of anisotropy
Numbers are levels
Generated with glGenerateMipmap(GL_TEXTURE_2D) in OpenGL or GenerateMips() in DirectX. The trade-off: disabling removes the roughly 33% memory overhead but introduces shimmer on distant surfaces.