¿Qué es OpenEXR?

OpenEXR es un formato de imagen, como bien pueden ser .tif .jpg, Cineon u otros. Es utilizado para guardar imagenes en disco, no más que eso.
EXR fue desarrollado por Industrial Light and Magic y hace unos años lo publicaron como software  libre. Ha ganado un Oscar tecnológico por su contribución a la creación de imágenes para cine.

EXR tiene unas notorias ventajas respecto a otros formatos de imagen que nos permiten realizar un uso muy inteligente del mismo.
Como por ejemplo:

  • Puede almacenar un rango de color mucho más alto que archivos Cineon (estandard previamente utilizado en cine).
  • No hace clamping en el rango 0 a 1 como ocurre con archivos .tiff de 8/16 bits, permitiendo almacenar información que no se ve en pantalla, pero a la que se pude acceder en cualquier momento.
  • Estos tipo de archivos permite almacenar diferentes tipos de información. Por ejemplo 16 bits floating point para información de color, 32 bits floating point para información de profundidad e integer numbers (números enteros) para identificadores de objetos, máscaras, etc.
  • Las imágenes pueden ser comprimidas utilizando diferentes métodos sin perder calidad.
  • Pueden almacenar metadata, como información de lente, exposición, film stock, etc.
  • Imágenes de 16 bits floating point pueden ser movidas sin perder calidad a la tarjeta gráfica y ser manipuladas después de ser mostradas. Esto permite real time grading en la tarjeta gráfica.

¿Porqué utilizamos OpenEXR en VFX?

  • Estandarizar el espacio de color

El principal beneficio de utilizar EXR es para estandarizar el espacio de color a través de todos los departamentos de un estudio de VFX.
Ambos pipelines, 2D y 3D ya pueden utilizar exactamente el mismo espacio de color, y las conversiones Log/Lin se convierten en algo del pasado.

  • High Dynamic Range

EXR tienen un rango dinámico muho más alto, y una mayor precision en color que las soluciones existentes de 8 y 10 bits.
Cineon puede almacenar aproximadamente 11 f-stops de información, lo mismo que un negativo de película tradicional prácticamente.
EXR puede almacenar 30 stops sin pérdida de información, además de 10 f-stops en los niveles negros con muy poca pérdida de información.

Además de ser mayores en rango, también son mayores en precisión, ya que tienen 1024 steps por f-stop comparado con los 90 steps por f-stop de Cineon.

El siguiente ejemplo muestra la misma imagen EXR, pero la cantidad de detalle e información varía entre ellas. R2-D2 se ve perfectamente, y a medida que revelamos mas información podemos ver a Darth Vader al fondo.
La cantidad de esposición se puede ajustar al vuelo para revelar y ocultar detalles.
 

OpenEXR original

OpenEXR 3 stops por encima de la imagen original.

OpenEXR 5 stops por encima de la imagen original.

  • Compresion

Los archivos EXR utilizan aproximadamente 20-30% menos de espacio en disco que Cineon. Imagenes fotografiadas con grano comprimen mejor utilizando el metodo Piz. (default en Nuke o Shake)
3D renders comprimen mejor utilizando el metodo Zip. (default en RenderMan)

¿Cómo utilizamos OpenEXR?

En 2D los utilizamos en Nuke. También soporta AOVs embebidos en un solo fichero EXR.
También soporta stereo files SXR.
El visor de Nuke debería estar configurado para utilizar el LUT apropiado para el proyecto en el que se trabaje, para que así el EXR se muestre como debería.

Photoshop no es demasiado friendly para utilizar EXR, ya que la gestión de espacios de color en Photoshop es prácticamente inexistente.
Generalmente los estudios de VFX tienen soluciones internas para facilitar el trabajo de los Matte Painters.

En 3D todos los render finales que se envian a 2D para composición son renderizados en OpenEXR.
Existe la opcion de elegir el tipo de compresión como ya hemos visto y si queremos renderizar los diferentes AOVs por separado o embebidos en un mismo fichero.

En texturizado, siempre que partamos de imágenes de referencia RAW deberemos trabajar en OpenEXR, nunca .tiff u otros formatos.
Mari está perfectamente adaptado al trabajo lineal y fácilmente pueden cargarse LUTs para visualizar las texturas con el espacio de color del proyecto.
Si se empiezan las texturas pintando a mano (from scratch) hay que asegurarse de generar capas 16 bits y exportar canales siempre en OpenEXR. Tambien hay que ser cuidadoso con el tipo de channel que se pinta (color o scalar).

Las texturas EXR generalmente se tilean y se crean mip-maps para facilitar y agilizar su lectura.

Loos flipbooks de los estudios, bien sean herramientas internas propietarias o herramientas comerciales como Hiero, deben tener controles que permitan cambiar el LUT del proyecto en el visor, cambiar la exposición al vuelo, etc.

Posted
AuthorXuan Prada