I kept going with my tests, from this other topic: Path: ACEScg to regular sRGB? (Nuke 10.5v1, ACES 1.0.3) it made me want to do more tests using sRGB.
Posting here to not pollute somebody else’s thread. I downloaded OCIO ACES 1.0.3.
Trying to do a simple sRGB to ACEScg I noticed really high values, which surprised me. I should have noticed from my test9 above that the white point wasn’t sticking to 1, but I was looking at color shift at that time and completely missed it.
Test 10: sRGB > Linear (Looking at transfer curve only)
Here I’m testing 4 different ways to apply the transfer curve (using a greyscale input so that gamut/primaries transform won’t have any effect).
The two green nodes have the same output, left curve on first picture, and the two red nodes have the same output, right curve on first picture.
The first node is using a nuke colorspace setup this way:
The second one is using the transfer function I found in the OCIO general.py:
def transfer_function_Rec709_to_linear(v):
"""
The Rec.709 transfer function.
Parameters
----------
v : float
The normalized value to pass through the function.
Returns
-------
float
A converted value.
"""
a = 1.099
b = 0.018
d = 4.5
g = (1.0 / 0.45)
if v < b * d:
return v / d
return pow(((v + (a - 1)) / a), g)
The third node is OCIO colorspace with input as; Output - sRGB and output as ACEScg
The fourth node is OCIO colorspace with input as; Output - sRGB and output as Utility - Linear - sRGB
I would have expected all 4 to match. Were my expectations wrong? Was my execution wrong? or is OCIO wrong?