Una de las opciones más útiles existentes en Clarisse son los shading layers. Pueden utilizarse para diferentes tareas, y además combinarse entre si para crear sistemas de shading complejos. En esta ocasión vamos a ver como utilizar los shading layers para renderizar y crear variaciones de crowd (multitudes) de forma muy rápida, y sobre todo, muy sencilla. Necesitando apenas unos minutos para gestionar el shading y sus variaciones en centenares de personajes.

Este post viene acompañado de un video de alrededor de una hora para los suscriptores del programa elephant vfx pro.
Todos los suscriptores ya habéis recibido un email con toda la información.

  • Lo primero que he hecho, es crear un setup IBL, con un día más bien nublado sin dirección de luz muy marcada.
  • He importado el cache de animación con crowd en un context llamado geometry y también he creado un context donde crearé todos los shaders y texturas.
  • Como se puede observar en la imagen, los caches de animación están completamente desorganizados en la escena, tal cual vienen del paquete de simulación. Gracias a los shading layers podremos asignar fácilmente los correspondientes shaders y texturas, también variaciones de los mismos.
  • Clarisse nos permite asignar shading layers bien por nomenclatura exacta de los assets que van a recibir el shader o bien por localización de los mismos. Por ello, también he creado algunos context adicionales, para explorar ambas metodologías.
  • Gracias a una estructura de shading layers muy simple y a unas reglas básicas, tanto de nomenclatura como de localización, con apenas una docena de shaders podemos renderizar un sistema de crowd complejo en apenas unos minutos de trabajo.
  • En el caso de querer ver en viewport el comportamiento de un shading layer específico, basta con seleccionar el modo previz, apuntar al context donde tenemos los crowd y seleccionar el shading layer.
  • Finalmente subimos el sampling en el raytracer para renderizar la escena con calidad final.

En el siguiente video disponible para suscriptores del programa elephant vfx pro, podéis ver todo el proceso detallado y con explicaciones adicionales, duración alrededor de una hora.

Otro de esos pasos obligatorios cuando intentas trabajar con un nuevo software, es como no, utilizar displacement maps extraídos desde Zbrush.
No hay proyecto de vfx que no los utilice, así que como dicen los ingleses, "it's a must".

Dejo aquí los pasos necesarios para utilizar con éxito este tipo de displacements en Modo.

  • En Zbrush, una vez has terminado de esculpir todos los detalles necesarios en tu modelo, con todas las capas que te interesen activadas, vete al nivel de subdivisión más bajo.
  • Vete al panel Morph Target, click en StoreMT e importa el modelo base que habías importado previamente en Zbrush para esculpir. Si has empezado desde cero en Zbrush en lugar de hacer este paso, simplemente exporta tu personaje en el nivel de subdivision mas bajo como .obj
  • Una vez creado el morph target con el modelo original, verás que este se muestra en viewport. Click en switch morph target para volver a tener activar tu modelo esculpido.
  • Exporta los mapas utilizando multi map exporter. Te recomiendo siempre 32 bits. (o vector displacement en el caso de que así lo necesites).
  • Échale un ojo a mis settings en la captura de pantalla. Lo único que tienes que tener en cuenta es el parámetro scale, que debería ser 1 e intensity que se calculará solo cuando utilices el botón get sale.
  • Chequea los mapas en Nuke y corrige cualquier imperfección que puedas encontrar.
  • Una vez en Modo, importa el asset original, vete al item y activa linear uvs y tantas subdivisiones en render como necesites.
  • Asigna un nuevo shader al asset (tecla m), añade un nuevo texture layer con la textura de displacement y configúralo como displacement effect.
  • Low value y high value deberían ser 0 y 100 respectivamente. Estos valores corresponden al mid-mapping.
  • En las opciones de gamma de la textura, asegúrate de que el valor es 1.0 estamos trabajando en linear workflow y los mapas de desplazamiento scalar no se corrigen.
  • En las opciones del shader, bajo surface normal, utiliza 1m como valor en el parámetro displacement distance. Si trabajas en 32bits este valor debería ser un estandard. (no es oficial, pero me ha funcionado siempre).
  • Finalmente, en las opciones de render, juega con el displacement rate para conseguir mayor calidad. Cuidado porque aumenta drásticamente los tiempos de render. Parámetros entre 0.5 a 1 son bienvenidos. Más abajo de eso, solo para fine displacement para primeros planos. Este parámetro es similar al shading rate de RenderMan.
  • Render para chequear el resultado des displacement.

Se que en algunas ocasiones, puede resultar un tanto complicado hacer que los desplazamientos esculpidos en Zbrush funcionen correctamente en un software 3D.

Puede que los detalles no se vean exactamente igual, que la calidad del desplazamiento no sea la esperada, y un largo etcétera de problemas.

He grabado un vídeo tutorial donde explico los diferentes tipos de desplazamientos que nos podemos encontrar hoy en día.
Como exportar correctamente los mapas de desplazamiento desde un software de esculpido como Zbrush.
Y finalmente, como trabajar en Maya con Vray 2.0 para que el desplazamiento funcione exactamente igual que en Zbrush.

Además de eso, también explico como re-proyectar detalle en Zbrush desde un modelo esculpido a un modelo de producción, listo para render.
Como realizar de forma muy breve UVs en UV Layout.
Y finalmente, todo el proceso de exportación de mapas de 16 bits, 32 bits, vector displacement, y su utilización en Maya y Vray.

Espero que os sirva y podáis aplicarlo en vuestros pipelines personales.
Cualquier duda o sugerencia, dejad un comentario.

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

He hecho un pequeño breakdown de las texturas que normalmente hago cuando trabajo con piel humana.
Digamos que lo mismo que muestro aquí podría extrapolarse para el resto del cuerpo.
Dependiendo de la producción, el pipeline, el motor de render o los shaders, las texturas pueden variar, pero estas son más o menos las genéricas que siempre están.

  • Renders utilizando un set-up neutro para look-dev.
  • Mapas diffuse.
  • Mapas overall.
  • Mapas scatter.

Mapas displacement.

  • Mapas fine displacement.
  • Mapas specular.

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

Cuando trabajamos con linear workflow y entornos HDRI, no importa el paquete 3D o el motor de render, siempre resulta difícil mantener la consistencia entre texturas y backplates. En ocasiones son demasiado oscuras, o lavadas, etc.

El problema generalmente viene dado porque las texturas son multiplicadas por la iluminación que viene del HDRI, y esa información de más necesita ser compensada de alguna forma.
Estamos añadiendo información a las texturas que ya se encuentra en ellas, por lo que debemos restar esa información proporcionada por el HDRI.
Este proceso, se llama normalizar las texturas.

Aquí abajo dejo una forma sencilla de solucionar este problema.

  • Para empezar crea un set-up image based lighting.
  • Utiliza un plano con un material mia_material_x_passes completamente blanco, sin ningún tipo de reflexión.
  • Lanza un render y configúralo como linear.
  • Crea otro material mia_material_x_passes con una textura con el gamma corregido, y asígnalo al plano.
  • Estoy utilizando este mapa de textura.
  • Si renderizas en este punto, te darás cuenta de que la textura se ve lavada. Esto ocurre porque esta siendo multiplicada por la información lumínica de la escena.

Para arreglar esto:

  • Aplica de nuevo el shader blanco al plano.
  • Haz un bake de la información lumínica.
  • Ahora tenemos que dividir la información de color de la textura por la información lumínica del entorno, esto nos dará el color bruto o RAW.
  • Conecta la textura con su gamma corregido al input 1 del nodo multiply/divide.
  • Conecta al textura bakeada .hdr al input 2 del nodo multiply/divide.
  • Pon la operacion como divide.
  • Renderiza de nuevo y ahora debería de verse correctamente.

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

He grabado un video tutorial donde muestro el proceso que utilizo para normalizar texturas en Softimage, fácilmente aplicable a cualquier otro software.