I'm confused about how to properly convert from sRGB or XYZ color space to ACEScg. Specifically whether I have to account for differences in white point explicitly.
The aces github page gives the following matrix to convert from XYZ to AP1:
1.6410233797, -0.3248032942, -0.2364246952,
-0.6636628587, 1.6153315917, 0.0167563477,
0.0117218943, -0.0082844420, 0.9883948585
FGED2 gives the following matrix to convert from XYZ to sRGB with white point D65:
3.240970, -1.537383, -0.498611,
-0.969244, 1.875968, 0.041555,
0.055630, -0.203977, 1.056972
And this shadertoy gives the following matrix to convert from sRGB to AP1:
0.613097, 0.339523, 0.047379,
0.070194, 0.916354, 0.013452,
0.020616, 0.109570, 0.869815
So I figured if I combine the XYZ->sRGB and sRGB->AP1 matrices it should be the same result as XYZ->AP1. However there is a small, but noticeable difference:
1.66058, -0.315295, -0.24151,
-0.659926, 1.60839, 0.017298,
0.00900358, -0.00356713, 0.913644
I assume the difference comes from the way the white point is handled? My question is, which is "correct". I have use cases for both XYZ->AP1 and sRGB->AP1, but now I'm irritated that my matrices don't allow me to round-trip.