Mipmap
Conjunto precalculado de versiones de una textura con resolución progresivamente menor, utilizado por las GPU para reducir el aliasing y mejorar el rendimiento de renderizado cuando las texturas se visualizan a tamaños reducidos.
Un mipmap (del latín "multum in parvo") es una estructura de datos introducida por Lance Williams en 1983 que almacena una textura en múltiples niveles de resolución. Cada nivel tiene la mitad de las dimensiones del anterior, continuando hasta 1x1.
- Estructura de niveles: El nivel 0 es la resolución completa (ej. 1024x1024), el nivel 1 es 512x512, y así sucesivamente. La sobrecarga total de memoria es aproximadamente del 33% (4/3 del tamaño original)
- Selección de LOD: La GPU selecciona el nivel mip óptimo basándose en la cobertura de píxeles en pantalla. Los objetos distantes usan niveles inferiores, reduciendo aliasing y ancho de banda
- Filtrado trilineal: Interpolación bilineal dentro de dos niveles adyacentes, luego mezcla lineal entre ellos. Elimina las costuras visibles en las transiciones de nivel
- Filtrado anisotrópico: Muestreo no uniforme basado en el ángulo de visión para superficies oblicuas más nítidas. Controlado mediante
GL_MAX_TEXTURE_MAX_ANISOTROPY
Se genera con glGenerateMipmap(GL_TEXTURE_2D) en OpenGL o GenerateMips() en DirectX. Unity y Unreal habilitan mipmaps por defecto. El compromiso: desactivarlos ahorra un 33% de VRAM pero introduce parpadeo en superficies distantes.