Este post es una traducción del original escrito en Mayo del 2013 en el blog de Xuan Prada.

Algo muy común cuando estas texturizando cualquier asset, es la utilización de máscaras.
Estas pueden ser pintadas en un software como Mari, Zbrush o Mudbox. o también pueden generarse en un software 3D convencional mediante shaders procedurales o cualquier otra técnica.

Estos shaders o texturas procedurales generados fuera de Mari, puede que nos interese importarlos dentro de Mari para utilizarlos a la hora de crear nuestros mapas de textura finales. Como máscaras de capa, para poner encima de colores en diferentes modos de fusión, etc.

Hace tiempo me enviaron la versión alpha de Mari 2.0 y me encontré que importar máscaras generadas en otros softwares era algo bastante complejo. No complejo, si no rebuscado, es la típica cosa que alguien tiene que decirte como se hace, o perderás un buen tiempo intentando encontrarlo.

Eso fue lo que me paso a mi, perdí bastante tiempo para encontrar esa opción, así que aquí abajo os dejo una descripción para resolver esta sencilla duda, y no tengáis que echar un buen rato para descubrirlo por vosotros mismos.

  • Crea una nueva capa e importa tu máscara.
  • Añade una máscara reveal all a la capa que quieres enmascarar con tu máscara importada.
  • Crea un mask group.
  • Doble click en el icono de mask group para abrir la ventana donde esta ubicada la máscara.
  • Arrastra tu máscara previamente importada a la ventana de mask group.
  • Si quieres puedes borrar la máscara creada por defecto.
8700625785_3d040e69da_o.jpg
  • Puedes invertir la máscara si es necesario, o a nadir cualquier otro ajuste de capa, nuevas capas de máscara encima o lo que necesites.

Este post es una traducción del original escrito en Julio del 2011 en el blog de Xuan Prada.

  • Crea un nuevo proyecto en Mari.
  • Crea un nuevo canal (channel) llamado "base" y ajusta el tamaño, y espacio de color.
  • Click derecho encima del "base channel" para importar un mapa de bits como textura base.
  • El cubo debería de aparecer con la textura azul aplicada.
  • Crea un nuevo shader llamado "blueCube" y elige como texture el "baseChannel" que hemos creado anteriormente.
  • Crea un nuevo canal llamado "underPaint".
  • Ajusta tamaño y color space
  • Botón derecho en el canal "underPaint" e importa una textura de bits para utilizarla como base debajo de la pintura.
  • Puedes ir moviéndote entre canales para ver una textura u otra.
  • Crea otro canal llamado "underPaintMask" que será la máscara que revele la textura bajo la pintura.
  • Ajusta el tamaño y el color space
  • En este momento puedes pintar tu máscara en el canal "underPaintMask" o importar una que hayas creado anteriormente.
  • Puedes chequear la textura en viewport seleccionando el canal.
  • Selecciona el shader "blueCube" y haz click en "add a new shader module".
  • Selecciona "masked diffuse" de la lista. 
  • Como base texture selecciona el canal "underPaint".
  • Como máscara selecciona el canal "underPaintMask". 
  • Invierte la máscara. 
  • Puedes añadir tantas capas como necesites, solo tienes que crear previamente los canales con la información de color y con la información de máscara.
  • Para este ejemplo, vamos a añadir otra capa con óxido. 
  • Crea un nuevo canal llamado "rust". 
  • Ajusta tamaño y espacio de color. 
  • Importa un mapa de textura bitmap de óxido.
  • Crea un nuevo canal llamado "rustMask".
  • Ajusta tamaño y espacio de color

 

  • Vuelve a la pestaña "shaders" y selecciona el shader "blueCube".
  • Añade un nuevo "shader module"  "masked diffuse" de la lista.
  • Selecciona el canal "rust" como "base texture" y "rustMask" como "mask texture".
  • Invierte la máscara. 
  • Selecciona el canal "rustMask" y pinta en las zonas donde quieras tener óxido.
Posted
AuthorXuan Prada

Este post es una traducción del original escrito en Enero del 2011 en el blog de Xuan Prada.

A raíz de mi post sobre la utilización del ambient occlusion  invertido en Maya, mucha gente me ha escrito pidiéndome un tutorial paso a paso sobre como conseguir el mismo efecto en 3D Max.

Instalación 

  • Descarga los Binary Alchemy shaders para 3D Max.
  • Copia los archivos ".dll" aquí “3ds Max 2010\mentalray\shaders_3rdparty\shaders”.
  • Copia los archivos ".mi" aquí “3ds Max 2010\mentalray\shaders_3rdparty\include” .
  • Edita el archivo “3rdparty.mi” localizado aquí "3ds Max 2010\mentalray\shaders_3rdparty".
  • Tu archivo "3rdparty.mi" debería ser algo similar a esto. 

 

 

3rdparty.mi modificado.

Utilización 

  •   Crea un matte/shadow shader y desactiva "receive shadows" y "use ambient occlusion".
  •  En el slot “camera mapped background” conecta el shader “BA_color_raylength”.
  • Juega con el spread y far output para controlar la apariencia del ambient occlusion.
  • Una vez renderizado, deberías obtener un resultado similar a este. 
  • Mezcla el “BA_color_raylength” con otros mapas procedurales o mapas de bits para obtener un resultado más realista.

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.

Posted
AuthorXuan Prada

Este post es una traducción del original escrito en Enero del 2011 en el blog de Xuan Prada.

En ocasiones, es muy útil generar ambient occlusion invertidos, para conseguir un interesante punto de partida a la hora de pintar nuestros mapas de suciedad.

El shader Vray dirt es perfecto para este propósito, pero, si no trabajas con Vray, es muy sencillo conseguir el mismo resultado utilizando Mental Ray y los shaders Binary Alchemy.

  • Antes de todo, necesitamos instalar los shaders Binary Alchemy. Algunos paquetes son gratuitos y otros son de pago.
  • Asigna un Surface shader a tu asset y conecta el shader BA_color_raylength al canal diffuse.
  • Cambia el tipo de rayo a Inverted Normal.

 

Si renderizamos en este punto, obtendremos un ambient occlusion invertido. 

  • Podemos combinar este shader con cualquier otro shader procedural o mapa de bits, para crear una máscara más irregular, interesante y por lo tanto realista. Un blend to colors o layered shader sería más que suficiente.
  • Cuando el resultado sea de nuestro agrado, podemos hacer un bake del shader resultante para llevarnos las texturas a Photoshop o cualquier otro software. 
Posted
AuthorXuan Prada

Este post es una traducción del original escrito en Noviembre del 2010 en el blog de Xuan Prada.

Este shader es completamente procedural, muy fácil de configurar y rápido de renderizar.
Es muy básico, pero puede dotar a los props y escenarios de una mayor riqueza, para que no parezcan tan aburridos, metiéndoles una ligera capa de polvo en su superficie.
Muy útil para localizaciones donde hay muebles viejos, cosas almacenadas, etc.

Propongo dos métodos diferentes de conseguir el mismo efecto.

  1. La versión Dust_material_vray_v001 es más completa y más real, pero el tiempo de render es mayor.
  2. La versión Dust_material_vray_v002 tiene un tiempo de render menor, pero es menos real y menos atractiva visualmente.

De todas formas conviene conocer la construcción de las dos variantes, ya que en muchas ocasiones necesitamos hacer versiones de alta calidad y baja calidad de los shaders, en función de la distancia a cámara de los objetos que los utilicen, o por cualquier otro motivo de producción.

  • Dust_material_vray_v001

El material se compone de un blend que mezcla dos shaders a través de una máscara.

 

El primer shader es el del objeto que estemos texturizando. En este caso lo he llamado Teapot y es un simple shader con reflexión similar al plástico. Podría ser tan complejo como el objeto requiriese.

 

El segundo shader corresponde al polvo y lo he llamado Dust. Es un shader básico sin ningún tipo de reflexión ni brillo specular, ya que las zonas que están cubiertas de polvo deberían de tapar la superficie del objeto y ser prácticamente mates.

También podemos añadir un ligero noise como bump para simular la rugosidad creada por el polvo.

La máscara es un falloff del tipo towards/away y en dirección vertical (en el caso de 3D Max, en el eje Z).

Jugando con la Mix-curve controlamos la apariencia de la mezcla.

 

En el color blanco del falloff añadimos un noise para simular la variación granulada del polvo.

 

La mejor forma de ajustar el material, es ir probando cada shader y cada parámetro por separado.

 

Tetera con el shader original.

Tetera con el shader de polvo.

Máscara que controla la mezcla del shader original y el shader de polvo. 

Resultado final.