Desde hace unos años, utilizamos Cryptomatte para crear todo tipo de IDs, mattes, etc. Sin duda, la mejor y más eficaz forma de realizar este tipo de máscaras. Pero en ocasiones, debido a ciertas limitaciones que nos podemos encontrar en nuestra producción, no nos queda otra que recurrir a IDs de "toda la vida".

En este video te muestro como realizar un setup de IDs basado en custom AOVs.

En este post vamos a ver como crear variaciones de color y texturas de diferentes formas utilizando Arnold render. La idea principal, es dotar a varios assets, ya bien sean geometría, aiStandins, partículas, scatterers o cualquier otro tipo de multitudes, de variaciones de look, utilizando solamente un shader.

Vamos a mostrar cuatro formas diferentes de realizar esta tarea, cada una de ellas puede aplicarse en función de las necesidades particulares que cada uno pueda tener en su pipeline de producción.

Diferentes colores definidos para diferentes objetos

  • Esta es la escena que vamos a utilizar para todos los ejercicios. Ocho cabezas de una figura de Lego. El objetivo, es utilizar un solo shader y que cada cabeza tenga un color o una textura diferente.
  • Si lanzamos un render, este es el aspecto actual. Un shader sencillo con un color amarillo en el base color y en el sss color.
  • Crea un aiUserDataColor y conectalo tanto al base color como al sss color.
  • En sus parámetros escribe color en el campo attribute.
  • Selecciona el shape de cada objeto, y añade un attribute.
    • nombre: mota_constant_color
    • data type: vector
  • Si ahora vas a los extra attributes, puedes utilizar el color que quieras mediante valores RGB.
  • En este render sólamente he definido un color rojo para uno de los objetos.
  • En este render he definido colores RGB para cada uno de los objetos de la escena.
 

Colores completamente aleatorios y/o texturas definidas de forma aleatoria

  • Al igual que en el ejemplo anterior, tengo el mismo shader, con sss. Además, tengo un mapa de displacement conectado.
  • Lo que pretendemos es utilizar un color aleatorio para cada uno de los objetos, o en lugar de un color, una serie de texturas definidas asignadas de forma aleatoria.
  • En estos momentos este es el aspecto del render. Mismo shader con mismos parámetros para todos los objetos.
  • Crea un aiUtility y conéctalo al base color y al sss color.
  • Pon en shade mode como flat y el color mode como object id.
  • Estos settings nos proporcionarán un color aleatorio para cada objeto.
  • Si lanzamos un render este es el resultado.
  • Conecta un aiRandom después del aiUtility.
  • Pon el type como color.
  • Introduciendo diferentes valores en el seed, obtendremos diferentes colores.
  • Render utilizando un seed con valor 2
  • Conecta un aiColorToFloat después del aiRandom y pon el mode como sum.
  • Con este nodo convertiremos los valores de albedo en datos, de donde podremos extraer máscaras.
  • Crea un aiSwitch y conecta tantos inputs como texturas necesites.
  • Conecta el aiColorToFloat al index input del aiSwitch.
  • Este es el resultado del render.
  • Para obtener diferentes variaciones podemos conectar un aiColorCorrect después del aiRandom y tocando por ejemplo su exposición, alteraremos los valores de albedo y por lo tanto de las máscaras.
  • Tambien podemos utilizar un seed distinto para obtener mayor variación.
  • Otro render diferente aumentando la exposición del aiColorCorrect.
 

Una textura diferente definida para cada objeto utilizando un solo shader

  • Renombre todas las texturas utilizando el siguiente template.
  • Añade el siguiente attribute al texture file node
    • /Users/xuanprada/Desktop/arnold_variance/textures/<attr:head default:COL1_head_a>.tx
    • Añade un attribute al shape de cada objeto
      • nombre: mtoa_constant_head
      • data type: string
    • Si ahora vas a los extra attributes, puedes llamar a una textura diferente basándote en naming convention.
    • Render final.
     

    Lo mismo que en el caso anterior, pero basándonos en naming convention de shape

    • Renombra las texturas basandote en el siguiente template
      • COL1_head_a.tx
    • Añade el siguiente tag al nombre del file texture node
      • /Users/xuanprada/Desktop/arnold_variance/textures/COL1_<shapeName>.tx
    • Los shapes de cada objeto han de ser renombrados utilizando la siguiente nomenclatura.
    • Render final

    Si eres usuario de elephant vfx pro, puedes descargarte las escenas utilizadas en este tutorial.

    Aquí os dejo un video de alrededor de 1 hora, donde explico de forma breve y a modo de introducción como utilizar el node graph de Mari 4.
    Los texture artists generalmente combinan Mari y Nuke para trabajar sus texturas, gracias a la introducción del node graph dese Mari 3, cada vez dependemos menos de Nuke. Por otro lado, las líneas que separan a los texture artists de los look-dev TD's cada vez está más difuminada, y es cada día más común que un mismo profesional se pueda ocupar de ambas tareas, al menos, en assets no demasiado complejos.

    Además, estamos trabajando en un nuevo curso "Estrategias de texturizado y look-development para entornos" donde utilizaremos exclusivamente el node graph de Mari 4 combinado con Substance Painter y Maya, así que esta breve introducción pretende poneros en contexto para lo que vendrá en un futuro.

    Lo dicho, aquí os dejo con casi 1 hora de introducción al node graph de Mari.

    Imágenes pertenecientes al curso "Estrategias de texturizado y look-dev para entornos",

    En alguna ocasión anterior ya hemos hablado sobre el uso de Ricoh Theta para tareas de image acquisition en efectos visuales. En ese video ya comentaba algunos de los puntos fuertes y débiles de utilizar un setup convencional vs un setup basado en Ricoh Theta. Te recomiendo echarle un vistazo.

    En esta ocasión, he realizado un ejercicio de image acquisition, donde la fuente lumínica principal es muy potente, el sol, y por lo tanto, es muy importante capturar el mayor rango dinámico posible, para así poder representar de forma efectiva la situación lumínica capturada de forma virtual.

    Los setups a comparar son

    • Canon 5D Mark III + 8mm fish eye + panoramic head
    • Ricoh Theta S + Manfrotto mini tripo
    • Los dos anteriores se complementan con lighting checkers y macbeth chart.

    Las imágenes capturadas con el setup tradicional. 6 ángulos (aunque podrían haber sido solamente 3). 7 exposiciones por cada ángulo con 2 stops de diferencia. En total 42 imágenes.

    Settings de cámara

    • ISO: 100
    • Apperture: f22
    • Mid exposure: 1/100
    • 2EV apart
    • Min exposure: 1/6400
    • Max exposure: 0''6
    • White balance, focus, etc = manual

    Todos mis brackets están perfectamente alineados, ya que las fotografias se realizaron con un pano head. De esta forma no es necesario perder ni 2 minutos en Ptgui para hacer el stitching.

    0005.png

    Las fotografías realizadas con Ricoh Theta, son completamente automáticas, no se pueden controlar de forma manual. Los settings generados son:

    • Min exposure: 1/6400
    • Max exposure: 1/100

    El stitching en este caso, lo hago con Merge HDR Pro en Photoshop, ya que Ptgui no hace stitching de fotografías equirectangulares, (si rectilíneas y fish eye). Nunca deberías utilizar Photoshop para trabajo de datos, así que una vez generado el HDRI guarda como .exr y nunca más la abras en Photoshop.

    Me llevo los dos panoramas a Nuke, para neutralizarlos en base a mis referencias. También para limpiar artefactos si fuese necesario, aunque en este caso he pasado olímpicamente de ello.

    Si bajamos la exposición en viewport y analizamos el punto de mayor valor lumínico en la imagen, es decir el sol, veremos la brutal diferencia entre un panorama y otro.

    • 5D Mark III = 431
    • Ricoh Theta: 3.8

    Esta información ya debería de ser una valiosa pista del comportamiento de un panorama u otro cuando creemos nuestros setup IBL.

    0013.png

    Ya en Maya, creo dos setups de IBL diferentes, uno para cada panorama. Las diferencias son evidentes, especialmente en la densidad de las nombras y la distribución de la luz.

    5D Mark III

    Ricoh Theta

    ¿Eres suscriptor de elephant vfx pro? Descárgate el material utilizado en este post y analízadlo tranquilamente en tu casa.

    1025753-everest12lighting-1200.jpg

    Estamos ya pensando en el nuevo curso online para elephant vfx, y en esta ocasión, es bastante posible que realicemos un "projection workshop". Me explico.

    Desde hace ya varios años, no utilizamos prácticamente nunca matte paintings tradicionales, en sentido digital me refiero. En muchos facilities, existe lo que podríamos llamar departamento de environments, que trata de aunar el trabajo de entornos y el trabajo de matte painting bajo el mismo techo. Parte de las tareas que este departamento realiza, son tareas de entornos puramente 3D. Y otras tareas, son proyecciones de cámara para generar entornos 2.5D

    Raramente vamos a encontrarnos un matte painting 2D pintado como fondo. Lo más común es encontrarnos con matte paintings proyectados sobre geometría 3D, en ocasiones con setups sencillos y en otras, realmente complejos.

    En este nuevo curso, pretendemos explicar las diferentes situaciones de proyecciones que nos vamos a encontrar en un proyecto cinematográfico de efectos visuales. Al mismo tiempo, explicar en que ocasiones decidimos realizar el trabajo de environment mediante técnicas 3D o 2.5D y los pros y contras de utilizar una técnica u otra. Todo ello pensando también en realizar un curso en el futuro con técnicas de entornos full CG.

    De momento es solamente una idea, para valorar la acogida que podría tener entre los usuarios de elephant vfx, así que os pedimos cualquier tipo de feedback. Queremos saber si os interesaría este curso, que tópicos os gustaría que tratásemos, etc.

    Todavía todo está en el aire, pero aquí abajo dejo algunos puntos que nos gustaría tocar durante este workshop.

    • Entornos full CG vs entornos 2.5D
    • Técnicas básicas de proyecciones de cámara tanto en Maya como en Nuke
    • Tipos de proyecciones comunes en visual effects
    • Análisis de planos de películas y deconstrucción
    • Como utilizar plates y footage para generar proyecciones
    • Trabajo entre Maya y Nuke dentro del sistema 3D
    • Texturizado basado en proyecciones vs texturizado basado en UV mapping
    • Modelado para proyecciones en Nuke
    • Fotogrametría aplicada a proyecciones de cámara
    • etc, etc.

    Por otro lado, también estamos pensando en realizar este curso de forma diferente. En lugar de realizar un curso online como los demás que tenemos en elephant vfx, estamos pensando en realizar un workshop, donde los alumnos se apunten, puedan descargar material exclusivo que crearemos para este curso, analizarlo y realizar tareas similares asignadas por elephant vfx. A las que sumaremos reviews y correcciones realizadas por elephant vfx, y un seguimiento del trabajo continuo durante el tiempo que dure el workshop, sesiones live de preguntas y respuestas, etc. ¿Estaríais interesados en esta modalidad?

    Gracias a todos por vuestra participación!

    Posted
    AuthorXuan Prada
    Categoriescursos
    15 CommentsPost a comment

    Hace ya un par de versiones atrás, Maya introdujo un nuevo sistema de render passes, llamado "render setup". Aún no funciona todo lo bien que debería, pero está pensado para sustituir el antiguo sistema de passes, y se asemeja más a las herramientas de particiones y passes que solemos utilizar en los facilities de vfx.

    En el curso One Man Band, os mostré como utilizar el render setup para crear diferentes entornos de look-dev dentro de una misma escena. Y esos conocimientos los expandimos también en el curso Clarisse Fastrack.

    En este video de unos 45 minutos, os enseño como utilizar el render setup para crear particiones y passes para tus proyectos de vfx. Además, los suscriptores de elephant vfx pro podéis descargaros el material de trabajo para analizarlo con calma.