Utilizar IBL con grandísimos rangos dinámicos para iluminación en VFX es sencillamente genial. Generan unas condiciones lumínicas consistentes, con mucho detalle y el comportamiento de las sombras es fantástico.
Lo malo es que samplear esos valores tan altos en las fuentes lumínicas, especialmente el sol, no es nada fácil, y este tipo de HDRIs pueden generar muchísimo ruido y otros artefactos. Para solucionarlo, generalmente recurrimos a trucos como crear imágenes HDRI de baja resolución y blureadas, o crear versiones con valores clampeados de los mapas en Nuke.

Afortunadamente en Clarisse podemos tratar este problema de forma sencilla.
Los samples de shading, lighting y anti-aliasing se tratan de forma completamente independiente en Clarisse. Puedes manipular cualquiera de ellos sin afectar a los demás, ahorrando un montón de tiempo de render. En muchos motores de render el sampling de shading es multiplicado por el anti-aliasing lo que obliga al usuario a re-ajustar todos los shaders para obtener tiempo de render decentes.

  • Vamos a empezar con esta escena. Como ves, con muchísimo ruido.
  • Lo primero que tenemos que hacer es cambiar el tipo de interpolación del Map File donde tengas tu HDRI a MipMapping.
  • Después tenemos que limpiar el ruido de los shaders, tocando el shading sample.
  • Vete a raytracer y activa la opción previz mode. Esto eliminará toda información lumínica de la escena. Todo el ruido que veas aquí proviene de los shaders.
  • En este caso tenemos mucho ruido ocasionado por la reflexión de la esfera. Veta al material de la misma e incrementa el valor reflection quality, en el apartado sampling.
  • He aumentado el parámetro hasta 10 y ahora ya no veo nada de ruido en la escena.
  • Selecciona de nuevo el raytracer y desactiva el previz mode. Todo el ruido que ahora vemos proviene de la iluminación.
  • Vete al gi monte carlo y desactiva affect diffuse. Esto eliminará la contribución de la iluminación global y solo la luz directa afectará a la escena. Si ves ruido deberás de tocar el sampling de las fuentes de luz directas.
  • Vete de nuevo a gi monte carlo y re-activa affect diffuse. El ruido presente será por culpa de la gi. Incrementa los samples hasta que desaparezca el ruido.
  • Ahora el render ya no tiene ruido, aunque se ve un poco low-res. Esto es por culpa del anti-aliasing de geometría. Veta al raytracer e incrementa los samples. Ahora el render se vera perfecto.
  • Finalmente hay un parámetro que funciona como sampling global. Como norma general no utilizarás este parámetro. Si lo subes al 100% el shading oversampling multiplicará el shading sampling por los sampling de anti-aliasing, como la mayoría de motores de render.
  • Si quieres resultados rápidos para hacer look-dev o lighting, simplemente baja la calidad de la imagen. No tendrás renders perfectos pero será más que suficiente (y muy rápido) para establecer looks.

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.

Primer intento de crear un shader que imite dibujo rápido.
Sin duda, tendré que invertir más tiempo con esto en el futuro.

Básicamente estoy combinando 3 shaders diferentes con 3 tipos diferentes de trazos de lápiz.

Volumen básico, rápido y sin cuidado.

Definición un poco más cuidadosa de las formas interiores.

Repaso a lápiz duro.

Posted
AuthorXuan Prada

Isotropix Clarisse es una "nueva herramienta" (presentada en Siggraph 2012) que básicamente y para resumirlo mucho, actúa como scene assembler. Es decir, no es un software 3D al uso, si no que has de crear tus assets, cámaras, animaciones, etc, en cualquier software 3D, y después exportar todo a Clarisse (mediante alembic preferiblemente), para una vez allí, trabajar el Look-Dev, Lighting y Render de tus planos y secuencias.

Clarisse es un poderosísimo ray-tracer, donde todo funciona en tiempo real. Esto es muy importante para el artista, ya que no es necesario esperar para visualizar los cambios de shading y lighting. Además Clarisse es muy rápido y estable, incluso utilizando escenas muy complejas, tanto a nivel de geomteria, como a nivel de shading, lighting y efectos de post-proceso como motion blur, dof, etc.

El estudio donde trabajo, lleva utilizando Clarisse algún tiempo. Ya lo utilizamos de forma discreta en Godzilla, y ahora lo estamos utilizando de forma muy extensa en Exodus. No hace mucho Double Negative ha anunciado que Clarisse será su herramienta primaria para Look-Dev y Lighting, así que creo que es un buen momento para empezar a hablar de esta herramienta en el blog.

Mi experiencia con Clarisse es de unos 9 meses más o menos trabajando en Exodus, y aunque no soy un experto ni mucho menos, creo que ya me defiendo bastante bien.
Hoy, voy a contaros uno de los básicos de cualquier software 3D cuando trabajamos en proyectos de VFX, Image Based Lighting.

  • Empezamos por crear un nuevo context dentro de la escena. En este caso lo he llamado ibl.
  • El siguiente paso es crear un esfera que actuará como soporte para nuestro HDRI.
  • La esfera la sitúo dentro del context ibl, para que todo esté bien organizado.
  • He aumentado el radio de la esfera considerablemente, ya que éste será nuestro "mundo" donde meteremos todos los assets del plano.
  • En la pestaña image view podemos ver el render en tiempo real. Ahora mismo simplemente tenemos la esfera iluminada por la luz que viene por defecto. Podemos eliminar esta luz.
  • Creamos un nuevo material matte al que no le afecta la iluminación.
  • Lo asignamos a la esfera.
  • Una vez asignado el material, la esfera se ve completamente negra.
  • Creamos una imagen para poder cargar la textura HDRI.
  • Conectamos la textura al color input del matte shader.
  • Seleccionamos la imagen HDRI en el path de la textura.
  • Cambiamos el tipo de proyección a Parametric.
  • Los mapas HDRI son texturas 32bits codificadas en un espacio de color linear, así que tenemos que indicar en las opciones de la textura que estamos utilizando ese espacio de color.
  • He creado dos esferas que me servirán para chequear mi iluminación. Presionando la tecla "f" puedo centrarlas en pantalla.
  • También he creado un plano para chequear las sombras y dos materiales standard, uno para cada esfera. Uno será gris matte y otro será un material cromado, para simular lighting checkers.
  • De vuelta en la ventana de render, podemos ver como las esferas están afectadas por el entorno HDRI.
  • De momento, solo los secondary rays, como las reflexiones, están siendo afectados.
  • Para que la iluminación funcione como tal, tenemos que crear un tipo de luz llamada "gi_monte_carlo".
  • Así de primeras tendremos mucho ruido en la escena, básicamente esto ocurre porque los mapas HDRI tienen demasiado detalle en forma de valores de color/exposición.
  • Para solucionarlo, podemos cambiar el tipo de interpolación de la textura a Mipmapping.
  • Para seguir limpiando el ruido de la escena, también podemos aumentar la calidad de sampling de la luz gi_monte_carlo".
  • El ruido de la escena también depende de la cantidad de Anti Aliasing Samples del raytracer de la escena.
  • Para limpiar el ruido, en general hay que combinar los samples de las luces con los samples del raytracer. Un sampling de 8 aproximadamente para el raytracer es un valor adecuado para producción, y las luces pueden ser de 12 smaples aproximadamente. Todo depende de las necesidades de la escena.
  • Existe otra opción mas barata, alternativa a utilizar GI.
  • Elimina la luz "gi_monte_carlo".
  • Crea una luz "ambient_occlusion".
  • En su color input, conecta la textura HDRI.
  • Verás que el render en principio, sale negro, excepto los secondary rays.
  • Selecciona la esfera que hace de entorno y desactiva la opción "cast shadows".
  • Todo funcionará correctamente.
  • En este caso para limpiar el ruido deberás aumentar los samples del ambient occlusion.
Posted
AuthorXuan Prada

Hace apenas unos días realicé mis primeras pruebas en Colorway. Mi idea es utilizar este software como herramienta de texturizado y look-development para proyectos de efectos visuales.

Creo que puede ser una herramienta muy potente, y sobretodo, muy artist friendly para trabajar en diferentes tipos de assets.
También creo que puede ser una herramienta para hacer presentaciones rápidas de assets individuales, ya que no solo puedes crear diferentes versiones de un mismo asset, si no que también puedes crear looks, efectos de lente, etc.

Con este segundo test pretendo crear un asset complet, aunque sencillo, para VFX, crear diferentes variaciones y poner todo junto en una plantilla para dailies.

Al final de mis pruebas, estoy bastante contento con el resultado y la metodología de trabajo entre Modo, Mari y Colorway. He encontrado algunas limitaciones pero sinceramente creo que más pronto que tarde, Colorway será una herramienta que voy a utilizar en proyectos para texturizado y look-development.

Transfiriendo texturas

Una de las (graves) limitaciones que he encontrado en Colorway, es que de momento no soporta UDIMs. (me consta que ya están arreglando esto).
Texturicé este personaje hace tiempo, por supuesto siguiendo los estándares de texturizado para VFX, y por supuesto estoy utilizando UDIMs. Alrededor de unos 50 UDIMs de 4k de resolución.

Para poder llevarme este personaje a Colorway tuve que crear un UV mapping de baja resolución, utilizando para ello únicamente el espacio de UVs 1001
Para mantener una resolución mínima, dividí el personaje en diferentes partes: cabeza, brazos, piernas, torso y pelvis, y para cada una de estas partes creé un UV mapping diferente, para posteriormente aplicar texturas de 8k de resolución. Estoy utilizando solo 3 canales de textura, Color, Specular y Bump.

Para pasar las texturas basadas en UDIMs al nuevo UV mapping de baja resolución, utilice la herramienta "layer transfer" de Mari. Es la primera vez que la utilizaba (hasta entonces hacía esta tarea en Maya) y es realmente rápida, apenas pierdes tiempo en bakear texturas entre multiples resoluciones de UVs.

Layer transfer tool in Mari.

Todas las nuevas texturas una vez bakeadas en el nuevo UV mapping de baja resolución.

Mi setup de iluminación en Modo no podría ser más sencillo. Simplemente estoy utilizando un mapa equirectangular HDRI de Beverlly Hills. De hecho, es un mapa que viene con Modo.
Image Based Lighting funciona realmente bien en Modo. Además existe la posibilidad de combinar diferentes IBL de forma muy sencilla e intuitiva.
Simplemente funciona bien.

En cuanto a shading se refiere también es todo muy sencillo. Simplemente utilizo una capa de shading con Color, Specular y Bump. Utilizo el mismo shader para cada parte del asset, simplemente cambio las texturas.

El render solo tarda unos 3 minutos, que para estar trabajando con un MacBook Air no está nada mal :)
El render para Colorway tarda un poco más, pero obviamente después vas a ahorrar mucho tiempo haciendo cambios y variaciones.
He creado una variación de texturas de color en Mari, que posteriormente aplicaré para ver los cambios de shading en tiempo real.

Todas las partes del asset exportadas desde Modo se encuentran a la derecha, basta con seleccionar una de ellas para poder modificarla.

En la parte derecha se encuentran todas las luces exportadas desde Modo. Se puede cambiar la intensidad, el color o simplemente apagarlas. En este caso solo tengo un IBL.

En la parte derecha también encontramos todos los shaders disponibles en la escena. Se puede tocar la intensidad, el color y las texturas de diffuse. Esto te da la posibilidad de crear multitud de versiones del mismo asset en tiempo real.

También existe la posibilidad de crear simples efectos de post-processing como color correction, lens effects, etc. Esto esta bien para tener un feedback visual rápido de algunos de los efectos mas comunes utilizados en VFX.

Finalmente creé un par de variaciones para este asset.

Notas

Un par de cosas de las que me he dado cuenta trabajando en este asset.

  • Tenía una de las partes con las normales invertidas. Sin darme cuenta de ello, cada vez que renderizaba para Colorway, Modo se cerraba automáticamente. Una vez invertidas las normales se arregló el problema.
  • Estaría bien poder guardar looks dentro de Colorway para futuros proyectos. Digamos que trabajo solo en la cabeza de este personaje, creo varios looks y los presento a un cliente. Me gustaría que si mas tarde trabajo en todo el cuerpo, poder aplicar los mismos looks que anteriormente apliqué a la cabeza.
Posted
AuthorXuan Prada

Hace unos días (o semanas) The Foundry lanzó al mercado su último producto "Colorway", además de forma gratuita.

En principio Colorway es un producto orientado a diseñadores, una herramienta de post-producción que nos ayuda realizar cambios de color, aspecto, textura, etc, a diseños que ya han sido renderizados. Esta tecnología permite hacer dichos cambios "al vuelo" sin necesidad de renderizar la escena cada vez que nos veamos obligados a cambiar algo relacionado con materiales o iluminación.

Sin duda esto es una gran ventaja cuando se trabaja con clientes y estos nos piden cambios sutiles una vez terminada una versión del trabajo.
Si se precisa un color diferente o un detalle de textura distinto, basta con cambiarlo en tiempo real y presentar a nuestro cliente una nueva versión del trabajo, sin necesidad de esperar a que termine un nuevo render. Es más, el propio cliente puede cambiar el color a su antojo y devolvernos el archivo con los cambios.

Sin duda, una gran idea.

Bien, yo no me dedico al mundo del diseño, pero desde mi punto de vista Colorway puede potencialmente ser utilizado en otras industrias, como por ejemplo, los efectos visuales. Ya que normalmente trabajo como Texture Painter y aveces también como Look-Development Artist, decidí probar Colorway como si fuese una herramienta destinada a estos propósitos.

Pese a que hay ciertas cosas que mejorar e incluir para que realmente sea una herramienta de Look-Development, creo que para ciertos trabajos ya podríamos utilizarla para presentar diferentes versiones de un mismo asset.

Para testear Colorway utilice mi modelo de War Machine, o al menos, su cabeza.

  • Colorway me permite renderizar un modelo con un shader base, al que posteriormente le puedo aplicar diferentes versiones de una textura, o simplemente colores planos.
  • Todo empieza dentro de Modo (el plugin para Cinema4D está en camino).
  • Como te organices dentro de Modo es muy importante, porque de ello depende el control que tendrás posteriormente en Colorway.
  • En mi caso, he dividido la cabeza en varias partes (ver item list) y aunque estoy utilizando el  mismo shader para toda la cabeza, lo he duplicado tantas veces como partes tengo (ver shading tab). De esta forma tendré muchas opciones de selección posteriormente (una por cada parte de la cabeza) y podré manipular cada shader por separado.
  • En Modo he trabajado el Look de mi asset de forma normal. Solo una vez que ya estás contento con el Look puedes exportar para Colorway.
  • En este caso he trabajado el Look con texturas aplicadas. Si quieres puedes hacerlo sin texturas y aplicarlas posteriormente en Colorway. También podrás quitarlas en Colorway y dejar al asset con sus shaders básicos. Esto es más bien una preferencia personal.
  • Cuando quieras exportar para Colorway simplemente dale al botón que pone Colorway.
  • Puedes exportar todos los materiales y luces de la escena o solo aquellos que tengas seleccionados.
  • Dale al botón de renderizar y comenzará el proceso.
  • Una vez renderizado, puedes abrir el proyecto en Colorway. Simplemente dale doble click al archivo exportado desde Modo y Colorway se abrirá automáticamente.
  • El espacio de trabajo es muy sencillo. A la izquierda se encuentran las opciones de selección y a la derecha los diferentes shaders de la escena.
  • Basta con seleccionar una parte de las ofrecidas en la izquierda, un shader del menú de la derecha o directamente una parte en el viewport.
  • Automáticamente se abrirá un control para manipular el material.
  • En las opciones de los shaders, se puede ver la textura que se está utilizando. Puedes eliminarla o añadir una nueva.
  • En este ejemplo estoy cambiando solo una parte y posteriormente todos los shaders, para crear una nueva version de mi asset.
  • Como decía antes, podemos eliminar todas las texturas y empezar una nueva versión desde cero, utilizando un shader base.
  • Y finalmente, esta son las pruebas que he hecho para este post :)

Algunas cosas que a día de hoy Colorway no tiene y que hecho en falta para realizar tareas de texturizado y look-dev.

  • Sólo se pueden cambiar texturas de RGB. No se pueden cambiar mapas secundarios ni mezclar texturas RGB.
  • No se pueden controlar las opciones del shader. Tienes que asegurarte que los shaders vienen bien configurados desde Modo y nada puedes hacer al respecto.
  • No funciona con UDIMs. Este es probablemente el requisito más importante que debería tener para poder trabajar en efectos visuales.
  • Creo que los IBL no los interpreta como luces. O al menos, no cuando solo hay IBL como fuente lumínica.
  • Algunas opciones de shading como transparencia, glow, etc, no son compatibles.
Posted
AuthorXuan Prada