Normal Maps, ¿Ilusiones Ópticas?
Seguro que cuando jugamos a un videojuego y nos fijamos en el detalle de un modelo nos quedamos sorprendidos por la capacidad de realismo que hemos conseguido lograr, sobre todo en las últimas décadas, pero pocas veces nos paramos a pensar en cómo se consiguen ciertos detalles.
El día de hoy trataremos un tema ligeramente complejo de ejecutar, aunque fácil de entender, los Normal Maps.
¿Que son los mapas de normales?
Los normal maps son una textura 2D puramente RGB que aplicadas de la manera correcta en un modelo consiguen simular de manera exacta hendiduras, superficies suavizadas o pequeñas elevaciones sobre una malla 3D sin coste de geometría.
Los 3 colores representados en un mapa de normales, rojo, azul y verde, representan a los 3 ejes de coordenadas X, Y y Z y contienen información sobre la elevación o la profundidad de una malla. El color rojo representa el eje X, el color verde el eje Y y el color azul el eje Z.
El programa es capaz de interpretar estos 3 colores y aplicar la información que contienen para generar un efecto de relieve sobre la malla.
Todos los modelos 3D de un videojuego tienen un mapa de normales, salvo casos muy concretos, y aunque estos pasan desapercibidos ya que no aportan una información de color sobre el modelo, son totalmente necesarios para un acabado perfecto.
¿Cómo se obtienen los mapas de normales?
Para generar un mapa de normales, es necesario tener a nuestra disposición 2 modelos 3D, uno en baja resolución con una cantidad limitada de polígonos, y otro en alta resolución cuya densidad de malla depende del nivel de detalle que se quiera obtener.
El modelo en baja resolución contienen la información de la maya base, almacenada en las UV que son la distribución 2D de los polígonos que la conforman, mientras que el modelo en alta resolución contienen la información mas pequeña. El tratamiento que recibe el modelo de alta resolución depende de muchos factores, pero normalmente sobre el se suelen utilizar técnicas como el esculpido, o un suavizado de bordes con cortes trasversales que sirven de contención o chamfer.
Una vez que el modelo de alta y baja resolución están listos, se importan ambos en un programa capaz de convertir el detalle del modelo en alta en un mapa 2D sobre el modelo en baja. Hay muchos programas capaces de realizar esta operación (Marmooset, substance painter, xNormal...).
Además del mapa de normales, esta operación también calcula la curvatura, el ambient oclusion...
Con todos estos mapas 2D podemos importar el modelo en baja en el programa deseado y comenzar a texturizarlo
Comentarios
Publicar un comentario