Este post es una traducción del original escrito en Marzo del 2010 en el blog de Xuan Prada.
Cuando comenzamos la tarea de texturizado de cualquier asset, especialmente aquellos que forma parte de entornos, como bien pueden ser edificios, objetos o vehículos, uno de los primeros pasos que solemos hacer tras el UV mapping, es el bake de algunos shaders o texturas procedurales.
Estos bakes, no son otra cosa que pasar la información de un shader o textura procedural al espacio de UV del objeto que estamos texturizando. De esta forma, podemos abrirlo en Photoshop o cualquier otro software y utilizarlo como punto de partida para crear nuestrar texturas.
Uno de los mapas mas comunes utilizados con esta técnica, es el mapa de suciedad o dirtmap. Para ello utilizamos un shader de ambient occlusion, que como sabéis ocluye las zonas de contacto entre geometrías, poniendo color negro donde hay contacto o cercanía y color blanco donde no la hay.
Esta es una forma lógica de crear suciedad, ya que por norma general, la suciedad tiende a acumularse en aquellas zonas donde hay contacto o cercanía entre objetos, como en los rincones, esquinas, en la zona de contacto entre un armario y una pared, etc.
Con el paso del tiempo, me he dado cuenta de que los mapas de ambient occlusion pueden resultar un poco aburridos, o simplemente ficticios, ya que son demasiado perfectos, y en la vida real, la suciedad tiende a seguir diferentes patrones. Así que una sencilla forma de crear mapas de suciedad mas reales o creibles, puede ser mezclando el ambient occlusion con otros shaders procedurales o texturas de bitmap. De esta forma, conseguimos que la suciedad se distribuya de una forma un poco mas aleatoria, creando un efecto más natural y orgánico.
Estos son los pasos necesarios para crear dirtmaps mejorados.
- Partiendo de un shader tipo constant o cualquier otro que no le afecte la iluminación mezclamos mediante un mix2colors, blendColors o Mixer.
- En en canal 1 de la mezcla utilizamos un mapa. Puede ser prodecural o bitmap. En este ejemplo estoy utilizando un bitmap previamente “tileado”.
- En el canal 2 de la mezcla utilizamos un color blanco.
- En el canal de máscara de la mezcla utilizamos un ambient occlusion previamente configurado.
Con esto conseguimos que el mapa de bits o procedural esté enmascarado por el ambient occlusion, creando suciedad en las zonas lógicas y menos expuestas, pero con la variación dada por el mapa.
Las claves para obtener buenos dirtmaps base, son la configuración del ambient occlusion y la trama del mapa de bits o procedural.
Por supuesto, esto es solo el punto de partida, después toca llevarse el mapa a Photoshop u otra herramienta y pintar a mano.