| |||||||||
In 3D computer graphics texture mapping, MIP maps (also mipmaps) are pre-calculated, optimized collections of bitmap images that accompany a main texture, intended to increase rendering speed and reduce artifacts. They are widely used in 3D computer games, flight simulators and other 3D imaging systems. The technique is known as mipmapping. (The rest of this article assumes familiarity with texture mapping.)
Each bitmap image of the mipmap set is a version of the main texture, but at a certain reduced level of detail. Although the main texture would still be used when the view is sufficient to render it in full detail, the renderer will switch to a suitable mipmap image (or in fact, interpolate between the two nearest) when the texture is viewed from a distance, or at a small size. Rendering speed increases since the number of texture pixels ("texels") being processed can be much lower than with simple textures. Artifacts are reduced since the mipmap images are effectively already anti-aliased, taking some of the burden off the real-time renderer.
If the texture has a basic size of 1024 by 1024 pixels (textures are typically square and have side lengths equal to a power of 2), then the associated mipmap contains a series of 10 images, each half the size of the previous one: 512x512 pixels, 256x256, 128x128, 64x64, 32x32, 16x16, 8x8, 4x4, 2x2, 1x1 (a single pixel). If a scene is rendering this texture in a space no larger than 40 pixels, then an interpolation of the 64x64 and the 32x32 mipmaps would be used.
The increase in storage space required to store all the mipmaps for a texture is a third, because the sum of the areas 1/4 + 1/16 + 1/256 converges to 1/3. (This assumes compression is not being used).
Mipmapping was invented by Lance Williams in 1983 and is described in his paper Pyramidal parametrics. From the abstract: "This paper advances a 'pyramidal parametric' prefiltering and sampling geometry which minimizes aliasing effects and assures continuity within and between target images." The "pyramid" can be imagined as the set of mipmaps stacked on top of each other.
The letters "MIP" in the name comes from the Latin phrase multum in parvo, meaning "much in a small space".