domingo, 15 de agosto de 2010

¿Qué es un Clipmap?

Un clipmap puede ser definido como una representación parcial de una piramide de mipmaps, que contiene toda la información de textura necesaria en cada frame. El problema es que al tener sólo una porción de la piramide de mipmaps, es necesario tener una buena estrategia de selección de mipmap.


El Clipmap Stack se centra alrededor de lo que se denomina Stack Center. Como cada capa del stack contiene una porción de la imagen original de mayor área, al aplicarlas en una superficie se generan anillos concentricos de resolución decreciente.


Durante el proceso de texturizado, el mejor de los casos ocurre cuando se puede hacer un mapeo 1 a 1 entre los texels y los píxeles.  Basandonos en esto podemos hacer una selección del clip size en función de la resolución de pantalla.

Los niveles más bajos de la piramide de mipmap va a poder estar todo el tiempo en memoria, mientras que los niveles del clipmap stack deben ser dinámicamente actualizados para tener la información necesaria a la hora de renderizar cada frame.

En la primer imagen, los mips azules representan el área mapeada a todo el mundo (toda la superficie), mientras que las verdes son las sub areas que se cargan dinámicamente.

La piramide del clipmap es una pirámide mipmap tradicional, que cubre toda la imagen original.

A continuación se muestra una captura de pantalla del demo de Clipmaps de nVidia, a izquierda se pueden ver los 4 niveles superiores del clipmap. Hay que recordar que cada nivel del clipmap tiene el mismo tamaño. El 1er nivel (la imagen de arriba) es la que menos área de la textura abarca, pero que mayor resolución tiene. A medida que el nivel del stack disminuye, el área que se abarca es mayor, pero a su vez el detalle de la imagen disminuye.


Se puede ver en la imagen de cada uno de los niveles del clipmap que su acceso se realiza toroidalmente.

No hay comentarios:

Publicar un comentario