Este post contiene contenido exclusivo para suscriptores de elephant vfx pro.

Como parte del nuevo contenido que vamos publicando en elephant vfx, vamos a introducir una serie de posts sobre trucos, consejos, experiencias, etc. trabajando en set. Generalmente se encuentra muy poca información online, ya que tampoco somos muchos los experimentados en labores de set en el mundo de los visual effects, o al menos, no en comparación con otros puestos de trabajo en la industria.

El tip de hoy es como indica el titulo, captúralo todo! Incluso aquellas cosas que en principio no debes capturar, o no están incluídas en el biding. Siempre hay secuencias que se complican, donde es necesario añadir más elementos 3D de los pensados originalmente, o simplemente trabajo extra que recae en un VFX facility que no se había contemplado con anterioridad por cuestiones de agenda.

Pongamos el ejemplo práctico de que tenemos que recrear parte de una ciudad mediante efectos visuales. Generalmente tendemos a capturar todo lo relacionado con el entorno que forma parte del set, pero en ocasiones podemos obviar por ejemplo, mobiliario urbano, elementos de atrezzo, etc. En ocasiones incluso de forma deliberada, por ejemplo porque en el biding de esa secuencia sólo necesitamos recrear una pared para demolición. Pero quizás haya un montón de elementos de atrezzo en ese set, que nos puedan servir para popular las calles de otra secuencia que rodaremos semanas después. Por eso, si puedes, captúralo todo.

En este sencillo ejemplo, nos ponemos en la situación de capturar un sencillo prop de atrezzo, una vieja caja de madera. Qué capturar? Todo lo que podamos. Si no tenemos mucho tiempo, con 6 fotografías tendríamos suficiente para poder recrear este prop. Si tenemos 5 o 10 minutos, podemos realizar una rápida sesión de photogrammetry y asegurarnos de capturar aún más detalle, para poder recrear con mayor fotorrealismo el asset.

Para ponernos en una situación real de producción, vamos a suponer que no tenemos tiempo agendado para capturar este tipo de props secundarios, así que vamos a hacerlo en apenas 5 minutos, y en condiciones poco favorables.
Esas condiciones poco favorables en este caso (y en muchos casos similares en set) son:

  • Situación lumínica pobre. Estoy fotografiando al ocaso, poca luz ambiental y no dispongo de iluminación artificial controlable.
  • Equipo muy reducido. Solo dispongo de un trípode que utilizaré como base, una cámara digital mirrorless, un Macbeth chart y una cinta métrica (pies y metros).
  • No necesitamos mucho más para capturar este tipo de assets, es más, tener estas (importantes) limitaciones nos viene bien para realizar la captura muy rápido. No buscamos perfección si no cubrir la mayor cantidad de atrezzo posible (no son hero assets).

Trípode con base, Sony a6000, cinta métrica y Macbeth chart.

Los que hayáis cursado nuestro curso de Photogrammetry en VFX ya conocéis los shooting patterns más comunes para obtener buenos resultados, así como las condiciones lumínicas ideales y equipo necesario para cada situación. En este caso, dejamos el prop quieto encima del trípode y rotamos alrededor del mismo, realizando fotos en 360 grados y 3 alturas diferentes. Suficiente para cubrir todo el prop. Hemos realizado 114 fotos, cámara en mano, en apenas 5 minutos.

Siempre recomiendo ajustar todos los parámetros de la cámara de forma manual, como hemos visto en Photogrammetry en VFX, pero en esta situación, como lo que más me interesa es la rapidez de captura, solo fijo la apertura y el white balance. Dejo que el enfoque y la velocidad de obturación vengan dadas por la cámara. También fijo el ISO a 320, que no es lo ideal, pero la situación lumínica así lo requería.

Pese a que la calidad de las fotos no es demasiado buena, algunas están fuera de foco, muchos claro oscuros y ruido, Photoscan es capaz de alinear todas las imágenes.

En el espacio 3D podemos ver perfectamente el shooting patter que seguí a la hora de capturar este prop.

El procesado de toda esta información debería tomar no más de hora y media. Una vez procesado el point cloud deberíamos obtener un modelo y texturas de razonable calidad.

A partir de ahora, la idea es llevarnos la geometría y las cámaras a Maya, y allí reconstruir el modelo. Lo que suelo hacer, es importarlo todo en Maya, meterlo dentro de un locator (para conseRvar la posición y orientación original) y mover el locator para que el asset se quede en el centro del mundo. De esta forma puedo siempre resetear la posición del locator y dejar el asset en la posición original dada por Photoscan. Así siempre puedo re-importar el modelo final en Pohotoscan y re-proyectar texturas, como hemos visto en el curso Photogrammetry en VFX.

Antes de empezar a reconstruir el modelo, voy a eliminar todo aquello que viene de la captura y no me interesa, para dejar sólo la caja de madera. El mejor software para realizar este tipo de tareas es Meshlab. Puede fácilmente manejar photogrammetry y lidar de centenas de millones de polígonos. Una vez limpiado el modelo, me lo llevo de vuelta a Maya para su reconstrucción.

Gracias a mis grandes dotes de modelado, puedo reconstruir esta caja fácilmente :)

El siguiente paso es texturizar la caja en Mari. Para ello necesitamos un buen uv mapping.

Voy a exportar tanto las cámaras como el modelo a Mari, para así poder proyectar a través de las cámaras utilizando las fotografías raw. Para ello necesito tener el modelo en la posición original de Photoscan. Basta con resetEar el locator padre y todo estará perfectamente posicionado.

Una vez importado en Mari, basta con seleccionar 5 o 6 cámaras y proyectar desde ellas. Todo debería encajar prácticamente a la perfección.

El último paso del proceso, aunque puede ser realizado antes en el pipeline, es neutralizar mis texturas (o fotografías) utilizando el Macbeth chart en Nuke.

Finalmente unos render test con el modelo final. De esta forma podemos realizar atrezzo fotorrealista para nuestros sets digitales de forma rápida, sencilla y efectiva.

Si eres suscriptor de elephant vfx pro, puedes acceder aquí a un video exclusivo de más de 40 minutos donde explico todo este proceso de forma detallada.

En esta ocasión os muestro como crear de forma extremadamente fácil y rápida, sistemas de multitudes para fondos, utilizando las partículas de Nuke. Para ilustrar el ejemplo, vamos a utilizar figuras Lego, que como bien sabéis, nos gustan mucho.

Este post contiene un video explicativo de más de media hora para nuestros suscriptores elephant vfx pro.

  • Lo primero que necesitamos es modelar un geometry support o proxy donde pretendemos colocar el sistema de partículas. En este caso he modelado las gradas de un estadio, similar a la fotografía que acompaña este post. He separado las gradas en dos .obj uno los asientos en si, que servirán de emisor de partículas, y otro, los túneles y vallas de las gradas, que no emitirán ningún tipo de partícula, sólo son parte del decorado.
  • Ahora necesitamos el "source" de las partículas, es decir, los sujetos que pretendemos que populen las gradas que acabamos de modelar. En este caso tenemos imágenes 2D de Lego, que gracias a que tienen su canal alpha, pueden ser fácilmente recortadas. Otra buena forma (mucho mejor) de realizar esto, sería realizando renders ortográficos de figuras de Lego. O en el caso de un plano de VFX, podríamos tener footage de actores en pantalla verde o azul, y fácilmente podríamos rotoscopiarlos para crear el mismo efecto.
  • Ya en Nuke, leemos todas las figuras de Lego, activando la opción "premultiply" para utilizar el alpha de las imágenes en viewport.
  • También necesitamos importar los dos .obj que forman las gradas del estadio.
  • Conectamos ambos mediante un nodo scene para visualizarlos en 3D.
  • Podemos emitir partículas desde todos los asientos de las gradas, o desde una selección que hagamos nosotros. Utilizando un nodo geoSelect podemos seleccionar vertex, faces o edges y guardar la selección. Muy útil por ejemplo, para crear diferentes sistemas de partículas. Digamos que queremos a los seguidores de un equipo con camisetas rojas en una zona de la grada y a los seguidores del equipo contrario con camisetas azules en una zona diferente de las gradas.
  • El nodo particleEmitter nos permite crear un sistema de partículas, suficientemente avanzado y sencillo de utilizar al mismo tiempo. Podéis echarle un vistazo a los settings que estoy utilizando en la captura.
  • Básicamente necesitáis conectar cada una de las figuras Lego a los inputs de particles y el geoSelect al input emitter.
  • Fijaos que también he añadido un transform para colocar con mayor precisión las partículas resultantes.
  • Finalmente necesitamos un scanline render y la cámara del plano para renderizar el sistema de partículas en 2D y componerlo con el resto de capas de nuestro plano.
  • Algunos renders variando la cantidad de partículas, es decir, de figuras de Lego populando las gradas.

Los suscriptores de elephant vfx pro podéis desde aquí acceder al contenido exclusivo de este post, un video detallado de más de media hora.

Posted
AuthorXuan Prada
2 CommentsPost a comment

Una de las opciones más útiles existentes en Clarisse son los shading layers. Pueden utilizarse para diferentes tareas, y además combinarse entre si para crear sistemas de shading complejos. En esta ocasión vamos a ver como utilizar los shading layers para renderizar y crear variaciones de crowd (multitudes) de forma muy rápida, y sobre todo, muy sencilla. Necesitando apenas unos minutos para gestionar el shading y sus variaciones en centenares de personajes.

Este post viene acompañado de un video de alrededor de una hora para los suscriptores del programa elephant vfx pro.
Todos los suscriptores ya habéis recibido un email con toda la información.

  • Lo primero que he hecho, es crear un setup IBL, con un día más bien nublado sin dirección de luz muy marcada.
  • He importado el cache de animación con crowd en un context llamado geometry y también he creado un context donde crearé todos los shaders y texturas.
  • Como se puede observar en la imagen, los caches de animación están completamente desorganizados en la escena, tal cual vienen del paquete de simulación. Gracias a los shading layers podremos asignar fácilmente los correspondientes shaders y texturas, también variaciones de los mismos.
  • Clarisse nos permite asignar shading layers bien por nomenclatura exacta de los assets que van a recibir el shader o bien por localización de los mismos. Por ello, también he creado algunos context adicionales, para explorar ambas metodologías.
  • Gracias a una estructura de shading layers muy simple y a unas reglas básicas, tanto de nomenclatura como de localización, con apenas una docena de shaders podemos renderizar un sistema de crowd complejo en apenas unos minutos de trabajo.
  • En el caso de querer ver en viewport el comportamiento de un shading layer específico, basta con seleccionar el modo previz, apuntar al context donde tenemos los crowd y seleccionar el shading layer.
  • Finalmente subimos el sampling en el raytracer para renderizar la escena con calidad final.

En el siguiente video disponible para suscriptores del programa elephant vfx pro, podéis ver todo el proceso detallado y con explicaciones adicionales, duración alrededor de una hora.

Hace tiempo ya os conté como proyectar en Nuke en 3D sobre el espacio UV, algo muy común, sobre todo en tareas de matte painting. Hoy voy a contaros otro workflow también muy común para matte painters, environment artists o texture painters.
Como sabéis, Mari y Nuke son las herramientas más utilizadas en VFX para tareas de texturizado, por lo general utilizaremos Mari para este tipo de trabajos, ya que todo resulta más sencillo, pero con frecuencia los matte painters y environment artists utilizan Nuke para proyectar todo tipo de footage en geometrías básicas que soportarán sus matte painters

Desventajas de utilizar Nuke vs Mari

  • Es mas lento gestionar todo el material, ya que hay que trabajar UDIM por UDIM.
  • No existe virtual texturing, lo que hace todo el proceso más lento al tener que trabajar con footage de alta resolución (aunque se pueden utilizar proxies).

Ventajas de utilizar Nuke vs Mari

  • No depende del paint buffer. Siempre obtienes la mejor resolución de textura posible.
  • Muy rápido y fácil realizar actualizaciones de cualquier tipo. Nodos!
  • Te ahorras la licencia de Mari (£1,233)

Veamos como hacer el set-up

  • Para esta demo, voy a utilizar este panorama que servirá por ejemplo para el fondo de un plano, y supongamos que ha sido creado por un matte painter y necesita pintar cualquier cosa encima para adaptarlo a las necesidades del plano.
  • El objetivo es hacerlo en Nuke de forma no destructiva y ser capaces de exportar varios UDIMs para texturizar el geometry support donde se aplicará el matte.
  • El geometry support es un plano con 5 UDIMs.
  • Ya en Nuke, importa el geometry support y el footage.
  • Crea una cámara.
  • Utiliza un nodo Project 3D para conectar el footage y la cámara.
  • Desactiva la opción crop del Project 3D. Esto es necesario para expandir la proyección a UDIMs fuera del rango 0-1
  • Utiliza un nodo UV tile para apuntar al UDIM que necesites trabajar.
  • Conecta el img input del UV tile al geometry support.
  • Utiliza un nodo UV project conectado al geometry support y la cámara.
  • Asegúrate de que projection está off. Esta información viene dada por le UV tile.
  • Importa la cámara del plano o la que utilices para la proyección.
  • Si miras a traves de la camara en el espacio 3D la proyeccion deberia de verse de forma correcta.
  • Conecta un scanline render al UV project.
  • Configura el projection mode como uv.
  • En el espacio 2D veras la proyección aplicada al UDIM que previamente hayas indicado.
  • Si necesitas trabajar en otro UDIM basta con indicarlo en el UV tile.
  • Este es el setup básico que necesitas. A partir de aquí realiza los cambios que quieras en el footage, pinta encima, etc.
  • Exporta cada uno de los UDIMs como textura y listo para llevar a tu software 3D. Aquí un ejemplo renderizado en Maya/Arnold.

El otro día un alumno del curso "Técnicas guerrilla para la creación de planos VFX" me escribió un email preguntándome si Arnold no tenía AOVs para RAW lighting y albedo, ya que anteriormente trabajaba con otros motores de render que si disponían de los mencionados AOVs.

La respuesta es si y no. Es decir, por defecto si miramos la lista de AOVs de Arnold, no veremos ninguno llamado RAW lighting o albedo. Pero si, podemos fácilmente crearlos, os explico un par de soluciones.

  • En los AOVs de Arnold, como veis en la imagen los AiStandard no disponen de AOVs para RAW lighting o albedo.
  • La solución más sencilla es utilizar los AlShaders. Que como podéis comprobar, si que incluyen AOVs tanto para RAW lighting como albedo. Solucionado.
  • Supongamos que tenemos que utilizar AiStandard, aun así, podemos controlar de forma individual este tipo de información. Lo que necesitamos hacer es renderizar los AOVs que comúnmente renderizamos, dependiendo de las necesidades de cada uno, pero generalmente seran AOVs primarios y AOVs tecnicos.
  • También necesitamos hacer un albedo a mano, es decir, sustituyendo todos los shaders AiStandard de la escena por Surface shaders de Maya, que como sabéis, no les afecta la iluminación. En una escena muy compleja, esta tarea puede ser tediosa, pero raramente necesitaremos el albedo de toda la escena, solo de algunos hero assets. Además, esta tarea puede ser automatizada mediante scripting. ¿Algún voluntario?
  • Una vez en Nuke, voy a importar el beauty y el albedo pass.
  • Si dividimos uno por el otro obtenemos el RAW lighting. Con lo que podemos manipular la iluminación sin afectar a el color.
  • También podremos manipular el color independientemente de la iluminación. En este caso estoy tocando el color utilizando un color correction y clonando parte de la textura utilizando un roto paint.
  • Vuelvo a juntar los dos componentes, luz y color utilizando un multiply.
  • Si no hubiera realizado ningún ajuste a la iluminación o al color, esta operación debería de darnos exactamente el mismo resultado del beauty.
  • Finalmente como tenia tambien la informacion de sombras almacenadas en el alpha, provenientes de un shadow catcher, voy a ponerle un suelo a la imagen :)

Uno de los AOVs que más vamos a utilizar durante la etapa de look-development es el AOV con información de UVs de las diferentes partes de nuestros assets. En este video muestro un par de alternativas para renderizar este AOV en Arnold Render y como utilizarlo en Nuke. El único requisito es que los assets tengan un UV mapping decente.

Estas metodologías y otras similares las pondremos en practica en el curso "Texturizado y look-dev avanzado".

Edito: En el video se me ha olvidado mostrar que en el nodo aiUtility el shade mode tiene que ser flat, si no, encontrarás distorsiones o errores de escala en tu AOV de UVs.

Posted
AuthorXuan Prada