Debe evitarse hablar de RGB lineal porque no le dice nada sobre los intrínsecos del espacio de color RGB, es decir, las funciones de transferencia de componentes primarios, de punto blanco y de color. Hace unos años, suponiendo que era sRGB era mediocre, pero hoy en día con DCI-P3 y BT.2020 es muy común, debe descartarse.
La gama ideal para el renderizado es la que minimizará los errores con respecto a una referencia del mundo real o, más convenientemente, un renderizado espectral de verdad fundamental. La primera conclusión de esta oración es que los diversos espacios de color RGB no son equivalentes y no producirán resultados similares.
Uno podría pensar que realizar dos renders con los mismos colores base pero uno donde están codificados con sRGB / BT.709 y el otro donde están codificados con DCI-P3 y luego convertir las dos imágenes resultantes a, por ejemplo, ACES2065-1 producen las mismas imágenes pero no es el caso. Algunas operaciones matemáticas debido a la naturaleza del álgebra lineal y las matrices dependen de los primarios de espacio de color RGB dados, es decir, en función de los espacios de color. Las mismas operaciones realizadas en diferentes espacios de color RGB producirán diferentes valores de triestímulo una vez convertidos de nuevo al espacio de color CIE XYZ. Por ejemplo, las operaciones de multiplicación, división y potencia dependen primarias del espacio de color RGB, mientras que la suma y la resta no lo son.
Esta imagen ilustra el efecto de multiplicar varios colores por sí mismos en diferentes espacios de color RGB: los colores resultantes son diferentes. Las diversas muestras se generan de la siguiente manera: se seleccionan 3 valores aleatorios de espacio de color sRGB y se convierten en los tres espacios de color RGB estudiados, se exponencian, se vuelven a convertir en espacio de color sRGB, se representan en el Diagrama de cromaticidad CIE 1931 a la izquierda y se muestran como muestras en el Correcto.
Las pruebas e investigaciones realizadas por Ward y Eydelberg-Vileshin (2002) , Langlands y Mansencal (2014) y Mansencal (2014) mostraron que las gamas con primarias más cercanas al lugar espectral, es decir, primarias espectralmente afiladas, tienden a minimizar los errores en comparación con el terreno espectral La verdad rinde.
Aquí hay una imagen que rendericé recientemente con Mitsuba para volver a validar nuestros hallazgos con Anders:
Esos son renders de la misma escena usando primarios BT.709 (primera fila), 47 contenedores espectrales (segunda fila), primarios BT.2020 (tercera fila), espectral menos BT.709 primarios renders residuales (cuarta fila), espectral menos BT .2020 primarios representa residuos (quinta fila). La última fila muestra imágenes compuestas ensambladas con tres franjas verticales de los renderizados primarios BT.709 primarios, espectrales y primarios BT.2020. La iluminación directa tiende a coincidir entre los renders. Las áreas que muestran el efecto de múltiples rebotes de luz, es decir, el techo, en los renders primarios BT.709 y BT.2020 tienden a exhibir una mayor saturación, especialmente en los renders primarios BT.709 o una ligera pérdida de energía, especialmente en el BT .2020 render. Excluyendo valores atípicos, por ejemplo, la fuente de luz visible, el RMSE con el renderizado espectral es 0.0083y 0.0116 para las representaciones primarias BT.2020 primarias y BT.709 primarias.
Ahora no significa que siempre tendrán un mejor rendimiento, y uno podría ser capaz de producir ejemplos que exhiban un sesgo hacia BT.709 / sRGB. La conclusión principal es que los renderizados RGB no pueden coincidir con los renderizados espectrales y las gamas anchas y afiladas tienden a funcionar mejor. En cuanto a elegir un espacio de color de representación, elegiría uno con una amplia gama que abarque Pointer's Gamut y DCI-P3, BT.2020 o ACEScg son excelentes candidatos para eso.
Hay dos lados de por qué sRGB en particular. Para las imágenes de entrada que no son HDR, se afirma que se debe suponer que están comprimidas a sRGB (si esta afirmación es precisa es una historia diferente). Por lo tanto, antes de que pueda realizar cualquier operación matemática lineal en ellos, debe descomprimirlos de sRGB. También es posible que una imagen se haya capturado y comprimido a una representación diferente que no sea sRGB, en cuyo caso debe descomprimir esa representación específica. En cualquier caso, la codificación implica una cierta gama de la que la imagen de entrada nunca escapará (porque las imágenes almacenadas en sRGB generalmente se truncan a 8 bits por canal), pero las matemáticas del sombreador no tienen que permanecer en esa gama después de la entrada La imagen se descomprime. Pero al final tienes que considerar la pantalla.
Si tiene una imagen y es hora de mostrarla, la codifica en una representación que requiere el dispositivo de visualización. Los CRT eligieron sRGB, luego las pantallas LCD emularon eso, por lo que la compresión sRGB para la pantalla del monitor ha sido la opción común durante las últimas décadas, y eso restringió la salida para quedarse dentro de la gama sRGB, o de lo contrario se producirá un recorte. Las pantallas de rango más amplio no tienen que ajustarse a esa gama exacta.
(Creo que la base para la afirmación de que las imágenes hechas por el hombre están codificadas con sRGB es porque se suponía que esas imágenes habían sido creadas en pantallas sRGB)
Entonces, ahora probablemente pueda ver mejor por qué sRGB en particular fue compatible con el hardware para la entrada matemática del sombreador y la visualización de imágenes. Es el caso comun. Además, tiene buenos méritos para reducir los artefactos perceptuales de las bandas de color, por lo que es una buena forma de comprimir los colores en 8 bits y hacer que se vean plausibles para los humanos.
fuente
Si permite valores fuera del rango 0..1, incluso con los primarios bastante limitados de sRGB, aún puede abordar toda la gama visual humana. Por lo tanto, para almacenar valores de color de luz de coma flotante, no debería importar demasiado qué primarios use. Sin embargo, hacer cualquier tipo de matemática multiplicativa se vuelve un poco extraño, ya que las coordenadas arbitrarias de las primarias actúan como el 'pivote' de escala. Las primarias sRGB se usan generalmente porque tradicionalmente sus datos de entrada están codificados con sRGB y la pantalla de salida es sRGB o rec709 ... Con rec2020, la mitad de eso ha cambiado, pero por ahora, la mayoría de sus datos de entrada probablemente todavía estén codificados con sRGB, por lo que usar Las mismas primarias que su almacenamiento es la opción más fácil.
fuente