Hi there.
I’ve been intrigued by ACEScc and I’ve wanted to try it out in one of my own projects for color correction in-engine.
I have scene-referred data rendered with sRGB primaries and would need a matrix to rotate the primaries to AP1.
For that I’ve only really found 2 sources: Unity and a calculator on Harald Brendel’s website (not sure if I’m allowed to post links as a new member.) Both sources have the following matrix:
0.61319, 0.33951, 0.04737,
0.07021, 0.91634, 0.01345,
0.02062, 0.10957, 0.86961
I’ve programmed my own tool, which calculates color gamut conversion matrices in double precision, the path being sRGB → XYZ → D65 to “D60” adaptation using bradford matrix → AP1. This is the result I get:
0.6133049534566281, 0.3431982653313797, 0.0475773874566389,
0.0697185251153489, 0.9081998319230778, 0.0131839498944447,
0.0207388699634936, 0.1098548452439992, 0.8761036546367835,
As far as I can tell the other 2 implementations used bradford adaptation as well, though my results are slightly different, in a way that didn’t make me think it’s a rounding error.
The second part of my question is whether ACEScc will be worth using without the RRT / ODT:
I personally dislike the RRT intensely so I’d rather roll with my own tonemapping and display transform.
Do you reckon using a dedicated CC space in my case is worth the trouble (and minor performance hit from a couple rotations)?
Can I forgo all primary rotations and use the ACEScc transfer function by itself as a curve effectively? I’ve used a few camera log curves in the past to have a nicer application of contrast in the past but without much success aesthetically.