--- A simple mipmap memory cost analysis (2D case).
It could be interesting how much memory takes mip-mapping support. To get it we need to sum up the size of main texture and all mipmap-generated sub-textures, e.g. if base texture is 128x128, then sub-textures are 64x64, 32x32, 16x16, 8x8, 4x4, 2x2, 1x1. Since on each step the size is reduced by half (in each dimension) we get geometric progression with b1 = 1 and q = 4. Hence ∑
(N+1) = (4^(N+1) – 1) / 3. Comparing the later with original texture size 2^(2*N) = 4^N we got the ratio ~ 4/3. In other words mip-mapped texture costs only 1.(3) of original texture size
. Well enough!
Just to feel this in real numbers, let's take a texture with N = 8 or 256x256 = 64K pixels. Mipmap weights (4^9 - 1)/3 = (2^18 - 1)/3 = 262143/3 = 87381 pixels. The ratio is 87381/65536 = ~ 1.3333282470703125 = ~ 1.(3)
For 1D case mipmap costs 2x of original size, but who cares for 1D textures :)
--- This link - Advanced OpenGL Texture Mapping.
- to an ancient article (with pictures) on OpenGL texturing might help to better understand some parameters.