Question regarding colors using ACES transfert function with sRGB primaries and white point


I’m in a situation where my OCIO config is following: The primaries and white point are sRGB, but the transfer functions are ACES.

It seems some colors hard to reach without relying on negative values.

We want to achieve this sRGB yellow: 0.96, 0.916, 042. (242, 233, 53 in traditional byte representation)

Another dirty way to say it, is that a screenshot on a sRGB monitor would provides those values, and we would be happy with the visual result.

0.96, 0.916, 042 → our sRGB monitor → We are happy.

With our setup, we need the following scene value to achieve this yellow properly: 3.092, 2.245, -0.308.

As you guess the negative value hurt me (is that really a problem?), so I tried to think on how we could avoid this.

During my investigation, I switched the primaries to ACES and realize the ACES scene values to get the sRGB display value to my expected yellow are: 2.164, 2.074, 0.036.

No more negative value.

I suspect (without clearly understanding) that all of this is logical. I suspect it’s technically impossible to get this specific yellow with positive only scene-referred values when you have our setup (sRGB primaries and white point combined with ACES transfer function). I suspect the color space resulting from this setup simply can’t represent this yellow to an sRGB monitor without relying on negative value.

Am I right?

If so, I should argue for changing the OCIO config to used primaries right? I didn’t try ACEScg, only ACES, for now. I suspect ACEScg would still be positive.

A big thanks in advance.