Isotropix Clarisse es una "nueva herramienta" (presentada en Siggraph 2012) que básicamente y para resumirlo mucho, actúa como scene assembler. Es decir, no es un software 3D al uso, si no que has de crear tus assets, cámaras, animaciones, etc, en cualquier software 3D, y después exportar todo a Clarisse (mediante alembic preferiblemente), para una vez allí, trabajar el Look-Dev, Lighting y Render de tus planos y secuencias.

Clarisse es un poderosísimo ray-tracer, donde todo funciona en tiempo real. Esto es muy importante para el artista, ya que no es necesario esperar para visualizar los cambios de shading y lighting. Además Clarisse es muy rápido y estable, incluso utilizando escenas muy complejas, tanto a nivel de geomteria, como a nivel de shading, lighting y efectos de post-proceso como motion blur, dof, etc.

El estudio donde trabajo, lleva utilizando Clarisse algún tiempo. Ya lo utilizamos de forma discreta en Godzilla, y ahora lo estamos utilizando de forma muy extensa en Exodus. No hace mucho Double Negative ha anunciado que Clarisse será su herramienta primaria para Look-Dev y Lighting, así que creo que es un buen momento para empezar a hablar de esta herramienta en el blog.

Mi experiencia con Clarisse es de unos 9 meses más o menos trabajando en Exodus, y aunque no soy un experto ni mucho menos, creo que ya me defiendo bastante bien.
Hoy, voy a contaros uno de los básicos de cualquier software 3D cuando trabajamos en proyectos de VFX, Image Based Lighting.

  • Empezamos por crear un nuevo context dentro de la escena. En este caso lo he llamado ibl.
  • El siguiente paso es crear un esfera que actuará como soporte para nuestro HDRI.
  • La esfera la sitúo dentro del context ibl, para que todo esté bien organizado.
  • He aumentado el radio de la esfera considerablemente, ya que éste será nuestro "mundo" donde meteremos todos los assets del plano.
  • En la pestaña image view podemos ver el render en tiempo real. Ahora mismo simplemente tenemos la esfera iluminada por la luz que viene por defecto. Podemos eliminar esta luz.
  • Creamos un nuevo material matte al que no le afecta la iluminación.
  • Lo asignamos a la esfera.
  • Una vez asignado el material, la esfera se ve completamente negra.
  • Creamos una imagen para poder cargar la textura HDRI.
  • Conectamos la textura al color input del matte shader.
  • Seleccionamos la imagen HDRI en el path de la textura.
  • Cambiamos el tipo de proyección a Parametric.
  • Los mapas HDRI son texturas 32bits codificadas en un espacio de color linear, así que tenemos que indicar en las opciones de la textura que estamos utilizando ese espacio de color.
  • He creado dos esferas que me servirán para chequear mi iluminación. Presionando la tecla "f" puedo centrarlas en pantalla.
  • También he creado un plano para chequear las sombras y dos materiales standard, uno para cada esfera. Uno será gris matte y otro será un material cromado, para simular lighting checkers.
  • De vuelta en la ventana de render, podemos ver como las esferas están afectadas por el entorno HDRI.
  • De momento, solo los secondary rays, como las reflexiones, están siendo afectados.
  • Para que la iluminación funcione como tal, tenemos que crear un tipo de luz llamada "gi_monte_carlo".
  • Así de primeras tendremos mucho ruido en la escena, básicamente esto ocurre porque los mapas HDRI tienen demasiado detalle en forma de valores de color/exposición.
  • Para solucionarlo, podemos cambiar el tipo de interpolación de la textura a Mipmapping.
  • Para seguir limpiando el ruido de la escena, también podemos aumentar la calidad de sampling de la luz gi_monte_carlo".
  • El ruido de la escena también depende de la cantidad de Anti Aliasing Samples del raytracer de la escena.
  • Para limpiar el ruido, en general hay que combinar los samples de las luces con los samples del raytracer. Un sampling de 8 aproximadamente para el raytracer es un valor adecuado para producción, y las luces pueden ser de 12 smaples aproximadamente. Todo depende de las necesidades de la escena.
  • Existe otra opción mas barata, alternativa a utilizar GI.
  • Elimina la luz "gi_monte_carlo".
  • Crea una luz "ambient_occlusion".
  • En su color input, conecta la textura HDRI.
  • Verás que el render en principio, sale negro, excepto los secondary rays.
  • Selecciona la esfera que hace de entorno y desactiva la opción "cast shadows".
  • Todo funcionará correctamente.
  • En este caso para limpiar el ruido deberás aumentar los samples del ambient occlusion.
Posted
AuthorXuan Prada

Recientemente nos encontramos con la necesidad de iluminar un personaje muy reflectivo (o reflectante) en un entorno cuya iluminación cambiaba constantemente.
El personaje sería creado completamente en 3D pero por supuesto habría que integrarlo en un footage dado, donde las fuentes lumínicas (prácticas, es decir, reales), cambiarían de intensidad y temperatura de forma rápida.

Además estamos hablando de un plano secuencia muy largo, sin cortes, donde el personaje se ve afectado por el entorno de forma ininterrumpida.

En esta situación, esta claro que un HDRI equirectangular convencional, no sería suficiente para integrar el personaje, ya que los constantes cambios de iluminación no se registrarían en el mapa panorámico.

Spheron

La primera solución real, y probablemente la mejor y más adecuada es utilizar un Spheron. Por supuesto si consigues comprarlo o alquilarlo a tiempo, cosa que se presenta cada vez más difícil.
Descartada la opción del Spheron, lo siguiente era realizar diferentes HDRI equirectangulares, uno para cada condición lumínica diferente y animar las transiciones entre ellos a medida que el personaje se mueve por el set.

En algunas ocasiones esto funcionaba bien, pero en otras, especialmente cuando había elementos que parpadeaban, luces que cambiaban de color rápidamente, etc, múltiples HDRI no eran suficiente.
Lo que realmente necesitábamos eran HDRI animados en tiempo real, es decir, recogidos mediante video .RAW y diferentes exposiciones en el set de rodaje.

Método convencional

d800.jpg

La solución parecía más o menos clara, montar 3 reflex digitales de las que normalmente utilizamos (Canon 5D Mark III o Nikon D800) en un soporte creado por nosotros mismos que calculase el overlapping de las cámaras (entorno al 33%), cada una de ellas con lentes ojo de pez.

De esta forma podríamos registrar la información lumínica del set en tiempo real, simplemente grabando video.

Pero claro, ni la Canon 5D Mark III ni la Nikon D800 graban en formato .RAW, todas graban comprimiendo, aplicando un espacio de color, y por supuesto, ninguna graba video con multiexposiciones.

Red Epic

Por descarte, llegamos a la conclusión que lo que necesitábamos era el mismo setup de las reflex digitales, pero utilizando cámaras Red Epic. Lo malo de esta idea, es que tres cámaras Epic más tres lentes ojo de pez, es un setup muy caro para trabajo survey de set de rodaje, además que montar todo eso en un soporte creado por nosotros, montado a su vez en un steady cam, es algo muy pesado para poder caminar por un set enorme.

Finalmente dimos con la tecla, y la solución salio por si sola.
Todos sabemos que los HDRI para iluminación no necesitan ser perfectos, de hecho, nunca lo son, necesitan ser funcionales. Así que no nos importaría tener un poco de distorsion en nuestros HDRI con tal de abaratar el setup y facilitar la experiencia de recogida de información.

De esta forma, utilizamos una sola cámara Red Epic, con un objetivo 18mm.
La montamos en un soporte creado por nosotros mismos, en cuyo extremo opuesto colocamos una bola cromada de akromatic, de 25cm de diámetro.
Esta bola permite recoger mas de los 180 grados que recogería un ojo de pez, de hecho recoge alrededor de 220 - 240 grados.

Como sabéis, la Red Epic permite grabar video en .RAW y recoger multiexposiciones simultáneamente. Grabamos 5 exposiciones diferentes a 4k para recoger la información lumínica.
Posteriormente transformamos el video en Nuke para convertirlo en un panorama equirectangular animado.
Finalmente combinamos todas las exposiciones y voilá, ya teníamos nuestro HDRI equirectangular animado para iluminar nuestro personaje.

Esto nos permitió iluminar el personaje de forma rapidísima, con resultados muy buenos y precisos, y con unos tiempos de render prácticamente ridículos.
Utilizando luces 3D jamás hubiésemos conseguido la misma precisión, ni la misma calidad en los reflejos, y muchísimo menos, los mismos tiempos de render.

De momento no puedo mostraros nada de esto, pero si quiero contaros otras pruebas que hicimos y que creo pueden ser muy interesantes.

GoPro

Durante este proceso que he descrito anteriormente, tuvimos que hacer varias pruebas en el set, en diferentes localizaciones, algunas de ellas de difícil acceso para una persona de 1.85cm
Tuvimos unos días para realizar las pruebas, cuando se estaba construyendo el set, y por aquel entonces aun no disponíamos del equipo necesario, pero queríamos empezar a realizar pruebas y enviar el material al estudio, para que se empezaran a organizar con todo lo relacionado con el método de trabajo.

Decidí hacer los tests con una GoPro Hero3 Black Edition.
La cámara es muy pequeña, ligera y manejable. Por supuesto no graba .RAW, pero se le puede aplicar un perfil de color flat, para que no haga un bake del espacio de color que utiliza la cámara.
Graba en 4K y tiene control manual sobre el balance de blancos. Para nuestros tests, era la herramienta perfecta.

La montamos en una base de akromatic, utilizando un soporte de Joby, y en el otro extremo de la base colocamos una bola cromada de akromatic de 25cm.

En cuanto a la postproducción para generar los mapas panorámicos equirectangulares, seguimos el mismo método que teníamos pensado para la Red Epic, creando así templates en Nuke para agilizar el trabajo.
Digamos que esto era una simulación del trabajo final, pero que nos sirvió para darnos cuenta de que todo iba a funcionar bien.

Incluso hicimos pruebas de render, y todo parecía funcionar a la perfección. Obviamente aquí no estamos generando true HDRI, ya que no grabamos multiexposiciones como si haríamos con la Red Epic, pero como pruebas que eran, no se podía pedir mas.

No sería una opción descabellada para proyectos indies o de bajo presupuesto.

Footage original capturado con GoPro + akromatic kit

En este caso, mi presencia en el centro de la bola no ayuda demasiado, aunque las fuentes lumínicas en esta ocasión son cenitales y tampoco perjudica demasiado. De todas formas con la utilización de un steady cam solucionamos este problema, al menos, lo redujimos considerablemente.

Nuke

El trabajo en Nuke es muy simple, basta con hacer un spherical transform del footage.
Para las distorsiones laterales se puede pintar con rotopain y tratar de corregirlas, pero en general no son un problema.

Resultado final utilizando las imagenes de GoPro

GoPro + akromatic kit

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

Cuando trabajamos con linear workflow y entornos HDRI, no importa el paquete 3D o el motor de render, siempre resulta difícil mantener la consistencia entre texturas y backplates. En ocasiones son demasiado oscuras, o lavadas, etc.

El problema generalmente viene dado porque las texturas son multiplicadas por la iluminación que viene del HDRI, y esa información de más necesita ser compensada de alguna forma.
Estamos añadiendo información a las texturas que ya se encuentra en ellas, por lo que debemos restar esa información proporcionada por el HDRI.
Este proceso, se llama normalizar las texturas.

Aquí abajo dejo una forma sencilla de solucionar este problema.

  • Para empezar crea un set-up image based lighting.
  • Utiliza un plano con un material mia_material_x_passes completamente blanco, sin ningún tipo de reflexión.
  • Lanza un render y configúralo como linear.
  • Crea otro material mia_material_x_passes con una textura con el gamma corregido, y asígnalo al plano.
  • Estoy utilizando este mapa de textura.
  • Si renderizas en este punto, te darás cuenta de que la textura se ve lavada. Esto ocurre porque esta siendo multiplicada por la información lumínica de la escena.

Para arreglar esto:

  • Aplica de nuevo el shader blanco al plano.
  • Haz un bake de la información lumínica.
  • Ahora tenemos que dividir la información de color de la textura por la información lumínica del entorno, esto nos dará el color bruto o RAW.
  • Conecta la textura con su gamma corregido al input 1 del nodo multiply/divide.
  • Conecta al textura bakeada .hdr al input 2 del nodo multiply/divide.
  • Pon la operacion como divide.
  • Renderiza de nuevo y ahora debería de verse correctamente.

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

Otro panorama que realicé a la salida del trabajo en Portland Mews, uno de esos rincones escondidos del Soho, en Londres.
El panorama HDRI como de costumbre, viene con backplates y referencias de iluminación.

Puedes descargarte el set aquí.

Posted
AuthorXuan Prada

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

Aquí os dejo tres panoramas tomados en diferentes puntos de la Isla de Skye, en Escocia.
Estas imágenes fueron tomadas con mi nueva Nikon D800 así que el resultado final ronda los 15.000px de resolución. Lo que significa que no solo son válidos para 3D lighting si no también para impresión.

Nota: Estos panoramas no son full 360, es decir, no cubren el entorno en su totalidad.

Isle of Skye 0001

Isle of Skye 0007

Isle of Skye 0004

Puedes descargar aquí los panoramas y los backplates.

Posted
AuthorXuan Prada