Mipmapping
Mipmapping (also known as MIP mapping) is a technique where an original high-resolution texture map is scaled and filtered into multiple resolutions within the texture file. Mipmaps can be automatically generated from the original texture, but may also be individually painted or adjusted by the texture artist. Typically each subsequent MIP level is half the size of the previous, which guarantees that the complete texture (the original and its mipmaps) is no greater than 1.5 times the original texture.
Each scaled texture, or MIP level, represents what the texture would look like at a specific distance from the users viewpoint. Through the use of filters, the MIP levels give a more natural representation of how colors and details tend to blend together when viewed at a distance.
The main purpose of this technique is to maintain texture definition on surfaces further from the camera and to avoid unslightly moiré patterns which can appear on surfaces, especially as they approach an angle parallel to the axis of the camera. Since the mipmaps are generated in advance, this technique trades a modest increase in texture memory usage to achieve a significant increase in visual quality, avoiding costly real-time calculations that might otherwise be used to solve the problem.
References
- Mipmap - a Wikipedia article on the subject.
- Mip-Mapping in Direct3D - a GameDev.net article.
- Texture Filtering a Wikipedia article about common resampling and interpolation methods.
See also
- LOD (Level of Detail) is a comparable method applied to model geometry.
- NICE filtering - NICE is the default mipmap resize kernel used by Vtex. It is a 7x7 matrix similar to the Sine Cardinal kernel available in VTFLib.
- miptex - a texture format named after the process of mipmapping, used by id Tech 2 and GoldSrc