La Creación de OpenVPCal

Hay veces que empiezas un proyecto pensando terminarlo en unos pocos días, pero al final te lleva un poco más de tiempo. Bueno, pues estoy aquí para hablar de uno en el que "un poco más" se convirtió en más de 2 años. Y por esto culpo a las increíbles personas con las que pude desarrollarlo. Esta es la historia de OpenVPCal...

OpenVPCal es una herramienta open-source de calibración de color de pantalla a cámara para producción virtual (In-Camera VFX) que he estado desarrollando durante la mayor parte de los últimos 2 años junto con Francesco Luigi Giardiello, un técnico de imagen de Netflix e increíble científico del color, así como su equipo, además de una enorme cantidad de feedback de muchas otras personas.

OpenVPCal está ahora (escribiendo esto en Noviembre 2022) en estado beta y siendo probada por 40+ partners alrededor del mundo. La herramienta fue presentada en Siggraph 2022 por Carol Payne y Francesco 1, y también hicimos una presentación de la herramienta en Netflix Post Production Summit 2022 en Madrid, la semana pasada.

Así que aquí va una breve historia sobre cómo ha surgido todo esto: Orca como empresa, la colaboración con Netflix y la creación de OpenVPCal, la herramienta de la que vamos a hablar.

Este no será un post técnico sobre la herramienta (¡me encantaría extenderme mucho más sobre eso en otros posts!) sino en su lugar más una historia anecdótica sobre cómo y por qué ha ocurrido.

Orca Studios

Orca Studios es una empresa española que está centrada principalmente en efectos visuales y producción virtual para cine.

Plató LED de Orca en Madrid (fotografía de oct 2020)

Nuestra aventura con los In-Camera VFX empezó en los primeros meses de 2020. Orca nació bajo el paraguas de Nostromo Pictures, una productora española que garantizaría un flujo constante de proyectos, dándonos muchísima oportunidad de probar y experimentar con estas tecnologías innovadoras… Así que se juntó un equipo que venía de la industria de los efectos visuales (como yo mismo) además del desarrollo de videojuegos y entornos.

Así que se construyó el primer plató LED de ICVFX generados en tiempo real del país y… sí, justo cuando estábamos empezando, vino una pandemia. Pero eso nos mantuvo focalizados en el desarrollo durante los meses siguientes, principalmente en la captura y la generación de entornos. Además, la capacidad que brinda la producción virtual para rodajes controlados con un equipo reducido y los protocolos covid la convirtieron en una solución ideal para la situación que estábamos viviendo. Así que, para mayo de 2020 ya estábamos en una buena posición.

Disguise y los primeros proyectos comerciales

Una cosa de la que nos dimos cuenta es que todavía no teníamos la potencia de desarrollo necesaria para soportar el sistema completo que necesitábamos y, al mismo tiempo, recibíamos más y más solicitudes para rodar con plates de fondo (planos pre-rodados). Así que decidimos cambiar de máquinas de Unreal Engine diretas, a un sistema basado en Disguise, con su recién lanzado RenderStream, que nos permitiría introducir un media server potente y correr Unreal Engine directamente dentro de él, y ese sistema nos resultó extremadamente potente para rodar con plates Y UE con cámara trackeada, todo a la vez.

Rodamos nuestro primer anuncio de TV ICVFX usando plates en julio 2020. Aquí puedes ver el making-of:

Y dos meses después, tuve la oportunidad de supervisar el primer spot de televisión del país que usaba In-Camera VFX con UE y cámara trackeada.

Desde entonces hemos sido uno de los primeros estudios en implementar muchas cosas en producción alrededor de los In-Camera VFX con Unreal Engine, especialmente gracias a la colaboración con empresas increíbles como Epic Games, Disguise, o Netflix. De hecho fuimos el primer estudio que utilizó UE5 para In-Camera VFX!

En los últimos meses de 2020, Orca se estableció como un estudio de referencia para rodar publicidad con ICVFX y UE. En los meses siguientes seguimos haciendo proyectos similares, y eso nos permitió correr y mejorar nuestro sistema sin las demandas de rendimiento o precisión de color del cine.

Sin embargo, como la mayoría del equipo de Orca veníamos de la industria del cine, y especialmente con Nostromo lista para darnos pelis en las que trabajar, lo que de verdad nos movía era aspirar a la máxima calidad de pixel posible; así que empecé a aprender sobre ciencia de color, dándome cuenta de que nunca terminábamos de conseguir hacer que el contenido en pantalla se vea exactamente como queríamos. Pero esto pronto iba a cambiar…

Colaboración con Netflix

(se puede pronunciar casi igual que Calibración)

Una propuesta de Netflix nos llegó en noviembre de 2020 que no podría haber venido en mejor momento: planeaban hacer un ejercicio explorando el potencial de los In-Camera VFX en producción para luego poder difundirlo (que es el vídeo que posiblemente visteis ayer los que estuvisteis por aquí!). Con lo que íbamos a hacer una colaboración entre 4 empresas para practicar un caso real en el que un set de rodaje real se escanea, y se reconstruye en digitalmente, para después replicarlo en In-Camera VFX con actores, para ver si conseguíamos replicar planos de la serie original, sin diferencias visuales visibles… como si estuviéramos rodando planos de inserto, pero esta vez en un plató LED. Y la escena seleccionada fue el famoso banco de La Casa de Papel.

Para esta misión, El Ranchito había sido elegida para trabajar en la fotogrametría y reconstrucción virtual del asset, vamos, el entorno digital y la escena de Unreal Engine. Vancouver Media traería al equipo que rueda la serie de verdad (con el DOP Migue Amoedo y su equipo) además de algunos objetos prácticos como las armas o los trajes rojos famosos de la serie… y nosotros desde Orca pondríamos el set, los medios técnicos y la supervisión de la propia producción virtual. Esto sí que es una misión divertida.

Y como toda buena misión divertida tiende a traer consigo nuevos retos, esta no sería una excepción. Para este proyecto teníamos que replicar planos originales de La Casa de Papel que ya habían sido rodados. Y esto significaba que la precisión de color sería un tema central, con lo que esta vez ya no podríamos librarnos sin tenerlo completamente bajo control.

Te presento a Frankie

Según empezamos a preparar todo por nuestra parte, Netflix nos puso en contacto con Francesco, técnico de imagen y parte de su equipo de Production Innovation en Londres.

Este equipo es una división especial que ayuda a todas las producciones de Netflix a planificar y comprender sus flujos de trabajo, especialmente cuando giran en torno a nuevas técnicas y tecnologías.

Francesco nos ayudaría a afinar toda la ciencia de color, la calibración y a entender el flujo de datos de contenido a pantalla a cámara, tan especial de In-Camera VFX. Y tras una conversación inicial con él, vimos que estábamos hablando exactamente de los mismos temas, y me explicó algunos puntos en produndidad como el error metamérico o la linearidad, que eran precisamente los temas que yo no tenía ni idea sobre cómo solucionar.

Pequeña explicación de estos conceptos, siéntete libre de ignorarlo si no te interesa:

  • Fallo metamérico: Incapacidad para producir un metamerismo con éxito.
  • Metamerismo: Fenómeno en el que dos luces diferentes (con dos distribuciones de energía espectral diferentes) engañan a un observador (humano o dispositivo) para que las perciba como si fueran exactamente del mismo color. Este es un aspecto fundamental de la ciencia del color en general, ya que todas las pantallas y dispositivos de reproducción de color con los que trabajamos a diario se basan en este concepto: nos hacen percibir millones de colores diferentes que vemos en el mundo real, mientras que la distribución espectral de potencia de la luz que emiten en realidad sigue siendo tan limitada como los componentes de emisión de color del dispositivo (LED de banda estrecha, OLED, etc.).
  • Linearidad: En el contexto de In-Camera VFX, hace referencia a todo lo relativo a crear operaciones de color de forma lineal (la forma en que funcionan la naturaleza y las luces reales), ya que el contenido que mostramos en las pantallas LED para producción virtual, generalmente no está pensado para ser agradable al ojo humano, sino que está destinado a ser grabado por una cámara y, por lo tanto, tiende a beneficiarse mucho de poder mostrar la luz de forma lineal, de la misma forma que lo hace en el mundo real... por lo que el tone mapping creativo que generalmente se aplica a las imágenes a modo de transformación para visualización, en el contexto de ICVFX generalmente produce algunos comportamientos no deseados.

Francesco fue increíblemente útil y también propuso algunos siguientes pasos a seguir. Así que empezamos a probar los diferentes puntos, y pronto nos dimos cuenta de que habíamos entrado en una madriguera muy, muy profunda.

Como habrás visto en la sección Herramientas de mi web, tengo experiencia como desarrollador de herramientas de composición y Nuke (un software con el que probablemente paso más tiempo que con cualquier ser humano) es una herramienta extremadamente potente para operaciones matemáticas de color. Así que esta fue una buena combinación... Francesco abrió un mundo de conocimiento sobre ciencia de color, y a la vez yo no pude evitar traducir cada uno de estos nuevos conceptos a nodos de Nuke y pequeñas automatizaciones, que eventualmente se convertirían en una herramienta de calibración de color.

Para cuando hicimos la prueba de La Casa de Papel, ya teníamos una prueba de concepto que funcionaba y esto nos ayudó a abordar el rodaje con confianza sobre lo que vería la cámara y sobre formas de ayudar a Migue y al equipo de cámara a hacer los cambios que necesitasen.

Puedes ver aquí el vídeo del rodaje:

Creo que es realmente importante, para tener éxito cuando trabajas con un nuevo sistema, primero pararte a comprender muy bien sus limitaciones, para que luego puedas solucionarlas y explotar sus fortalezas de manera creativa. Y tuvimos la suerte de que todo el equipo en el rodaje estaba super alineado con este tema. Así que fue muy bien y fue un ejercicio increíble de aprendizaje para toda la gente involucrada, y prueba de que los In-Camera VFX son una solución que merece la pena considerar a partir de ahora.

Hagamos OpenVPCal!

Decidimos formalizar nuestra intención de crear una herramienta de calibración de color al completo, que cualquiera pudiera usar sin demasiado conocimiento técnico, y que soportase todas las posibles combinaciones de cámaras, lentes, pantallas, procesadores, etc. Ese es el momento en el que nació el proyecto OpenVPCal.

Desglose general de la LUT

La herramienta seguiría las siguientes premisas:

  • Reducción del fallo metamérico entre la cámara y las luces LED de pantalla/externas.
  • Fácilmente desplegable por cualquier persona sin ningún equipo adicional.
  • Suficientemente flexible hasta un punto que sea completamente agnóstico de tu pipeline.
  • Suficientemente rápida para lanzarse entre tomas sin retrasar al equipo de cámara.
  • Suficientemente robusta para soportar cualquier combinación de cámaras/lentes/ajustes.
  • Solución de todas las complejidades sin que te enteres.

Y además, acordamos también más tarde, gracias al apoyo increíble de Netflix y Orca, que este proyecto conjunto sería hecho open source y disponible gratuitamente para todo el mundo una vez estuviera listo.

Teníamos por delante un camino muy largo para aprender, probar, arreglar errores y recibir muchísimo input del equipo de Netflix y la gente increíble de otras empresas como Epic.

Así que básicamente a lo largo de 2021 y 2022 hemos empujado este proyecto adelante, llevándolo a un estado “production ready”. Durante este tiempo podía considerarse un prototipo, pero esto no nos ha prevenido de utilizarlo para muchas películas ya…

Películas como A Través de mi Ventana, Las Niñas de Cristal, o la secuela española que saldrá próximamente de Birdbox, todas tienen escenas de In-Camera VFX que he podido supervisar desde Orca y en todas ellas calibramos el sistema utilizando OpenVPCal. Y definitivamente es súper útil y rápido de usar, así que podemos considerarlo a prueba de producción.

So, what’s the current state of the tool? Well, after we finished a complete implementation in Nuke, we partnered with a few incredible Netflix engineers – Daniel Heckenberg and Francesco Giordana – to make an independent, extensible Python API possible. And that one’s now an integral part of the color operations in the Nuke tool that’s currently in beta testing. Next step will be developing a standalone app, starting Q1 2023, and the final Open Source tool is planned to be released in Q4 2023.

Personalmente, yo he podido aprender una enorme cantidad de cosas gracias a Francesco, Netflix y todas las oportunidades que han surgido a partir de esto, y quedo súper agradecido de ahora poder contribuir de vuelta, de esta forma.

Así que, ¡ahora ya sabes de dónde surgió todo esto!

En futuros posts, más técnicos, puedo entrar en los detalles de la herramienta. Si querrías estar al día sobre próximos posts y cosas, puedes suscribirte a mi newsletter. No he enviado nada aún, pero estoy recopilando emails de gente interesada para cuando sea que empiece con eso 🙂

Francesco mostrando cómo rodar los patches de calibración, en el Netflix Post Production Summit Madrid 2022.
  1. “OpenVPCal”: An Open Source In-Camera Visual Effects Calibration Framework: Carol Payne, Francesco Luigi Giardiello

Join my Newsletter

Suscríbete a mi newsletter para saber sobre mis herramientas, artículos y cursos.

Puedes suscribirte a mi newsletter para estar al día sobre mis herramientas, artículos, nuevos cursos y otra info relevante sobre la que escriba.

Section Coming Soon

Suscripción to get notified once this section is up and more!

Puedes suscribirte a mi newsletter para estar al día sobre mis herramientas, artículos, nuevos cursos y otra info relevante sobre la que escriba.