Category: 

What is a MIP Map?

Article Details
  • Written By: G. Wiesen
  • Edited By: Heather Bailey
  • Last Modified Date: 30 August 2016
  • Copyright Protected:
    2003-2016
    Conjecture Corporation
  • Print this Article
Free Widgets for your Site/Blog
Roughly one-fifth of the world's stock of gold - worth over $200 billion USD - is stored under the streets of London.  more...

September 30 ,  1949 :  The Berlin Air Lift ended.  more...

A MIP map is a type of texture map used in three-dimensional (3D) computer graphics for use in applications such as video games and simulators. MIP maps are used to create less detailed textures for objects in a 3D space, to allow for distant objects to be more easily rendered in less detail. These MIP maps are typically referred to as “levels” with an original, high resolution image being regarded as level 0, the next map of reduced quality is level 1, the lower quality map after that is level 2, and so on. A MIP map system is often used to reduce the workload on computer and other graphics renderers as large 3D scenes are displayed in a game or other application.

The origin of the term “MIP map” comes from an acronym for the Latin phrase multum in parvo, which roughly translates to “much in a small space.” This refers to the overall MIP map file that typically includes the original high resolution texture map and the collected MIP maps of that image as well. The smaller MIP maps are generally created by halving the resolution of the original image, then halving each MIP map to create subsequently smaller images. For example, a texture map might have a resolution of 256x256, referring to the number of pixels or picture elements making up the length and width of the image; this image would be applied to an object in 3D animation to give it a realistic appearance.

Ad

The level 1 MIP map for this texture would likely be reduced from that original image to 128x128, keeping all of the original picture information but reducing the quality and detail levels. Continuing with this example, the level 2 MIP map would be 64x64, level 3 would be 32x32, then 16x16, 8x8, 4x4, and finally 2x2. Anything smaller than this level would be a single pixel and not very useful for rendering. When a user plays a video game or similar application and an object first comes into view, it would likely use one of the lowest resolutions, replacing the texture map with increasingly higher resolutions as the player approached the object.

This process also helps reduce the moiré pattern often seen in video applications and early 3D animation. This pattern occurs when a distant object in a game has more texture pixels than there are actual pixels to display the image. When this happens, the resulting distant images become jagged and jumpy as image data is lost and cannot be displayed. By using lower resolution textures, the distant object can have a number of texture pixels less than the displayed pixels and display a lower quality but complete image.

Ad

You might also Like

Recommended

Discuss this Article

Post your comments

exception 'Exception' with message 'error writing captcha: Duplicate entry '2147483647' for key 'PRIMARY'' in /ssd/www/wisegeek/public_html/_core/classes/public/Captcha.php:44
Stack trace:
#0 /ssd/www/wisegeek/public_html/_core/controls/public/ControlDiscussionPostBox.php(324): Captcha->createCaptcha()
#1 /ssd/www/wisegeek/public_html/framework/classes/Control.php(104): ControlDiscussionPostBox->preRender(false)
#2 /ssd/www/wisegeek/public_html/framework/classes/Control.php(149): Control->render()
#3 /ssd/www/wisegeek/public_html/tpl/default-nocustom-lu/pages/public/article/article.htm(526): Control->__toString()
#4 /ssd/www/wisegeek/public_html/framework/classes/Control.php(300): require('/ssd/www/wisege...')
#5 /ssd/www/wisegeek/public_html/framework/classes/Control.php(309): Control->requireTpl('pages/public/ar...', Object(PageArticleCom), true)
#6 /ssd/www/wisegeek/public_html/framework/classes/Control.php(131): Control->renderTpl('pages/public/ar...', Object(PageArticleCom))
#7 /ssd/www/wisegeek/public_html/framework/classes/FormDataControl.php(87): Control->renderTemplate()
#8 /ssd/www/wisegeek/public_html/framework/classes/Control.php(109): FormDataControl->renderTemplate()
#9 /ssd/www/wisegeek/public_html/framework/classes/ScriptPage.php(50): Control->render(false)
#10 /ssd/www/wisegeek/public_html/framework/classes/Control.php(149): ScriptPage->render()
#11 /ssd/www/wisegeek/public_html/framework/classes/Page.php(97): Control->__toString()
#12 /ssd/www/wisegeek/public_html/_core/classes/public/PublicFrontController.php(443): Page->processRequest()
#13 /ssd/www/wisegeek/public_html/_core/classes/public/PublicFrontController.php(7): PublicFrontController->renderPage()
#14 /ssd/www/wisegeek/public_html/index.php(11): PublicFrontController::run()
#15 {main}