Este post es una traducción del original escrito en Enero del 2011 en el blog de Xuan Prada.
Requerimientos:
- 3D Max
- Soulbourn scripts
- Warp texture script
- Good UV mapping
Antes de empezar, asegúrate de que todos tus assets tienen un UV mapping perfecto, sin distorsiones ni overlappings.
Para obtener mejores resultados, es necesario tener una buena resolución en cuanto a geometría se refiere, especialmente en los bordes y esquinas.
No es necesario subdividir el asset original, basta con duplicarlo de forma temporal y subdividirlo, posteriormente, podremos borrarlo.
Antes de subdividirlo, es buena idea añadir un bevel en los bordes.
Todos los objetos deben ser editable poly para que el script funcione.
Con el objeto seleccionado, ejecutamos el script corner edge to vertex map.
Para obtener unos buenos resultados, tenemos que jugar con los parámetros low and high angle, especialmente reduciendo la intensidad de low angle cuanta más geometría tenga el asset.
El siguiente paso, es distorsionar la máscara generada mediante vertex color, de esta forma crearemos una máscara un poco mas irregular y realista.
Para ello, utilizaremos el script warp texture.
En un shader standard conectamos el warp texture al canal diffuse.
En el slot target conectamos un vertex color. 3D Max ponde por defecto el vertex color que hemos generado previamente utilizando el script corner edge to vertex.
En el slot warp conectamos un noise procedural cuyos parámetros dependerán del tamaño de la escena y del asset.
Si renderizamos en este momento, el resultado es decente, pero debemos definir mejor la apariencia de la máscara.
Si ponemos un output en el vertex channel, podemos enfatizar el resultado de la máscara, tocando la curva.
También podemos jugar con el output del noise.
Finalmente podemos jugar con el warp amount para que la máscara sea aún más irregular.
En este punto, lo más inteligente es hacer un bake de la máscara, e utilizarla en Photoshop o cualquier otro software.
Render final de la máscara y render de ejemplo. mezclando un par de shaders.