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 descrita por Lance Williams en un artículo de 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 un nivel mip 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. Reduce 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.
GL_MAX_TEXTURE_MAX_ANISOTROPYindica el límite del grado de anisotropía de la implementación
Los números son niveles
Se genera con glGenerateMipmap(GL_TEXTURE_2D) en OpenGL o GenerateMips() en DirectX. El compromiso: desactivarlos elimina la sobrecarga de memoria de aproximadamente el 33% pero introduce parpadeo en superficies distantes.