Bake proyecciones de Nuke a UV mapping

Proyectar footage, backplates o cualquier otro tipo de material fotográfico y/o pintado en Nuke, es probablemente una de las tareas mas comunes que podemos realizar en un estudio de efectos visuales. Compositores, texture artists, matte painters o paint artists, son generalmente los encargados de realizar este tipo de tareas. En algunas ocasiones, en lugar de simplemente proyectar los detalles que necesitemos en los renders, es preciso bakear el trabajo realizado en Nuke en las propias texturas de nuestros assets, y así, poder renderizar de nuevo sin necesidad de volver a pasar por Nuke. La mejor forma de realizar este tipo de tareas, es proyectando los detalles directamente en las UVs de los assets.

  • He exportado mi escena de Maya a Nuke. En este sencillo ejemplo tengo la cámara utilizada para el render, y un cubo donde necesito proyectar mi footage.
  • Para importar la geometría utiliza un ReadGeo y para la cámara un nodo Camera.
  • He importado el footage que quiero proyectar, en este caso es un solo frame.
  • Conecta el footage a un nodo Porject 3D.
  • Conecta el input de la camara el nodo Porject 3D.
  • Conecta el img input del nodo ReadGeo al nodo Project 3D.
  • Mira a traves de la camara.
  • Además de estar proyectando el footage en la geometría, también estoy pintando algunos detalles encima de la misma, utilizando un rotopaint.
  • Conecta un nodo UVProject al axis/cam input, y el secondary input al ReadGeo.
  • Deja la opcion Projection como Off.
  • Conecta un ScanlineRender al UVProjector mediante el input obj/scene.
  • El projection mode tiene que estar como UV.
  • Si cambias el visor 3D a 2D verás como el trabajo realizado en Nuke aparece en el espacio UV de tu asset.
  • Utiliza un write node para escribir el trabajo a textura.
  • Ya ya está, listo para ser renderizado en Maya.
Leer más
compositing, rendering Xuan Prada compositing, rendering Xuan Prada

Introducción a los AOVs en Clarisse

Esta es una breve introducción al sistema de AOVs de Clarisse. Es un ejemplo muy sencillo pero que sienta las bases para crear escenas mas complejas.

He partido de esta escena.

  • Selecciona el render image y la capa 3D.
  • Abre el AOV editor en otra pestaña y selecciona los componentes que necesites para tu composición. En mi caso sólamente estoy utilizando diffuse, reflection y sss.
  • Acuérdate de darle al botón "más" para activarlos.
  • Ahora puedes visualizar cada uno de los AOVs activados en el frame buffer del image view.
  • Crea un nuevo context llamado "compositing" y dentro de éste, una nueva imagen llamada "comp_image".
  • Añade una capa de color negra.
  • Añade un filter, y texturízalo con un constant color. Esto será el input de nuestra composición.
  • Arrastra el constant color al material editor.
  • Arrastra el image render al material editor.
  • Si conectas el image render al constant color input, tendrás tu beauty pass.
  • Para separarlo en AOVs. Renombra el map a "diffuse" y selecciona el AOV "diffuse".
  • Repite el proceso con todos los AOVs de tu escena. Puedes copiar el map node sin problema.
  • Puedes utilizar add nodes para mezclar todos los AOVs hasta conseguir el beauty.
  • De esta forma tienes control independiente sobre cada uno de los AOVs, y no olvides lo más importante, sigues estando en un entorno 3D, donde cualquier cosa que añadas o modifiques en la escena, se actualizará en tu composición en tiempo real.
  • Si simplemente quieres renderizar tu escena y reconstruir el beauty pass en Nuke, basta con configurar el output y realizar la composición en Nuke, como vienes haciendo habitualmente.
Leer más

RGB masks

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.
Leer más

Clarisse, layers y passes

Sigo con mis posts sobre Clarisse. En esta ocasión voy a hablar de layers y passes, un tópico común en cualquier software 3D, y que además en el caso de Clarisse, es especialmente importante.

Clarisse permite crear sistemas de layers y passes muy complejos, para organizar las escenas prácticamente de la forma que mejor nos convenga. Además, podemos componer todas las diferentes layers y passes dentro del propio Clarisse.
Mezclar los "context" con "layers" y "passes" hace de Clarisse una herramienta perfecta para organizar escenas.

  • Para este tutorial, voy a utilizar esta simple escena. El proposito es separar cada uno de los elementos en "foreground" "midground" y "background". También crearemos un passe con las sombras de todos los elementos.
  • Ahora mismo en esta image solo hay una 3DLayer con el contenido de toda la escena.
  • He creado 3 context diferentes, uno para el foreground, otro para el midground y otro para el background.
  • En cada context he puesto la geometría correspondiente (esfera, cubo y cilindro. El suelo de momento esta junto a la esfera.)
  • En cada context tambien he creado una image.
  • Dentro de cada image, he creado una 3DLayer.
  • En cada 3DLayer hay que indicar que cámara y renderer utilizar.
  • También hay que indicar en cada 3DLayer que luces queremos utilizar.
  • En este punto seguramente ya te has dado cuenta del potencial de los layers de Clarisse. Podemos fácilmente renderizar cada layer con diferentes settings, cámaras, luces, renderes, etc.
  • En el context background estoy renderizando la esfera y el suelo.
  • En el context scene, he creado un nuevo image, que servirá como recipiente de los images creados anteriormente.
  • Como layers en este image no voy a crear 3DLayers si no Image Layers.
  • En las opciones selecciona cada una de las layers creados anteriormente, colocando el background abajo y subiendo hasta el foreground.
  • Nos encontramos con el problema de que las sombras del cilindro y el cubo no están presentes en el suelo. Esto es debido a que el suelo solo está en el context de la esfera.
  • Para solucionar esto he creado otro context llamado shadow_catcher y he movido el suelo a ese context.
  • He creado una 3DLayer donde he seleccionado la cámara y el renderer a utilizar.
  • He creado un grupo en este context con el cubo, la esfera y el cilindro.
  • En las opciones de visibility de la 3DLayer he puesto el grupo en la opción shadows.
  • En el image que me sirve de recipiente, he puesto el shadow catcher abajo del todo y ya está, las sombras ya funcionan.
  • Aunque no tan rápido. Para ilustrar otro problema, he puesto a conciencia el cubo atravesando el suelo. Si miras la primera imagen del post lo verás. Pero en esta composición, no parece estar atravesándolo. Esto es debido a que el suelo debería actuar como matte cortando al cubo, pero no lo esta haciendo, ya que el suelo no esta en el context del cubo.
  • Para solucionarlo, he creado una instancia del suelo y la he puesto en el context del cubo.
  • En las opciones de shading del suelo he hecho la opción matte object y matte alpha locales (botón derecho en el parámetro -> localize).
  • He activado la opción matte y puesto el alpha al 0%
  • Ya está, ahora funciona a la perfección.
  • En este momento tenemos las sombras junto al suelo. Si queremos, podemos también sacar las sombras por separado, para tener aún más control.
  • Para ello, he creado otro context solo con el suelo.
  • Después, en el context shadow_catcher, he creado un material "decal" y lo he asignado al suelo.
  • En el material "decal" he activado la opción receive illumination.
  • Finalmente he añadido la nueva capa en el recipiente image.
  • Puedes descargar las escenas de ejemplo aquí.
Leer más

Mis passes favoritos de Vray

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

Últimamente he estado trabajando con Vray más que con cualquier otro motor de render, y me he dado cuenta de que estos son los passes o elements que más utilizo.
Pongo como ejemplo un simple asset, con un shader muy sencillo y unas texturas básicas, sólo para ver mis render passes y mi pre-composición.

- Global Illumination.
- Direct lighting.
- Normals.
- Reflection.
- Specular.
- Z-Depth.
- Occlusion.
- Snow. (or up/down).
- Uvs.
- XYZ. (or global position).

  • RGB
  • Global illumination
  • Direct light
  • Normals
  • Occlusion
  • Reflection
  • Snow
  • Specular
  • UVs
  • XYZ global position
  • Y esta es mi pre-composición en Nuke.

Aquí puedes descargar mi escena de ejemplo.

Leer más