How to ACES in C4DtoA

I'm defenetly not an ACES expert, and as this is something so technical and way beyond my knowledge, I'm just going to do a dummy step by step on how to use ACES in C4DtoA and no more.
If you are really interested, you should read Chris Brejon online book, specially Chapter 1.5 about ACES (https://chrisbrejon.com/cg-cinematography/chapter-1-5-academy-color-encoding-system-aces). Hands down to Chris, he did a great job there, and not just in that chapter, the whole book is really interesting.

Before dig in, let's show some of the benefits of work in ACES.
In the following image you can compare a before/after. Pay attention to two things, first of all, the higher dinamic range, having much more detail in the highlights and achiving less clipping. And also the much more saturated colors and the better light decay in the colored walls.


Unforunately, ACES is not just click a tick box and keep running, it is more complex than that.
So let's show it!

First of all, download the last version (https://github.com/colour-science/OpenColorIO-Configs/tree/feature/aces-1.2-config), currently v1.2, and save it in your library or anywhere you can link it forever.
Set your render settings as Arnold Render and set the color manager to OCIO and link the downloaded config.ocio.
We also need to define which will be our default sRGB color space (set this to Utility - sRGB - Texture) and our render color space (set this to ACES - ACEScg).


Next step is to set up the IPR Color Space to a "View (Display)" profile like "sRGB (ACES)" and now, everything we render in the IPR (not in the Picture Viewer) will be in ACES and displayed properly. When we render our final image to the IPR, it will be ACES, but it won't be displayed correct. Neither in Photoshop, we will solve it later.

We just set our default textures color space to "Utility - sRGB - Texture", that's good for color textures used in color channels but not for everything.
Will be necessary to manually set the color space of every image we use.

Utility - sRGB - Texture: 8-16 bit images used in color channels.
Utility - Linear - sRGB: linear images as HDRIs.
Utility - Raw: value images like masks, displacement or roughness.
Output - sRGB: images we don't want to change (matte paints, background).

In case we don't use a texture to define the base color of a material, the color picker is not color managed (in Cinema R21, hope they fix), so to decide your color, I recommend you to choose it deciding the color showed in the IPR and not in the color picker preview. In case you need a specific RGB value, save a tiny image in Photoshop with the exact value you need and use it as a texture.
You can also convert the sRGB values to ACES in Nuke/Fusion, pick the resulting floating values and input them in C4DtoA using a float rgb node.

All set to render (exr 32b float), time to comp. As we said before, renderes doesn't look good in the picture viewer nor in Photoshop. We need to convert our renders in ACEScg to sRGB to deliver the final image.

There's a couple of ways to do it. The proper one, compositing with a software like Nuke or Fusion. And the not so good option with LUTs and ICCs to work in softwares that do not support 32b color managing, like Photoshop or After Effects.

1- The good way:

You only need to add a OCIOColorspace node, set the source space as ACES - ACEScg, the output space as Output - sRGB and done.

Now you are ready to start your postproduction.





2- The Photoshop way:

This workflow is a Muhammed Hamed's idea, thanks mate!
First of all, you will need to download Alexfry's LUT (https://github.com/alexfry/PureNukeACES) and Muhammed Hamed's ICC profile (link). 

Save the LUT in an easy to access location and the ICC in C:\Windows\System32\spool\drivers\color if you work on Windows, or HD/Users/<username>/Library/ColorSync/Profiles for Mac.

And every time you open your 32b render in Photoshop, you will have to assign the ICC profile and apply the LUT on top. You will have to merge all to switch to 8/16b file or use this 32b file as a smart object.



Render Farm

To use ACES in a render farm we need to creat an "Environment Variable" with the "config.ocio" file used for our color management. In the following video you can learn how to do it (https://www.youtube.com/watch?v=pyrEevPPtRM&t=92s&ab_channel=Cineversity). Just create a new "System variable" named "OCIO", and browse our config.ocio file.
You need to do this in each machine.

Then, inside C4D, our color management path will be "$OCIO". That will make a variable path so each machine can have a diferent ACES config.ocio location and still work.

Comments