Introducción

Mapeado con mapas de normales

Los mapas de normales o “normal bump”, al igual que los mapas de relieve (bump), se aplican para simular relieve (detalles), en los objetos que no lo tienen. Este es un efecto de cámara, que simula el desplazamiento de los píxeles – solamente en el render -, según sea la posición de la cámara. Estos mapas cumplen la misma función que un mapa de relieves, pero almacenan mucha más información, pues poseen tres canales de colores (RGB), al contrario de los mapas de relieves, que trabajan en función de una escala de grises (un canal). Utilizar tres canales, no implica el uso de algún formato de archivo especial, sino sólo un mapa de bits común, en el que es posible almacenar, para cada píxel, la información de su orientación según la normal que posea.
Utilizar mapas de normales es un método para añadir detalles a un modelo de pocos polígonos. Su aplicación es simple, ya que se utilizan de la misma manera que cualquier otro mapa en un software de desarrollo 3D.

Usos y funcionalidad

El objetivo de utilizar mapas de normales es reducir el número de polígonos (y tiempo) que se necesitan para modelar un objeto complejo. Normalmente se utilizan en aplicaciones que se ejecuten en tiempo real (juegos, generalmente) pues alivianan la carga del procesador. Sin embargo, puede ser bastante útil, en el caso de escenas estáticas o animaciones.
En el caso de series animadas, donde es necesario reducir tiempos de render y donde se puede prescindir de algunos detalles en la animación, es un método muy rápido para generar escenas y backgrounds.
En el caso de escenas estáticas, donde sí se necesite detalle, se puede dar un ambiente mucho más realista (a los objetos en los que, normalmente, se utilizaría un mapa de relieve), a través del uso de mapas de normales, y más aún, al combinarlos con mapas de desplazamiento.

Qué es una normal

La normal de la cara de un objeto, corresponde a un vector tridimensional que determina la dirección en que ella apunta, siendo este, perpendicular a la cara (FIG. 24.1). En el caso de un punto (o píxel), la normal corresponde al vector perpendicular a un plano imaginario tangente al el (FIG. 24.2).

Como el mapa de bits de normales corresponde a una gradiente de 3 colores (RGB), es posible almacenar información tridimensional de la normal de cada píxel. Los colores que se almacenan en la imagen corresponden a la gama de los rojos, verdes y azules. Sus rangos varían entre 0 y 255, y corresponden a valores entre -1.0 y 1.0, los cuales son interpretados para saber el sentido de las normales de cada píxel. El color rojo representa al eje X, el verde representa al Y, y el azul al Z.Aunque en la realidad todos los píxeles de una cara plana apuntan hacia el mismo lado, el archivo de normal bump define hacia donde apuntan (supuestamente) cada uno de los píxeles. Esto permite simular relieve, pues cada píxel recibe luz, dependiendo de su orientación, por lo tanto, si el objeto es iluminado de izquierda a derecha, recibirán luz solamente los píxeles cuyas normales apunten hacia la izquierda, generando la sensación de relieve.

Proceso de implementación

Para la creación de mapas de normales se pueden utilizar muchos métodos, desde los análogos (cámara fotográfica convencional) hasta los digitales (3D).
Muchos de los software de desarrollo 3D incluyen herramientas para crear mapas de normales a partir de los modelos existentes, con los cuales se puede obtener excelentes resultados, modelando objetos con muchos detalles (y polígonos), para luego aplicárselos a modelos de baja poligonalidad.
Sin embargo, se realice automáticamente o no, todos los métodos se basan en iluminar el objeto en ángulo recto, por cada uno de los ejes (XYZ), capturar, aplicar correcciones de color RGB, y fusionar todo en una sola imagen (FIG. 24.3).

Mapeado con mapas de normales

Existen también otras herramientas, como el plugin que ofrece Nvidia® para crear mapas de normales a partir de imágenes de relieve (http://developer.nvidia.com/object/photoshop_dds_plugins.html). Si bien estos métodos son mucho más imprecisos que generarlos a partir de un modelo tridimensional o uno real, sirven en muchos casos, sin mayores complicaciones.
Para la implementación en los programas de desarrollo 3D, se debe aplicar el mapa al material seleccionado, como un mapa de normal bump (depende de cada software el método de implementación – referirse a la ayuda del software). Incluso, en algunos casos, puede ser necesario especificar las coordenadas UVW del material en el objeto para una correcta visualización.

Al ver el objeto con el mapa aplicado, se podrán distinguir correctamente los relieves, sin embargo, al ver los contornos del objeto (desde algún ángulo específico) se podrá ver que el relieve es solamente un efecto, pues el objeto no está levantado realmente. En estos casos, es posible aplicar un mapa de desplazamiento, el cual generará relieves reales, aumentando su calidad, pero también los tiempos de render.
Como el mapa de normales almacena información para cada una de las caras del modelo (y por consecuencia, permite diferenciar unas de otras), es posible exportarlo con la finalidad de utilizarlo en software de retoque fotográfico, para aplicarle efectos, correcciones de colores, etc., en la gama de colores que represente el lado que se quiera modificar. Por ejemplo, se puede utilizar para agregar brillos en la parte superior de la cabeza de un personaje, o en todas las partes de su cuerpo que apunten hacia arriba.

INFORMACIÓN ADICIONAL

Existen herramientas gratuitas, como “Displacement Map Creator”, de Ryan Clark (descargable desde http://zarria.net/heightmap/heightmap.html) que permiten crear mapas de desplazamiento de manera automática a partir de imágenes.
Ryan Clark, en su tutorial “Normal Map Photography” (http://zarria.net/nrmphoto/nrmphoto.html), explica como generar mapas de normales de manera análoga, a partir de cámaras fotográficas y luces corrientes.

Be Sociable, Share!