Quizás una de las tareas más comunes hoy en día realizadas por un look-dev artist, ya que los texture artists utilizan tanto Zbrush como Mari para esculpir y pintar los mapas de desplazamiento de prácticamente cualquier asset.

En esta ocasión, lo presento en modo video tutorial. En mi blog en inglés tienes la versión corta escrita.

Máscaras RGB seguramente sean uno de los mapas mas utilizados y sin duda mas prácticos que podemos utilizar en un estudio de efectos visuales, o en cualquier industria relacionada con computer graphics.

Las utilizamos para mezclar shaders durante el proceso de look-development, las utilizamos como IDs para composición y color grading, y las utilizamos como utility passes para controlar motion blur, depth, etc.

El mayor beneficio de utilizar máscaras RGB es que nos ahorramos muchísimos mapas, ya que podemos tener 4 mascaras en un solo archivo: RGB+A y esto es muy importante, especialmente cuando trabajamos con hero assets, que generalmente tienen decenas y decenas de máscaras e IDs.

Veamos como utilizar este tipo de máscaras en el software que más utilizo: Maya, Clarisse, Mari y Nuke.

Maya

  • Utilizo un surface shader y un layered texture conectado a su input.
  • En el layered texture conecto todos los shaders que quiera mezclar.
  • Y para derivar cada uno de los canales de mi máscara RGB utilizo un nodo remapColor.

Esta es la mascara que estoy utilizando.

  • En cada uno de los nodos remapColor hay que indicarle que canal quieres utilizar.
  • Cada uno de los remapColor sirve como máscara para cada uno de los shaders.

Clarisse

  • En Clarisse utilizo un nodo reorder.
  • En la opción channel order podemos indicar que canal queremos utilizar del mapa.
  • Para transformarlo en máscara pura (alpha) basta con indicarlo también en el channel order.

Mari

  • Basta con utilizar un layer adjustment llamado shuffle e indicar que canal queremos utilizar.

Nuke

  • Podemos utilizar un nodo shuffle e indicar el canal.
  • Tambien podemos utilizar un nodo keyer y seleccionar el canal en el parámetro operation.

Cuando subdividimos modelos en Clarisse para renderizar displacement maps, el software subdivide de forma automática la geometría y las UVs. En algunas ocasiones esto puede ser contraproducente, porque necesitemos renderizar las UVs sin subdividir.

Generalmente esto se da por requerimientos específicos del asset en que estamos trabajando o por las necesidades propias de la producción. También depende en sobremanera de como hayamos extraído los mapas de desplazamiento en Zbrush o cualquier otro software de esculpido.

Se no necesitas subdividir las UVs, en primer lugar has de desactivar la opción en Zbrush SmoothUV.
Una vez en Clarisse, cambia la opción UV Interpolation Smooth a Linear.

Por defecto Clarisse subdivide la geometría y las UVs.

Cambiando UV Interpolation a Linear las UVs no se subdividen.

Smooth render.

Linear render.

Posted
AuthorXuan Prada

Esta es una guía rápida para configurar displacements extraídos desde Zbrush en Clarisse.
Normalmente, lo más importante es extraer de forma adecuada el displacement en Zbrush, si no sabes como hacerlo de forma correcta, échale un ojo a este post.

Una vez extraídos los mapas de desplazamiento, sigue este pequeño tutorial.

  • Para mantener todo bien organizado, voy a meter el material relacionado con este mini-tutorial en un nuevo context llamado "hand".
  • He importado la geometría base y creado un nuevo standard shader con un diffuse gris.
  • Estoy utilizando un set-up IBL básico.
  • Ahora he creado un map file y un displacement node. He renombrado todo para mantener el orden.
  • Selecciona la texture de desplazamiento para la mano y selecciona la opción raw/linear, ya que estamos utilizando mapas de 32 bits .exr
  • En el displacement node configura el bounding box. Empieza con un valor de 1 y a ver que tal responde. Ajústalo en consonancia.
  • Añade el displacement map al front value. Deja el valor como 1m (esta unidad es una unidad global, no es realmente 1 metro).
  • Deja el offset a 0 ya que estamos utilizando 32 bits.
  • Finalmente asocia el displacement node a la geometría.
  • Y ya está. Lanza un render y todo debería funcionar bien.

Render con desplazamiento.

  • Si aún utilizas 16 bits displacement maps, tendrás que utilizar un valor de 0.5 en el offset y jugar con el valor del desplazamiento hasta que consigas el resultado esperado.

Mari es la herramienta estándar para texturizado en producciones de VFX, por muchas razones, pero sobre todo, porque creo que es la única herramienta de texturizado que ofrece gestión de espacios de color. Y en entornos de producción de VFX donde los LUTs marcados por el cinematógrafo juegan un papel crucial, trabajar sin gestión de espacios de color es como trabajar a ciegas. Por eso, Mari y Nuke son prácticamente las únicas herramientas que utilizamos para texturizado. (salvo Zbrush para displacement maps, pero ahi la gestión de color no influye).

De momento la gestión de color en Mari no es completa, es decir, no es como Nuke donde puede controlarse el espacio de color para la entrada y salida de imágenes. Así que podríamos decir que Mari es un software con espacio de color agnóstico.
Pero Mari ofrece un control del espacio de color de post-proceso, a través de dos variantes, Mari Colour Profiles y OpenColorIO (OCIO)En versiones anteriores Mari no ofrecía OCIO y los Mari Colour Profiles eran la única forma de gestionar el color. Ahora, con OCIO implementado, solo puedo recomendar utilizar esta última forma de gestión de color.

Como texture artists, generalmente trabajaremos con imágenes Float-Linear y 8-bit Gamma 2.2 Siempre que podamos trabajaremos con Float-Linear aunque en ocasiones sea inevitable trabajar con 8-bits.

  • He cargado en Mari dos imágenes, una es Linear .exr 32-bits y otra es Gamma 2.2 .tif
  • Con el espacio de color desactivado, podemos checkear ambas imágenes en viewport y comprobar la evidente diferencia entre ambas.
  • Del mismo modo que si lo hiciésemos en Nuke.
  • Una forma de gestionar espacios de color, es a través de LUTsUtilizando el Color Space podemos seleccionar el LUT del proyecto, y después cambiar el Display Device para nuestro monitor calibrado (o dejarlo default si no tenemos perfil de calibración para nuestro monitor). Podemos también cambiar el Input Color Space en función de si 
    estamos utilizando imágenes Linear o sRGB y finalmente cambiar el View 
    Transform a la salida que necesitemos, generalmente Gamma2.2, Film, etc.
  • Como alternativa final, y recomendada, podemos utilizar un archivo OCIO, que debemos cargar en el inicio de Mari, y generalmente será proporcionado por la productora, de mano del cinematógrafo o equipo de DI.
    Después 
    simplemente cambiar el Display Device a nuestro monitor calibrado, el 
    Input Color Space a Linear o Gamma 2.2 en función del material de entrada que tengamos y finalmente el View Transform a Gamma 2.2, Film o lo que necesitemos.
  • De este modo, nuestras texturas siempre estarán en consonancia con el render y con la composición, ya que tanto Maya/Katana/Clarisse y Nuke podrán cargar los mismos ficheros OCIO y podremos visualizar el espacio de color deseado en todos esos software.