I’m trying to work out how to take an input DNG file from a camera, in this case the Sigma fp, and transform it to a 16 bit exr and encode it with ACEScg space. The end goal is to make it so that I can take a raw file and encode it as an ACEScg EXR to bring into Nuke, with an ACES 1.0 SDR sRGB Display transform just like my ACEScg renders from VRay. The idea is to be able to apply similar color corrections to both, so that I can interchangably use cg renders alongside photography.
I think I’ve basically gone in circles with this, so would appreciate some input on if I’m on the right track at all.
I’m getting stuck mainly with export from Photoshop I think. In Photoshop you can set an OCIO Transform under Image > Adjustments > OCIO Transform. I set incoming working space to Raw, and output to ACEScg. But when bringing the EXR into Nuke, I need to set the display transform in the Viewer to Raw(sRGB - Display) to match the look in Photoshop. This does make sense, but then it seems like the incoming image isn’t in ACEScg at all, and Photoshop effectively did nothing. If I check the metadata there’s no ACES key in the header.
If I write out the EXR with a Nuke Write node with the output transform set to ACEScg and read it back in, I see the correct acesImageContainerFlag in the metadata, so that’s good at least.
Is my best bet to install the rawtoaces utility available on GitHub and go from there? I was hoping to be able to do the conversion natively within Photoshop, going from AdobeCameraRaw from an AdobeRGB encoded DNG file to EXR, to ACEScg EXR in Nuke which can then be viewed alongside a render done in ACEScg. I’ve had some difficulty getting it up and running in Windows 10. Mainly I’m just a bit lost as to how to install it correctly.
Any insight or corrections to what I wrote above are appreciated.
Just a note, the acesImageContainerFlag should really only be checked (true) when the file contains ACES2065-1 (AP0) data not ACEScg (AP1). Doing otherwise sort of defeats the purpose of having an ACES container file.
People (unfortunately) often write ACEScg into OpenEXRs but for interchange withother facilities, this really should be encoded according to SMPTE ST 2065-1 in an OpenEXR container according to SMPTE ST 2065-4.
As for conversions, I don’t trust Photoshop nor can I provide any useful guidance. I would use a command line utility such as rawtoaces or write a script to debater using libraw and then apply a color conversion matrix that I know and trust. For the most part, if you don’t have an IDT, tools like rawtoaces or other DNG-to-ACES convertors I’ve seen try to pick up on the RGB-to-XYZ matrix embedded in the DNG file and concatenate that with a CAT and matrix to ACES2065. You’d then need to append an Ap0-to-AP1 matrix to get ACEScg.
I’m sure others might be able to chime in with some more practical guidance.
Thanks for the reply. Added a few images to my post with comparisons. Testing OpenColorIO in Photoshop and ACES Raw Conversion — alex corll
It seems maybe one method without relying on rawtoaces is to use Resolve, which natively supports DNG and OCIO export. It seems like Photoshop may be unreliable for OCIO export as you said.
Comparing the file in Photoshop displaying in sRGB vs the same file in Nuke reading in as ACEScg and displaying ACES 1.0 SDR, they seem to match, which is encouraging. I haven’t figured out why my Resolve viewer is slightly washed out vs the thumbnail previews and final preview in Photshop/Nuke. I have some screencaps of my settings. The thumbnail in Resolve looks correct, but the viewer is slightly washed out - seems like there’s a mismatch somewhere.