Adds Apple Log 2 and Linear Apple Wide Gamut - #179
carolalynn wants to merge 2 commits into
Conversation
"Apple Log 2" uses the same transfer function as "Apple Log" but encodes in the "Apple Wide Gamut" primaries rather than "ITU-R BT.2020". The "Apple Log 2" "CLF" transform is built from the "APPLE_LOG-APPLEWG_to_ACES2065-1" "OpenColorIO" builtin transform added in AcademySoftwareFoundation/OpenColorIO#2343, so the generated config declares the builtin rather than an inline group transform. The style is gated to "OpenColorIO" 2.6, the release the builtin lands in. The "Apple Wide Gamut" primaries are not published with a matrix nor a chromatic adaptation transform, thus the "Linear Apple Wide Gamut" matrix is derived from the primaries using "Bradford" adaptation, as it is the most consistent with "ACES" and matches the builtin. Closes AcademySoftwareFoundation#163 Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Signed-off-by: Carol Payne <carol@wizard.inc>
"generate_clf_transforms_apple" was never re-exported from the "opencolorio_config_aces.clf.transforms" and "opencolorio_config_aces.clf" packages, unlike every other vendor generator, and was consequently missing from the documentation. The omission went unnoticed because the "invoke build-clf-transforms" task runs each "generate.py" directly rather than through the package namespace. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Signed-off-by: Carol Payne <carol@wizard.inc>
doug-walker
left a comment
There was a problem hiding this comment.
Looks fine to me, but I will defer to Thomas, as he is the expert here. I did verify that the matrix in Apple.Input.Linear_Apple_Wide_Gamut_to_ACES2065-1.clf is correct.
When looking at the original spreadsheet on Google that is supposed to populate the Mapping.csv file, some of the boxes that I would have expected to be filled in are empty. Not sure if that is intentional.
|
@scottdyer, are the AMF transform ID changes Carol mentions above necessary? These kinds of changes create a lot of problems for downstream consumers such as OCIO. |
|
Hi @doug-walker, How necessary each change is depends on which change we're talking about:
But I completely understand the frustration - managing Transform IDs is painful. I am somewhat hopeful that the forthcoming python libraries can help a lot with assisting to make sense of the prior mess and version up to what will hopefully be cleaner moving forward. And we can do our best to be regimented about avoiding unnecessary breaking changes moving forward. |
Closes #163.
Adds the
Apple Log 2andLinear Apple Wide Gamutcolorspaces to the Studioconfig.
Apple Log 2uses the same transfer function asApple Logbut encodesin the Apple Wide Gamut primaries rather than ITU-R BT.2020.
Depends on OpenColorIO#2343
Rather than declaring the conversion inline as a
GroupTransform, theApple Log 2CLF transform is built from theAPPLE_LOG-APPLEWG_to_ACES2065-1builtinadded in AcademySoftwareFoundation/OpenColorIO#2343, so the generated config
declares the builtin directly:
The style is registered at
Version(2, 6)inBUILTIN_TRANSFORMS, the releasethe builtin lands in.
BUILD_CONFIGURATIONScurrently targets OpenColorIO 2.5,so until that is bumped the row is skipped with a warning and
Apple Log 2doesnot appear in the built configs.
Linear Apple Wide Gamutis a plain matrix andappears immediately.
Original issue uses
ocio:linear_applewg_sceneas the interop ID for the linearcolorspace. This uses
ocio:lin_applewg_sceneinstead, for consistency withthe thirteen other scene-linear colorspaces, all of which use the
lin_prefix(
ocio:lin_awg4_scene,ocio:lin_dwg_scene,ocio:lin_rwg_scene, ...). TheApple Log 2interop ID is unchanged from the proposal.@doug-walker, flagging for viz
ACEStransformID
urn:ampas:aces:transformId:v2.0:CSC.Apple.AppleLog2_to_ACES.a2.v1is recordedfor
Apple Log 2. The CSC exists upstream inampas/aces-input-and-colorspaces(
2331f7d, "Add CSCs for Apple Log 2") but not in the currently pinnedacessubmodule, so the
interchange: amf_transform_ids:block does not populate yet.It will once the submodule is bumped, with no further change here.
That bump is deliberately left out of this PR: the same upstream commit renames
CSC.Apple.AppleLog_BT2020_to_ACEStoCSC.Apple.AppleLog_to_ACES, and aseparate commit moves the Canon and DJI CSCs from the
a1to thea2token.Four transform IDs currently referenced by the mapping files disappear at
upstream
HEAD, which is a breaking change better handled on its own.The second commit re-exports
generate_clf_transforms_applefrom theopencolorio_config_aces.clf.transformsandopencolorio_config_aces.clfpackages and adds it to the documentation. It was the only vendor generator
missing from both, which went unnoticed because
invoke build-clf-transformsruns each
generate.pydirectly rather than through the package namespace.Verification
Built OpenColorIO from OpenColorIO#2343 to generate the CLF transforms
against the real builtin.
[0.5, 0.4, 0.3]returns[0.16030183, 0.09122278, 0.02640572],matching the unit test values in OpenColorIO#2343 within its
1e-6tolerance.Bradford adaptation matches the matrix published in Add Apple Log 2 color space #163 to
2.9e-15, andmatches the matrix the builtin bakes into the CLF transform. The ACES CTL
transform independently derives it the same way, via
calculate_rgb_to_rgb_matrix, whoseconeRespMatdefaults toCONE_RESP_MAT_BRADFORD.Apple Log - CurveintoLinear Apple Wide Gamutis bit-identical tothe
Apple Log 2builtin path in the generated config.skipped) and with the gate lifted (row present).
Assisted by: Claude / Opus 5