Bueno, quizás no es para tanto, pero al menos a mi me ha ahorrado muchas ¿horas? de trabajo, y sigue haciéndolo.
Como ya sabeis, Nuke es una de las herramientas más comunes utilizadas en todos los estudios de efectos visuales, y por supuesto, el standard de la indsutria en cuanto a composición se refiere. Hoy en dia, prácticamente todos utilizamos Nuke, no solo los compositores. Lighting TD's utilizan Nuke a diario, Look-Dev Artists utilizan Nuke todos los dias, también Texture Painters, Matte Painters, etc. Incluso modeladores, pre-viz artists, etc. Me he dado cuenta de que salvo los compositores, el resto de profesionales no conocemos más que cuatro cosas de Nuke, y esta opción que os presento hoy, no es una de ellas.

¿Nunca te has preguntado por qué el orden de composición en Nuke no parece tener ninguna lógica? ¿Nunca has buscado cómo remediarlo? En este video te explico como hacerlo.

A estas alturas no vamos a explicar nada relacionado con Linear Workflow, Gamma Correction, Color Spaces, etc. Seguramente ya todos llevamos años trabajando así y de lo contrario, existen muchos recursos en internet con información al respecto. En este mismo blog podéis encontrar información relacionada con este tópico en esta entrada del blog, o en esta o quizás en esta. También si buscáis el término Linear Workflow en la sección tutoriales.

El caso es que Autodesk Maya 2016 viene con una serie de novedades, entre ellas la gestión de color, lo que hace que por ejemplo, el Gamma Correction en Arnold Render se vea ligeramente alterado con respecto a versiones anteriores de Maya. Parece que esto está causando algunas confusiones entre algunos usuarios de Arnold, así que vamos a explicar de forma sencilla como configurar Maya 2016 y Arnold para trabajar de forma correcta. Nótese que esta no es la única forma de configurar LWF correctamente, pero es la que más me gusta a mi.

En las preferencias de Maya tenemos que activar el Color Managment. Lo ideal es renderizar siempre de forma linear y que el view transformation sea siempre sRGB (o LUT en el caso de estar utilizando uno). El input color space vamos a dejarlo como sRGB aunque después será Arnold el encargado de dictaminar el color space de nuestras texturas.

Como prueba para chequear que todo funciona correctamente, vamos a utilizar dos texturas de Macbeth Chart. La primera es una textura linear en formato .exr y la segunda una textura sRGB en formato .jpg Estos son generalmente los dos tipos de inputs que vamos a encontrar en una producción, linear y sRGB.
Si leemos ambas como linear, que es lo que ocurre a la hora de renderizar (hay que linearizar las texturas siempre) comprobaremos que la textura sRGB no se ve de forma correcta. Bien, lo mismo debería ocurrir en Maya y Arnold.

En las opciones de render de Arnold, en el apartado Gamma Correction, tenemos que poner todos los parámetros a 1.0
Esto quiere decir que Arnold espera que todos los inputs estén linearizados. Como ya dije anteriormente, hay que linearizar las texturas siempre.

El Macbeth Chart de arriba es el que tiene aplicado la textura linear .exr y el Macbeth Chart de abajo tiene aplicada la textura sRGB .jpg
La esfera diffuse tiene aplicado un color neutral grey 50%

Cuando lanzamos un render, ya que Arnold espera que todos los inputs estén linearizados, el Macbeth Chart de abajo y la esfera gris se van a ver de forma incorrectaLa solución es linearizarlos antes del render.

Existen dos formas de linearizar los inputs. La primera pasa por colocar invert gamma correction en todas las texturas que no estén linearizadas. Es decir, cualquier textura en espacio de color sRGB sea cual sea su formato. En este ejemplo solo tendremos que corregir la textura del Macbeth Chart de abajo.

Si renderizamos de nuevo, los dos Macbeth Charts deberían de verse de forma correcta.

La esfera diffuse sigue sin verse correctamente. Esto ocurre porque Maya está tratando al color plano 50% grey como si estuviese en el espacio de renderizado (linear). Así que tenemos que decirle que lo trate como si estuviese en el espacio de visionado (sRGB).

Ahora si renderizamos de nuevo, todo se verá de forma correcta.

Antes comentaba que existen dos formas de linearizar las texturas. La primera es la que hemos visto, la segunda, es la recomendada, ya que obviamos gamma correction nodes y ahorramos tiempo de computación al render.
Consiste en convertir las texturas al formato .tx que por otro lado me imagino que ya estás acostumbrado a convertir tus texturas a este formato ya que las texturas han de ser convertidas a MIP-mapped textures sobre todo, para ahorrarte infinidad de tiempo en el renderizado.

En el caso de texturas en espacio de color sRGB no olvides utilizar la opción "--colorconvert sRGB to linear"

Si ahora eliminamos todos los nodos gamma correction y sustituimos las texturas por su equivalente .tx obtendremos el resultado esperado.

No está de más mencionar que en la última versión de Arnold, SolidAngle proporciona su propio Frame Buffer. Puedes encontrarlo en el menú Arnold -> Experimental -> MtoA RenderView

Donde entre otras opciones, puedes cargar directamente un LUT.

Huelga decir que nuestros renders siempre van a ser lineares, así que se verán correctamente en Nuke. Basta con leerlos como linear y visionarlos como sRGB (o LUT) al igual que en Maya.

Cualquier duda, pásate por el foro o deja un comentario en el blog.

Isotropix Clarisse es capaz de renderizar volumes manteniendo la flexibilidad que caracteriza a este software. OpenVDB es perfectamente compatible con Clarisse, y resulta muy sencillo renderizar todo tipo de volume effects. En este particular ejemplo vamos a renderizar una simple simulación de humo.

Lo primero que voy a hacer es crear un setup IBL y elegir uno de los HDRI que almaceno en mi libreria.

Con dos esferas, una gris y una cromada puedo posicionar fácilmente el HDRI hasta obtener la iluminación deseada.

Para importar el archivo .vdb basta con seleccionar import -> volume.

Una representación básica del volume se verá en el viewport, siempre en tiempo real.

Para mejorar la apariencia visual del volume y que este se vea afectado por la iluminación (en viewport) basta con cambiar el tipo visualizacion a progressive rendering.

Si asignamos un standard material al volume, podemos renderizarlo como si se tratase de una geometría más.

Por supuesto, la solución ideal es crear un material volume y aplicarlo a la simulación.

En el material editor podemos utilizar un nodo utility -> extract property y leer cualquier propiedad embebida en la simulación. En este caso, la temperatura.

Podemos derivar la apariencia del shader como queramos. En este ejemplo estoy utilizando un simple gradient.

Si aparece demasiado ruido en el render, no olvides que las luces tienen su propio parámetro de sampling para los volumes.

Render final.

Posted
AuthorXuan Prada