stringtranslate.com

mapa mip

En gráficos por computadora , los mapas mip (también mapas MIP ) o pirámides [1] [2] [3] son ​​secuencias de imágenes optimizadas y precalculadas , cada una de las cuales es una representación de resolución progresivamente menor de la anterior. La altura y el ancho de cada imagen, o nivel, en el mapa MIP es un factor de dos más pequeño que el nivel anterior. Los mapas Mip no tienen por qué ser cuadrados. Su objetivo es aumentar la velocidad de renderizado y reducir los artefactos de alias . Se utiliza una imagen de mapa MIP de alta resolución para muestras de alta densidad, como objetos cercanos a la cámara; Se utilizan imágenes de menor resolución ya que el objeto parece más lejano. Esta es una manera más eficiente de filtrar ( minimizar ) una textura que muestrear todos los texels en la textura original que contribuirían a un píxel de pantalla ; Es más rápido tomar un número constante de muestras de las texturas filtradas adecuadamente. Los mapas Mipmap se utilizan ampliamente en juegos de computadora 3D , simuladores de vuelo , otros sistemas de imágenes 3D para filtrado de texturas y software GIS 2D y 3D . Su uso se conoce como mipmapping . Las letras MIP en el nombre son un acrónimo de la frase latina multum in parvo , que significa "mucho en poco". [4]

Dado que los mapas MIP, por definición, están preasignados , se requiere espacio de almacenamiento adicional para aprovecharlos. También están relacionados con la compresión de ondas . Las texturas Mipmap se utilizan en escenas 3D para disminuir el tiempo necesario para renderizar una escena. También mejoran la calidad de la imagen al reducir el aliasing y los patrones Moiré que ocurren a grandes distancias de visualización, [5] a costa de un 33% más de memoria por textura.

Descripción general

Imagen que muestra cómo los mapas MIP reducen el alias a grandes distancias.
Imagen que muestra cómo los mapas MIP reducen el alias a grandes distancias (el alias provoca un patrón Moiré en la imagen de la izquierda).

Los mapas Mip se utilizan para:

Origen

Mipmapping fue inventado por Lance Williams en 1983 y se describe en su artículo Pyramidal parametrics . [4] Del resumen: "Este artículo presenta una geometría de muestreo y prefiltrado 'paramétrico piramidal' que minimiza los efectos de alias y asegura la continuidad dentro y entre las imágenes de destino". La pirámide a la que se hace referencia se puede imaginar como un conjunto de mapas MIP apilados uno frente al otro.

La primera patente emitida sobre Mipmap y generación de texturas fue en 1983 por Johnson Yan, Nicholas Szabo y Lish-Yann Chen de Link Flight Simulator (Singer). Utilizando su enfoque, se podrían generar texturas y superponerlas en superficies (curvilíneas y planas) de cualquier orientación y se podría hacer en tiempo real. Se podrían modelar patrones de textura que sugieran el material del mundo real que debían representar de manera continua y sin aliasing, proporcionando en última instancia un nivel de detalle y transiciones graduales (imperceptibles) de nivel de detalle. La generación de texturas se volvió repetible y coherente de cuadro a cuadro y permaneció en la perspectiva correcta y la ocultación apropiada. Debido a que la aplicación de texturas en tiempo real se aplicó a los primeros sistemas CGI de simuladores de vuelo tridimensionales, y la textura era un requisito previo para gráficos realistas, esta patente fue ampliamente citada y muchas de estas técnicas se aplicaron más tarde en computación gráfica y juegos a medida que las aplicaciones se expandieron a lo largo del tiempo. años. [9]

El origen del término mipmap es una inicial de la frase latina multum in parvo ("mucho en un espacio pequeño") y mapa, modelado en mapa de bits. [4] El término pirámides todavía se usa comúnmente en un contexto SIG . En el software SIG, las pirámides se utilizan principalmente para acelerar los tiempos de renderizado.

Mecanismo

Ejemplo de almacenamiento de imágenes mipmap: la imagen principal de la izquierda va acompañada de copias filtradas de tamaño reducido.

Cada imagen de mapa de bits del conjunto de mapas MIP es un duplicado reducido de la textura principal , pero con un cierto nivel reducido de detalle. Aunque la textura principal aún se usará cuando la vista sea suficiente para representarla con todo detalle, el renderizador cambiará a una imagen de mapa MIP adecuada (o, de hecho, interpolará entre las dos más cercanas, si el filtrado trilineal está activado) cuando la textura sea visto desde lejos o en un tamaño pequeño. La velocidad de renderizado aumenta ya que la cantidad de píxeles de textura ( texels ) que se procesan por píxel de visualización puede ser mucho menor para obtener resultados similares con las texturas de mapas MIP más simples. Si se utiliza un número limitado de muestras de textura por píxel de visualización (como es el caso del filtrado bilineal ), los artefactos se reducen ya que las imágenes del mapa MIP ya están suavizadas . La reducción y el aumento de escala también se hacen más eficientes con los mapas mip.

Si la textura tiene un tamaño básico de 256 por 256 píxeles, entonces el conjunto de mapas mip asociados puede contener una serie de 8 imágenes, cada una de un cuarto del área total de la anterior: 128×128 píxeles, 64×64, 32×32 , 16×16, 8×8, 4×4, 2×2, 1×1 (un solo píxel). Si, por ejemplo, una escena representa esta textura en un espacio de 40×40 píxeles, entonces se puede utilizar una versión ampliada de 32×32 (sin interpolación trilineal ) o una interpolación de 64×64 y 32×32. Se utilizarían mapas mip (con interpolación trilineal). La forma más sencilla de generar estas texturas es mediante promediados sucesivos; sin embargo, también se pueden utilizar algoritmos más sofisticados (quizás basados ​​en el procesamiento de señales y transformadas de Fourier ).

Al mostrar cada canal de color de cada nivel de un mapa MIP RGB como un plano separado (izquierda), se demuestra que todo el mapa MIP forma un cuadrado de 4 veces el área. Como cada plano requiere 13 del almacenamiento, los mapas mip requieren 43 de la memoria; es decir, 13 ≈ 33% más.

El aumento en el espacio de almacenamiento requerido para todos estos mapas MIP es un tercio de la textura original, porque la suma de las áreas 1/4 + 1/16 + 1/64 + 1/256 + ⋯ converge a 1/3. En el caso de una imagen RGB con tres canales almacenados como planos separados, se puede visualizar que el mapa MIP total encaja perfectamente en un área cuadrada dos veces más grande que las dimensiones de la imagen original en cada lado (dos veces más grande en cada lado son cuatro veces el área original: un plano del tamaño original para cada uno de rojo, verde y azul hace tres veces el área original, y luego, dado que las texturas más pequeñas toman 1/3 del original, 1/3 de tres es uno, por lo que ocupará el mismo espacio total que solo uno de los planos rojo, verde o azul originales). Esta es la inspiración para la etiqueta multum in parvo .

Filtrado anisotrópico

Cuando una textura se ve en un ángulo pronunciado, el filtrado no debe ser uniforme en cada dirección (debe ser anisotrópico en lugar de isotrópico ) y se requiere una resolución de compromiso. Si se utiliza una resolución más alta, la coherencia de la caché disminuye y el alias aumenta en una dirección, pero la imagen tiende a ser más clara. Si se utiliza una resolución más baja, se mejora la coherencia de la caché, pero la imagen queda demasiado borrosa. Esto sería una compensación entre el nivel de detalle (LOD) de MIP y el aliasing frente a la borrosidad. Sin embargo, el filtrado anisotrópico intenta resolver este compromiso muestreando una huella de textura no isotrópica para cada píxel en lugar de simplemente ajustar el MIP LOD. Este muestreo de textura no isotrópico requiere un esquema de almacenamiento más sofisticado o una suma de más capturas de textura a frecuencias más altas. [10]

Tablas de áreas sumadas

Las tablas de áreas sumadas pueden conservar memoria y proporcionar más resoluciones. Sin embargo, nuevamente dañan la coherencia de la caché y necesitan tipos más amplios para almacenar las sumas parciales, que son más grandes que el tamaño de palabra de la textura base. Por lo tanto, el hardware gráfico moderno no los admite.

Ver también

Referencias

  1. ^ "Filtrado de texturas con Mipmaps (Direct3D 9)". microsoft.com . Microsoft.
  2. ^ "Filtrado de texturas con Mipmaps". microsoft.com . Microsoft . 8 de abril de 2010.
  3. ^ "Texturizado de mapa Mip" (PDF) . Consultado el 10 de diciembre de 2019 .
  4. ^ abc Williams, lanza. "Paramétricas piramidales" (PDF) . Archivado desde el original (PDF) el 14 de abril de 2014 . Consultado el 25 de septiembre de 2012 .
  5. ^ "Problema de suavizado y mapeo Mip". texturaingrafías . 2011-12-13 . Consultado el 21 de febrero de 2019 .
  6. ^ "Múltiples niveles de detalle" ( PDF ) .
  7. ^ "Estructura D3D11_SAMPLER_DESC". microsoft.com . Microsoft.
  8. «Deconstruyendo el efecto agua en Super Mario Sunshine» . Consultado el 25 de febrero de 2023 .
  9. ^ Johnson K. Yan, Nicholas S. Szabo, Lish-Yann Chen. "Generación de texturas" (PDF) .{{cite web}}: Mantenimiento CS1: varios nombres: lista de autores ( enlace )
  10. ^ Olano, Marc; Mukherjee, Shrijeet]]; Dorbie, Angus. "Texturizado anisotrópico basado en vértices" (PDF) .