display | more...
A term used in computer graphics that describes a way of storing a texture in computer (or in 3D accelerator) memory that overcomes one of the problems with texture maps being applied to polygons. They are called mipmaps because the first part -- "mip" -- stands for multim in parvum (latin for: a lot in a small space); because it is a way to store a lot of information about a texture in a compact way.

The problem is this: Sometimes, a bitmap texture is applied to a polygon that is so far away from the viewer that it is rendered to be very small, maybe only a few pixels in size; hence the area that one pixel on the screen of that polygon corresponds to lots of texels in the texture. Strictly speaking, all of these texels in the texture map should be averaged. But this is too time-consuming. So, the common hack is to colour the whole screen pixel according to the colour that is in the middle of all the ones that it maps to in the texture. This works ok, but it leads to aliasing -- resulting in texture disintegration.

The solution: Say you start out with a 64x64 texture. Then you create lots of lower resolution versions of the texture as well, namely: 32x32, 16x16, 8x8, 4x4, 2x2 and 1x1. Each lower resolution texture is an averaged version of the previous texture. When you have to texture a polygon, you work out which is the most appropriate texture to use; and because it's pre-averaged, you can effectively get almost the same effect as averaging all the texels covered by a pixel.

The nice things? It produces much better quality images. Plus, there's a very efficient way to arrange these lower resolution images, which means that you only have to use 50 per cent more memory.

The downside? A little more calculation per pixel -- which can be critical in computer graphics. You also have to decide when to switch from one resolution of mipmap to the next -- or you can interpolate between mipmaps -- which is called trilinear interpolation.