Saturday, November 3, 2012

Nuke | lo básico con render passes

En el tutorial anterior con 3Delight vimos como renderear AOV's o render passes en un solo archivo OpenEXR.. pero ¿como lo controlamos al momento de componer?


Este ejercicio es para nuke, pero aplica a todas las herramientas de compositing (voy a asumir esto) :)






Vamos a usar la imagen dragon.0001.exr del ejemplo anterior. Al cargarla en Nuke, solo necesitamos separar los elementos con el shuffle node. En el drop down menu "in 1" seleccionamos gi.

Luego, creamos otro shuffle node y separamos diffuse_intensity, occlusion y surface_color. Del drop down menu "in 2" seleccionamos rgba y solo damos click al checkerbox del extremo inferior derecho, para manterner el alpha.

Ya que tenemos separados nuestros elementos, vamos a hacer un par de operaciones basicas:  


resultado = ( gi + diffuse_intensity) * (occlusion * color)





Esto nos va a dar como resultado la imagen de arriba, con nuestro dragon verde.

Algo que seguramente ya saben, es que no hay una regla estricta acerca de como hacer 'proper compositing' de elementos generados. Si nos referimos a un shader como el Architectural Material de mental ray, el manual nos dice como realiza internamente el armado de sus componentes:

Beauty = diffuse_result + indirect_result + spec_result +      refl_result + refr_result + tran_result + 
                add_result


Y a su vez, cada elemento dentro de _result incluye otras operaciones:


Beauty = diffuse_level * (diffuse_raw + (indirect_raw * ao_raw)) + 
                spec_level * spec_raw +
                refl_level * refl_raw +
                refr_level * refr_raw +
                tran_level * tran_raw +
                add_result


Para leer un poco mas de estas operaciones, pueden verlo en este link: http://docs.autodesk.com/MENTALRAY/2013/ENU/mental-ray-help/files/shaders/architectural/arch_mtl.html#Proper_Compositing


Asi que el resultado del compuesto final depende de cual es la forma en que los shaders que se usaron para generar los render passes estan hechos. Esto es para obtener el mismo resultado que su beauty pass, porque finalmente van a hacer ajustes a lo largo del compuesto, modificando y alterando valores:



Este arbol nos da como resultado:




Este no es un buen ejemplo para sus compuestos ni tampoco para trabajar con multi-channel exr, pero creo que es un ejemplo para ilustrar el punto.


Una nota final, si renderean con 3Delight y Nuke en linux, hay una limitacion en el nombre de los render passes, donde algun nombre como color aov_key_lights_specular_intensity_no_shadow va a resultar en segmentation fault por el lado de Nuke porque ese layer tiene mas de 31 caracteres que sugiere el estandar de OpenEXR. 

Y ahora si, los scripts de Nuke:

y el script de la imagen final:


Para no olvidar: Cuando hablamos de compuestos...



No comments: