Texturizado mip

La versión actual de la página aún no ha sido revisada por colaboradores experimentados y puede diferir significativamente de la versión revisada el 4 de febrero de 2015; las comprobaciones requieren 19 ediciones .

MIP-texturizado ( Eng.  MIP mapping ) es un método de texturizado que utiliza múltiples copias de la misma textura con diferentes detalles. El nombre proviene del lat.  multum in parvo  - "mucho en poco".

Cita

La imagen se ve mejor cuando el detalle de la textura está cerca de la resolución de la pantalla . Si la resolución de la pantalla es mayor que la resolución de la textura (textura demasiado pequeña/objeto demasiado cerca), la imagen se verá borrosa. Si la resolución de la textura es demasiado alta (la textura es demasiado grande/el objeto está demasiado lejos), obtenemos píxeles aleatorios, lo que significa pérdida de detalles finos, moiré y parpadeo. El exceso de detalles también es malo en términos de rendimiento: sobrecarga el bus de video y genera un gran porcentaje de errores de caché . Resulta que es mejor tener varias texturas de diferentes detalles y aplicar al objeto la que sea más adecuada en esta situación. En algunos casos, el aumento en la velocidad de texturizado puede aumentar miles de veces, y la velocidad de visualización de la escena completa en la pantalla, docenas de veces.

Muchos juegos de PC modernos permiten al usuario configurar manualmente la calidad de textura, en la configuración, eligiendo entre rendimiento y calidad. Si la calidad de la textura se establece en "baja", el juego utilizará sus mipmaps (copias pequeñas) en lugar de las texturas originales.

Cómo funciona

Se crea una llamada pirámide MIP  : una secuencia de texturas con una resolución de máximo a 1x1. Por ejemplo: 1x1, 2x2, 4x4, 8x8, 16x16, 32x32, 64x64, 128x128, 256x256, 512x512 y 1024x1024. Cada una de estas texturas se denomina nivel MIP ( eng.  MIP level ) o nivel de detalle ( eng.  level of detail ).

Todas estas texturas tienen la misma imagen. Por lo tanto, la textura mip aumenta el consumo de memoria de video en un tercio:

.

Al aplicar texturas, se calcula la distancia al objeto y el número de textura se encuentra mediante la fórmula:

,

donde resolución  es la resolución de la cámara virtual (la cantidad de píxeles que habrá en un objeto con un tamaño de 1 unidad ubicada a 1 unidad de la cámara), texelsize  es el tamaño del texel en unidades del mundo 3D, dist  es la distancia al objeto en las mismas unidades, mip bias  - un número que le permite seleccionar una textura más o menos detallada que la que da la fórmula.

Este número se redondea a un número entero y se aplica al objeto la textura con el número correspondiente (el cero es el más detallado, el primero es el doble de pequeño, etc.).

Desventajas, soluciones

El consumo de memoria de video aumenta en un tercio (sin embargo, a cambio, aumenta la velocidad de dibujar objetos en la pantalla). Sin embargo, los tamaños típicos de memoria de video a principios de la década de 2010 son de 1 a 3 GB. Además, si el objeto está lejos, su textura detallada se puede cargar en la RAM .

El texturizado MIP no resuelve el problema de las texturas que se encuentran en un ángulo agudo para el espectador (como una carretera en un simulador de automóvil ). Para tales texturas, la resolución a lo largo de un eje es muy diferente de la resolución a lo largo del otro y, por ejemplo, la imagen es claramente borrosa a lo largo del eje X, mientras que el parpadeo es visible a lo largo del eje Y, que es característico de una textura de gran tamaño. resolución. Hay varias formas de resolver esto a la vez (empezando por la de menor calidad):

  1. Establezca el valor de sesgo de mip más cómodo en el controlador de video  , un número que es responsable de elegir el número de textura en la pirámide. Si es negativo, el controlador de video toma texturas más detalladas, si es positivo, menos detalladas.
  2. Muchos juegos establecen el sesgo mip adecuado para diferentes tipos de objetos. Por ejemplo, en Live for Speed , el usuario establece el sesgo mip por separado para automóviles, obstáculos y carreteras.
  3. Aprovecha el filtrado anisotrópico  , un método de texturizado que pretende solucionar este problema.

Se ve un límite claro entre los niveles de MIP. Esto se resuelve mediante filtrado trilineal .

Si hay piezas de diferentes superficies en la misma textura, debe hacer concesiones y espacios que excedan 1 píxel del nivel MIP más "viajero". Este nivel no es necesariamente el más alto (por ejemplo, en Dota 2 vemos tanto un héroe detallado en el menú como uno en miniatura en el juego); por lo tanto, estas brechas se prescribieron explícitamente en el manual de modelado de Dota 2 .

Alternativas

Los renderizadores de alta calidad pueden usar una tabla de suma parcial . Esto brinda la más alta calidad de imagen (cuatro accesos a la tabla pueden promediar el color sobre cualquier rectángulo), pero necesita tipos más amplios para almacenar las sumas. En consecuencia, la tabla de sumas parciales ya no es un tercio, sino al menos dos veces. La tabla de suma parcial no resuelve los problemas de errores de caché.

Enlaces