Hey guys I need to write up some proper documentation on this, but if anyone wants to try it out, I think I’ve got something that works pretty well.
This setup differs from the one described in my OP. It’s designed for working on floating point ACEScg files in Photoshop’s 32bit mode directly, rather than 16bit integer mode.
All of the workflows I work within assume you’re working with ACEScg EXR files (AP1), rather than full wide gamut ACES 2065-1 (AP0). I know this isn’t legit by the book ACES, but in my experience it’s extremely common within VFX pipelines. So please take that into account as you read on.
I’ve made some updates to my PureNuke ACES repo.
There is now a new LUT under Luts called:
ACEScg_Photoshop_SceneLinear_to_DisplayLinear_Transform_DimSurround.csp
This LUT is designed to be used on ACEScg images within Photoshop.
- Open an ACEScg exr in photoshop
- Edit -> Assign Profile -> “ACES CG Linear (Academy Color Encoding System AP1)”
- Layer -> New Adjustment Layer -> Color Lookup -> Load 3D LUT
- Navigate to ACEScg_Photoshop_SceneLinear_to_DisplayLinear_Transform_DimSurround.csp
You should now be viewing your ACEScg file correctly in Photoshop.
Basically, what’s going on here is the LUT takes the ACEScg scene linear data, and passes it through the RRT, and through most of a standard 48nit ODT, but stops around line 99 after the Dim Surround compensation has been applied.
At this point, you now have display linear AP1 data, all of the picture rendering has been applied, we’re just not transforming for any specific display. Instead we hand off back to Photoshop’s normal ICC based colour management, which deals with transforming from AP1 down to sRGB (or whatever your display primaries are), and applying the EOTF.
You can use this to save out display referred images directly. For example, the file SonyF35.StillLife_sRGB_via_Photoshop.png was exported using the Export -> Quick Export as PNG, and provides a clean match to the same image exported from Nuke using the Output - sRGB.
Or you can do work in Photoshop, then just disable the Color Lookup layer when you’re ready to save out your work as an ACEScg EXR again.
If anyone is interested into digging into the process of how this LUT was created, it’s all contained within the nukescript ACEScg_Photoshop_SceneLinear_to_DisplayLinear_Transform_DimSurround.nk. There is a special modified ODT node inside the CineSpace3D_LutGenerator node.
I’ve tested it on a Mac with Photoshop 2020, and Nuke 12.0v3 against an ACES 1.0.3 config. It may need to be tweaked for other scenarios.
I’ve also changed my working space to ACEScg, but I don’t know if this is 100% necessary.
I’d be interested to hear how this works out for other people.