ACES in Octane for C4D (temporary work around until OCIO is supported)

Octane for C4D (temporary work around until OCIO is supported)

Introduction

Hi all, this is just a little thread which I hope can help some Octane users and maybe spark a discussion that could lead to improving the technique I am currently using to use ACEScg in Octane for Cinema 4D. I’m sorry if I use the wrong jargon as this is all still a bit new to me.

Currently, octane does not have any form of OCIO support meaning we don’t natively have access to IDTs and ODTs. I have found a workaround but it is far from perfect so it is simply should be used to visualise what the render should look like in a compositing program. this method replicated the sRGB (ACES) odt also known as Output - sRGB. i’m in the process of making this possible for rec. 709 and DCI-P3.

The way we get around the lack of IDT is by pre converting all our textures / plates / IBLs into ACEScg so they have the AP1 Primaries when imported into Octane, rather than ingested with an IDT.

To get around the ODT issue, I have created a .cube LUT (the LUT format that octane supports) that imitates the sRGB (ACES) transform so the linear data is tone mapped in the live viewer in a similar way to the Output - sRGB ODT. The ODT is not perfect and does struggle in very extremely bright scenes but it is very rare in which that sort of situation would be required.

Octane Live Viewer (With LUT)

octaneLUT

Nuke Viewer (With sRGB (ACES) view transform)

nukeRender

as you can see there is very little difference and although it is not perfect, it is certainly a lot closer than the default gamma 2.2 sRGB transform in Octane (below)

standard sRGB

Once rendered out of octane as a linear exr, you can then import the render into your compositor as ACEScg (below)

nuke

Method

First you need to convert all your textures / plates / IBLs into ACEScg. you can do this in any compositor with OCIO support eg. Nuke, Fusion/Resolve and so on. I personally use this great tool by Mr Lixm. Its name your price and I couldn’t recommend it more. it can be found here: https://mrlixm.github.io/PYCO/standalone/ColorspaceConvert/home/

1

Once you have converted all the files to ACEScg, open up c4d and in the project settings tab, set the input colour profile to Linear.

2

Next open up the camera imager tab in the octane settings and set the response to Linear. Next tick the natural response box and set the gamma 1

3

next go over to the Custom LUT tab in the Camera Imager panel, make sure the LUT strength is set to 1 and search for the LUT which can be downloaded here : https://drive.google.com/file/d/1szwsWKVytdK0p-mbm_KRwv0GuKBoqvZN/view?usp=sharing

4

Next go to the render settings and under Octane Render, set the Render Buffer Type to Float(Linear)

7

If you are using render passes then go to the render passes tab and make sure the Image color profile and the Tonemap type are set to linear

8

once the render is complete, you should be able to bring the render into your compositing software as scene linear (ACEScg) and set the viewing transform to sRGB (ACES), in some packages this may be called Output - sRGB.

9

And that’s it!

Keep in mind, this is only a temporary solution until OCIO is implemented into Octane in a future release but I hope this is useful for the time being!

some bugs to keep in mind are that this goes affect the daylight system as they are using the standard bt. 709 primaries (used in rec. 709 and sRGB) not the AP1 Primaries causing issues.

sky

another issue is the colour picker is using the bt. 709 primaries too so accurate colour picking does not work. there are work around you can do but I have not had the time at the moment to do it so I encourage people to have a crack at it.

2 Likes

Great work, I am interested to know the limitation of .cube file (as you specified that your method seems to struggle with strong highlights).
Actually it looks like it’s clipping highlights (light on the chrome ball become greyish)

1 Like

hi rich,

concerning your output lut…why not using ociobakelut app to generate this lut?
here a windows version of the ocio apps, maybe it helps you…
http://www.soulcage-department.de/ocio_apps.rar

1 Like

Thank you for this Wilhelm, didn’t know a tool like this existed, I will update the LUTs shortly!

its quite handy…
here a link to an overview and how to use it…
https://opencolorio.org/userguide/tool_overview.html
(btw. if you have after effects, with the free ocio plugin you can also export luts from any ocio config)

1 Like

Because the cube LUT support in Octane only handles input in the 0-1 range, anything in the scene above diffuse white will be clipped to 1.0. Then the ACES output transform will map that to about 85% white, with no highlight roll-off. That is rather a significant limitation in the preview – speculars all end up flat 85% grey.

Octane needs to support a log shaper to map a wider dynamic range into 0-1.

A log shaper would also improve shadow appearance, as currently this method is applying a 3D LUT to linear data, which is far from ideal, because a regular mesh spacing is unnecessarily dense in the highlights for linear data, and insufficiently dense in the shadows.

I did at one point work out a set of settings for Octane which produced a pseudo-log image, with extended dynamic range, and then made a customised ACES LUT to apply to that. It was very experimental, and dome with a beta version of Octane, so I cannot be sure if the same settings work with the current release. But if anybody want to have it to experiment with, they can contact me directly.

3 Likes

concerning daylight system, you have to do some color matrix transform (in c4d i think you can do that with standard nodes…dont know if the octane daylight node has an output, i.e. in redshift physical sky this is possible).
for the correct matrix you can use this tool
https://www.colour-science.org/apps/

1 Like

Thanks for the answer Nick !

Unfortunately, as far as I can see you can’t apply any form of colour transform to the daylight system due to the lack of an output node. as you mentioned, this works great for redshift but unfortunately in Octane, it is quite lacking. you can convert the sky and sun colour to AP1 primaries but unfortunately as the Scene Referred Colourspace does not have the AP1 primaries, the calculations of the daylight system aren’t accurate with that method either.

Hi, I am bumping this 8 months old post.

I have been building a documentation for myself in regard to ACES in Octane.
Before I find the time to finish it as it is quite a technical and advanced subject to cover entirely, I do like to warn everyone about a fundamental point of Octane: it is a “true” spectral renderer and cannot follow the exact same workflow as a classic RGB renderers (Arnold, Redshift, etc).

The documentation, with the help from OTOY developers and software engineers, will be posted on the ACES central forum (as well as other places), and has the goal to demystify the current confusion (and misconception) in regard to ACES in a spectral renderer, particularly (if not specifically), Octane.

Until then, I am available to answer questions privately (I am accessible on Discord: kn9#1548, I do prefer to avoid emails).

Best.

1 Like