Esta publicación proviene de la guía para idiotas publicada por el artista Toadstorm, después de leerla entiendo que esto no solo es importante ya, si no que, todavía lo será más en un futuro inmediato, cada vez leo más sobre el tema y el sistema de ACES aparece por todas partes a la hora de gestionar bien el color en cualquier trabajo, ya sea animación o render estático, por eso me parece importante tenerla presente.
El propio Toadstorm explica que ha estado posponiendo el trabajo en ACES durante años, porque casi todas las explicaciones del sistema que a tratado de leer online eran muy técnicas y extensas, o resultaba ser como leer un anuncio de ventas sin información útil sobre la implementación.
Se necesita cierta experiencia y comprensión del tema para conseguir que un equipo de artistas trabajen con ACES de forma fiable, y para salvar mi propia cordura me quedé con el habitual flujo de trabajo lineal y traté de no preocuparme por ello. Ahora que estoy dirigiendo un equipo mucho más pequeño en mi trabajo actual, decidí que era el momento de tratar de implementar ACES de verdad, y este es mi intento de escribir lo que he aprendido en una guía práctica de por qué y cómo debe implementar ACES en su propio trabajo. Probablemente (definitivamente) simplificando demasiado muchos detalles, pero para eso están todas las guías técnicas largas y aburridas que la gente más inteligente que yo ha escrito.
Una nota importante: Soy un artista de producción 3D (técnico), no un científico del color. El idiota de esta Guía de idiotas soy yo. Sólo estoy tratando de traducir una gran cantidad de jerga difícil y teoría en algo que es práctico para su uso por los seres humanos normales, porque apenas podría tener sentido de ella yo mismo. Probablemente estoy tomando atajos y haciendo compromisos en ciertos lugares que harían sangrar los ojos de un Científico de Color Real, pero esa es la naturaleza de la producción, a veces tienes que romper las reglas para obtener la imagen que el cliente quiere.
¿WTF es ACES? ACES es un sistema de color que está destinado a estandarizar cómo se gestiona el color desde todo tipo de fuentes de entrada (película, CG, etc.), y proporcionar un espacio de trabajo correcto para que los artistas trabajen en cada etapa de la canalización de producción. Sean cuales sean tus imágenes e ignorando desde donde provengan, las conviertes en el estándar de color ACES, y ahora todo tu equipo está en la misma situación.
Para los artistas de CG, un gran beneficio es la gama de colores ACEScg, que es una gran gama que permite muchos más colores que sRGB. Incluso si está trabajando en un espacio de color lineal con render de punto flotante, el llamado flujo de trabajo lineal, las primarias de color (lo que define rojo, verde y azul) probablemente todavía sea sRGB, y eso limita el número de colores que puede representar con precisión.
¿Quién tiene la mayor gama? ¿ACEScg? Lo que normalmente pensamos como lineal versus sRGB está mal dicho, un espacio de color lineal puede utilizar primarias sRGB, que es con lo que la mayoría de nosotros fuera de ACES estamos haciendo cuando estamos trabajando con texturas o renderizaciones lineales.
Lo que normalmente llamamos sRGB también es usar las primarias sRGB, pero con una curva gamma 2.2 aplicada para que se muestre correctamente en monitores típicos. ACEScg, por otro lado, utiliza su propio conjunto de primarias llamadas AP1, que permite ese bonito triángulo grande o colores en el diagrama anterior. Recuerde que el estándar sRGB/Rec. 709 fue desarrollado de nuevo cuando todavía estábamos usando monitores CRT.
Este es un ejemplo rápido que muestra la diferencia entre una representación en el flujo de trabajo típico de sRGB lineal y un flujo de trabajo de ACES. Se puede decir de inmediato que los colores que se obtienen son significativamente más reales, especialmente en los puntos de brillo y saturación.
El flujo de trabajo lineal típico. ¡Mira esos colores super saturados!
La misma escena exacta, con los colores convertidos primero a ACEScg, que se muestran con el ACES sRGB LUT.
ACEScg es el espacio de color ACES de elección para usar para los artistas de CG porque está codificado linealmente (a diferencia de logarítmicamente, que tiende a ser cómo a la gente no-CG le gusta pensar en la exposición), por lo que su motor de renderizado y programa de composición de elección jugará muy bien con él. Hay otros espacios de color definidos en la especificación ACES, incluyendo el espacio ACES 2065-1 para fines de archivo e intercambio, pero como artista de CG del único que realmente necesita preocuparse por ahora es ACESCG.
|Agradecer cuando alguien te ayuda es de ser agradecido|
Por lo tanto, sabemos que tenemos ACESCG como el espacio de color en el que queremos trabajar. Sin embargo, tu monitor no puede mostrar todo este espacio. Incluso si tienes un buen monitor, probablemente sólo puede mostrar con precisión la gama DCI-P3, que todavía no es tan grande como ACESCG.
El otro espacio que necesita definir, es su espacio de "visualización". Esto es como cuando estás mirando un render lineal y todo parece demasiado oscuro hasta que pulsas el botón sRGB o gamma 2.2, la imagen debe transformarse de cualquier espacio de color en el que se represente en un espacio que le guste al monitor. Este espacio de visualización depende de su propia situación de monitor, pero si no tienes en un monitor de lujo, probablemente sea sRGB o Rec. 709 (los dos son muy similares). Tendrás que asegurarte de que cuando veas o compongas tus renders estés mirando a través del del visor LUT correcto que transforma tus renders de ACESCG a sRGB o Rec. 709 o Rec. 1886 o en lo que sea que estés.
Otra cosa, los espacios de color "Salida" en ACES tienen algo llamado "RRT" involucrado, que significa "Transformación de render de referencia". Esta es una forma demasiado técnica de decir que hay una transformación adicional sucediendo entre su escena ACEScg y su espacio de visor sRGB o Rec 709.
El RRT es similar a la curva S típica que aplicarías a los renders o al material de archivo para obtener negros profundos y resaltados enrollados. Se ve muy bien, pero puede introducir complejidades más adelante cuando usted está tratando de obtener colores de salida exactos de una entrada coincidente, que con frecuencia es una necesidad en los anuncios comerciales cuando se está haciendo coincidir los colores de la marca o la composición de pantallas en objetos.
|Agradecer cuando alguien te ayuda es de ser agradecido|
Para obtener una buena conversión de texturas de entrada antes debe asegurarse de que las texturas de color aplicables que esté utilizando se conviertan en el espacio de color ACEScg. Esta parte puede ser difícil, porque las texturas pueden provenir de una amplia variedad de fuentes. Tendrás que aplicar lo que se llama una transformación del dispositivo de entrada, o IDT, a estas texturas.
La mayoría de las texturas que descargues de Internet estarán en el espacio de color sRGB, que verás en OCIO como Utilidad sRGB Textura. Si usted tiene bonitas texturas lineales EXR o renderizados, su IDT sería en su lugar Utilidad Lineal sRGB. El nombre aquí es, por supuesto, confuso, porque todo sobre el color es confuso, pero el Lineal sRGB allí significa que usted está tratando con una imagen que se representa con valores lineales, es decir, ninguna curva de tono, pero usando primarias sRGB. Su JPEG típico también está utilizando primarias sRGB, pero tiene una curva gamma de entrada de 2.2, por lo que no es lineal.
En caso de duda, si la imagen no es de punto flotante, utilice Utilidad sRGB Textura. Si es de punto flotante, utilice Utilidad Lineal sRGB.
Las muestras de color no son diferentes, tiene que asegurarse de que los valores que está introduciendo, si no los va a convertir directamente a través de un nodo de transformación OCIO en el software de su elección, se encuentran en el espacio ACEScg.
Ahora, arriba utilicé los calificadores aplicable y color al describir las texturas que necesita convertir al espacio de color ACEScg. Lo que quiero decir con esto es que sólo quieres convertir texturas que describan el color, y no texturas que describan datos. Un mapa de textura difusa o albedo describe el color y debe corregirse por color. Un mapa normal, de desplazamiento o de rugosidad describe los datos y NO se debe convertir. ¡Es importante tener en cuenta esta distinción al corregir el color de las texturas de entrada.
Izquierda: una textura de color que describe directamente el color de un material de alguna manera (difuso o albedo). Convierte estas texturas. Derecha: una textura de datos que describe numéricamente las propiedades de la superficie (normales, rugosidad o altura). No convertir.
|Agradecer cuando alguien te ayuda es de ser agradecido|
Entonces, ¿Cómo debo configurar ACES? Pues para ello en primer lugar tienes que descargar la definición real, lo más sencillo es utilizar la configuración que usa Open Color IO, lo puedes descargar desde Github.
Una vez descargado verás que dentro hay varias configuraciones ACES, una de ellas es la que hay en la carpeta ACES 1.0.3, dentro tienes un archivo llamado config.ocio, es el principal de todos, cualquier aplicación que pueda usar ACES, debe abrir este archivo. Aplicaciones como Fusion tienen sus propios controles que permiten especificar un archivo de configuración, pero en términos generales es mejor configurar la variable de entorno del sistema OCIO, como lo haría con otros archivos en su sistema operativo.
Las aplicaciones 3D y de composición más utilizadas reconocerán la variable de OCIO de forma automática, por lo que puede configurar los espacios de color exactos que desea utilizar en cada aplicación.
Después, debemos configurar la aplicación, aquí la historia se complica un poco más, ya que cada aplicación tiene sus propias posibilidades, pero veremos algunas.
|Agradecer cuando alguien te ayuda es de ser agradecido|
Cómo configurar ACES en Autodesk Maya
Maya tiene su propia administración de color integrada, aunque no todos los motores de render compatibles son compatibles. Para usarlo, ve a preferencias de Autodesk Maya, configuración > administración de color y marca habilitar administración de color y usar configuración OCIO. Si la ruta de configuración de OCIO no se rellena por sí sola, tendrá que indicar una ruta de acceso del archivo config.ocio que descargó anteriormente. Una vez configurado, puede definir su espacio de render y su transformación. El Espacio de Renderización debe ser nuestro nuevo amigo ACEScg. La transformación de vista es su espacio de espectador, para la mayoría de ustedes esto es sRGB o Rec. 709, dependiendo de su monitor. Por último, puede configurar una lista de reglas predeterminadas para cómo desea que Maya controle las texturas de entrada, en función de la extensión de archivo o la ruta de acceso en el disco.
Recuerda que estas reglas son sólo conjeturas, y no será lo suficientemente inteligente como para diferenciar entre una textura de color y una textura de datos, a menos que se configure su estructura de ruta de archivo en el disco para hacer cumplir estas reglas! Es probable que tenga que ajustar manualmente la configuración de transformación de color en los nodos de archivo en ciertas texturas. La parte importante es simplemente ser conscientes del espacio de color de entrada de sus texturas, y no confiar en las reglas automatizadas, porque no siempre resultan bien.
Un ejemplo de configuración Maya OCIO para ACES.
Por último, tienes que configurar la vista de render para mostrar el render a través del LUT correcto. Es un motor diferente por renderización. En Redshift, esto se configura en la configuración Redshift Post Effects, disponible a través de configuración de renderización > administración de color, o desde la vista de renderización de Redshift haciendo clic en el icono de engranaje en la parte superior derecha de la ventana vista de render, por cierto, esta ventana se puede ampliar y, a continuación, buscando el menú desplegable administración de color.
La configuración de color de Redshift Render View. Si no puedes ver ese icono de engranaje, expande un poco la ventana.
Por supuesto, Redshift (y probablemente algunos otros motores de renderización que no uso) aún no admiten el sistema interno de administración de color de Maya. En casos como este, querrás deshabilitar la administración del color de Autodesk Maya, y tendrás que convertir tus texturas manualmente fuera de Maya. Las dos formas más fáciles de manejar esto son la herramienta ocioconvert que viene empaquetada con OpenImageIO, o una aplicación de composición como Blackmagic Fusion o Nuke. Las reglas son de lo contrario las mismas. transforme la textura de entrada del espacio de entrada adecuado (Utilidad – bla bla bla bla) al espacio ACEScg y, a continuación, guarde el archivo.
|Agradecer cuando alguien te ayuda es de ser agradecido|
En Houdini las cosas pueden cambiar un poco, si has establecido la variable de entorno OCIO, la vista de render de Houdini debería mostrar automáticamente una lista de LUT de visualización de ACES disponibles en la parte inferior, junto con los controles de exposición y enmascaramiento de canal (estos están ocultos de forma predeterminada, simplemente haces clic en la pequeña cresta en la parte inferior de la ventana de vista de renderización si no los ve). Puede utilizar OCIO Color Transform VOP para transformar las texturas de entrada de los espacios de entrada adecuados a ACEScg.
Una vez más, es posible que algunos motores de renderizado no admitan de forma nativa el VOP ocio de transformación de color, y en estos casos tendrás que corregir el color de tus texturas manualmente. Dado que tiene Houdini, puede usar COP para transformar sus texturas de forma nativa en lugar de depender de OpenImageIO o un programa de composición externo para convertirlas. Redshift actualmente no lo admite, y los Ubershaders integrados de Mantra (los sombreadores Principled y Classic) tienen sus propios sistemas para corregir el color, ya está integrados, aunque no parecen prestarse a transformaciones de color en línea en el contexto mat. Probablemente sea más seguro (y más rápido) convertir tus texturas en ACEScg antes de renderizar.
Algo a tener en cuenta específicamente cuando se utiliza el archivo COP en Houdini es que trata de linealizar sus texturas para usted! Puede cambiar el espacio de entrada de su OCIO Transform VOP a Utilidad – Lineal – sRGB, o desmarcar "Linearizar imágenes no lineales" en el archivo COP. También querrá cambiar la "Profundidad de ráster de archivo" para que sea "Profundidad específica" y establecer la Profundidad en punto flotante de 16 o 32 bits. No desea escribir imágenes de 8 bits en ACEScg.
Configuración de la COP de archivo (arriba) y ocio transformar VOP (abajo) para convertir una textura sRGB típica a espacio ACEScg. ¡Asegúrese de que está reemplazando la profundidad de bits en el archivo COP a punto flotante!
|Agradecer cuando alguien te ayuda es de ser agradecido|
En Fusion los pasos son otros, si se establece la variable de entorno OCIO, Fusion debería incluir automáticamente la "OCIO ColorSpace ViewLUT" en la lista de LUT disponibles en la parte inferior de cada visor. Debes darle clic en el botón "LUT" para habilitar un LUT del visor, luego haces clic en la flecha de al lado y seleccionas el OCIO ColorSpace ViewLUT, luego vas a editar, para configurar sus espacios de origen y salida.
El espacio fuente siempre será ACES - ACEScg. El espacio de salida, como siempre, depende de su monitor, esto probablemente será Output – Rec. 709 o Output – sRGB.
Con esta configuración, puede importar renders y compuestos ACEScg como lo haría normalmente, ya que ACEScg es un espacio lineal. Sin embargo, si tiene otras imágenes entrando en la composición que no sean ACEScg, necesitará usar el nodo OCIOColorspace para transformar las imágenes desde el espacio apropiado a ACEScg. Puede usar la misma regla general para la mayoría de las imágenes, si es una imagen LDR, probablemente sea "Utilidad - sRGB - Textura", y si es HDR, probablemente sea "Utilidad - Lineal - sRGB".
Configuración del visor LUT en Fusion. Si ha configurado la variable de entorno OCIO, el archivo de configuración OCIO puede aparecer en blanco, pero aún debería ver todas las transformaciones de ACES disponibles.
Finalmente, cuando escriba su compilación en el disco, es probable que necesite hacer otra transformación de color. El espacio para escribir depende de su propia tubería de color local.
Si está mostrando el trabajo en la web, dispositivos móviles o televisores típicos, probablemente se convertirá a Rec. 709. Si está entregando un spot HDR, se podría estar convirtiendo a Rec 2020.
Si está tratando de escribir imágenes finales para DI y quieren ser súper compatibles con ACES, se presentará en el espacio de archivo ACES2065-1.
En caso de duda, consulta el nodo OCIOColorspace para transformar al espacio de color de salida antes de su nodo Saver. Si la imagen se ve extraña cuando previsualiza este nodo, es porque su visor LUT todavía está habilitado, puedes deshabilitarlo para verificar sus colores antes de probar otras soluciones.
|Agradecer cuando alguien te ayuda es de ser agradecido|
Con Nuke también tenemos que tener en cuenta otros parámetros, podemos establecer el espacio de color de trabajo en Nuke en el menú configuración del proyecto > color. Su espacio de trabajo es ACEScg. Su espacio de monitor es el mismo que su espacio de espectador mencionado anteriormente, esto probablemente será sRGB o Rec. 709 si tiene un monitor típico.
Puedes establecer ajustes preestablecidos para el material de archivo entrante a continuación de la siguiente forma, los archivos de 8 bits deben ser predeterminados en Utility – sRGB – Texture, y float files a ACEScg. Recuerda que si estás importando archivos float que no provienen de una de tus representaciones ACEScg, necesitarás usar un nodo OCIOFileTransform para convertir desde el espacio adecuado (probablemente Utility – Linear – sRGB) a ACEScg.
Antes de escribir imágenes finales en el disco, utiliza el nodo OCIOFileTransform para convertir la composición en el espacio de color de entrega adecuado. Consulta la sección Fusion anterior para obtener sugerencias sobre el espacio de color en el que deseas escribir.
|Agradecer cuando alguien te ayuda es de ser agradecido|
Por supuesto, aparte de tener que leer artículos como este, hay ciertas molestias con el sistema ACES, especialmente para aquellos de nosotros que con frecuencia creamos cosas que no son necesariamente realistas. El mayor problema con el que me he encontrar es tratar de obtener el resultado de un render o compuesto de ACES para que coincida con una imagen de referencia, por ejemplo, un Matte Painting o una pantalla de teléfono que necesita ser rastreada en un dispositivo, o cualquier cosa que tenga iluminación propia, que en realidad no está actuando como una luz. Si solo aplicas la conversión habitual de sRGB -> ACEScg, notarás que tu material con iluminación propia aparece desconectado en los renders.
En situaciones como esta, tienes un par de opciones, dependiendo de dónde estés en el proceso. Si necesitas que un material que tenga iluminación propia y que aparezca en un render 3D, exactamente como aparece cuando ve la textura fuera de ACES, debes convertir la textura a ACEScg, pero desde el espacio OUTPUT en lugar del espacio de entrada habitual. Esto significa que si el visor está utilizando el espacio Salida – sRGB, debes usarlo como espacio de entrada de la textura. Esto asegurará que, perceptivamente, lo contrario de su LUT del espectador, incluyendo la asignación de tonos RRT S-curve mencionada anteriormente, se aplique a su textura, por lo que se verá exactamente el mismo saliendo del otro lado de ACES. Esto significa que los valores de color de salida pueden salir bastante raros. Echa un vistazo a esta captura de pantalla y presta mucha atención tanto a la configuración de OCIO Transform como a la ventana de información de color que aparece sobre el renderizado de la izquierda.
Echa un vistazo a los valores de color allí al analizar el color blanco del logotipo Houdini, el valor es un poco superior a 16,0.
En la captura de pantalla anterior, lo que está viendo como "blanco" es en realidad un valor de aproximadamente 16. Otros colores también pueden verse afectados de maneras extrañas por este proceso, especialmente cuando se trata de colores muy brillantes o saturados. Tenga en cuenta números como este al depurar problemas con iluminación global o reflejos extraños u otros fallos de renderización, o al calificar estos renderizados después de renderizar.
En el lado de la composición, su mejor opción para resolver este mismo problema es simplemente salir del espacio ACEScg temporalmente. Esto se hace mejor cerca del final de su composición, por razones obvias. Utilice las herramientas de transformación OCIO para convertir de ACEScg a sRGB, cambiar su LUT visor para ver en sRGB estándar, a continuación, composición en sus elementos sRGB como pantallas, subtítulos, tarjetas finales, etc. Esto tiene la ventaja de evitar los valores de color locos antes mencionados, pero puede causar problemas en la línea si usted está tratando de salir a un objetivo de entrega HDR, y usted tendrá que asegurarse de que sus colores no se mete si usted tiene que salir a Rec. 2020 o ACES2065-1 o ACEScc o lo que sea.
|Agradecer cuando alguien te ayuda es de ser agradecido|
Últimos pensamientos a tener en cuenta cuando trabajamos con ACES, a pesar de que el autor a intentado hacer la lectura más amena de lo que sería lo puramente técnico, sin duda es un texto amplio y son muchas las cuestiones a tener en cuenta.
El sistema ACES es una buena idea, pero su implementación sigue siendo difícil y contra-intuitiva, requiere que todos los artistas que intervienen en un proyecto tengan una comprensión de a qué espacios de color convertir y cuándo convertir (o cuándo no).
Espero que esta escritura al menos te haga entender los conceptos básicos del sistema, y cuando estés listo para la inmersión profunda, te recomiendo encarecidamente que leas las siguientes guías:
Un agradecimiento especial a Hernán Santander, Joe Pistono, Lewis Saunders y Robert LaPlante por ayudarme a entender todo este ridículo negocio del color.
Guía escrita originalmente por Yoadstorm, la cual me parece muy interesante para compartir.
|Agradecer cuando alguien te ayuda es de ser agradecido|