In my recent blog post I shared how to use Blender’s implementation of OCIO color management to convert Display Referred video to Scene Referred video using a LUT custom designed for your camera package.

For those more comfortable with a more traditional compositing package I wanted to share a quick addendum on how to perform the same conversion using the OCIO implementation in the open source compositor Natron.

Natron surfaces much more access to color management tools than Blender so integrating your custom LUT and OCIO config is straightforward and can all be done from the user interface. Read nodes allow you to assign OCIO configs on a node-by-node basis without needing to change the universal compositor OCIO config under preferences.

Assuming you’ve already set up a custom OCIO config to leverage your LUT by building upon the existing Blender OCIO directory you can either duplicate that folder or point Natron to it directly.

The node setup couldn’t be simpler:

Note the OCIO Config File and File Colorspace in the Read node panel on the right.

Note the OCIO Config File and File Colorspace in the Read node panel on the right.

The read node loads in the original video from the camera SD card. No need to convert to a PNG image sequence first this time. Point the OCIO Config File option in the read node to your custom config, and then choose your LUT listing under File Colorspace. Leave the Output Colorspace as default, linear,Linear. This is equivalent to the approach in Blender where we're saying "read in this image/video with my LUT rather than the sRGB default".

Set up a write node to output to EXR and it will default Linear input and output colorspaces. Leave the OCIO config as Natron’s default.

Set up your frame range, hit render and you’re done. As with Blender, Natron will leverage your LUT and the dynamic range you established in the OCIO config stanza to “cook” in the new Scene Referred Values.

Once again, ink dropper sampling RGB values as you swap between sRGB and your LUT and/or by loading back in your rendered sequence will confirm the shift in values as they escape Display Referred Space and exceed 1,1,1 in the brightest areas.