OpenColorIO ACES workflow for final comp output

   2549   2   2
User Avatar
Member
11 posts
Joined: 5月 2010
オフライン
I've read and watched many helpful tutorials on using OpenColorIO ACES within Houdini, and I think I have it down, except for the final final (comp) output.

I'm rendering my 3D scene as 16bit EXRs, then I'd like comp, postfx & grade in Houdini, and finally render that out to 8bit tifs so I can convert to mp4 with ffmpeg. This final step is what the problematic step.

Before my ROP I have a VOPCOP which converts my image from "ACEScg" to "Output - sRGB". And when I compare the image on my screen between "VOPCOP on and viewer OpenColorIO Transform disabled" to "VOPCOP off and viewer OpenColorIO Transform set to SRGB", the results are identical. So it seems that the workflow up to this point is good.

When I export this to tif however, an additional (gamma?) transform is applied in the ROP. I have tried a number of things but can't get the perfect results.

This is my reference. My VOPCOP transform (ACESCg to Output - SRGB) is disabled, Viewer transform is enabled.


Checking my VOPCOP transform: VOPCOP transform enabled, Viewer transform is disabled. This is identical to the previous image. So the VOPCOP transform is working correctly.


All of the following tests have the VOPCOP transform enabled.

ROP writing to TIF with "Convert to Image Format's Colorspace" enabled. Definitely very wrong.


ROP writing to TIF with "Convert to Image Format's Colorspace" disabled, and gamma=1. I would have hoped this to work. As I want to write the raw values at this stage after the VOPCOP transform. But it's much brighter. So something is still going on.


ROP writing to TIF with "Convert to Image Format's Colorspace" disabled, and gamma=1/2.2. This is very close to the reference image. However it is a bit higher contrast, and detail in shadows is lost.


ROP writing to TIF with "Convert to Image Format's Colorspace" disabled, and gamma=1/2.4. This is also very close to the reference image, but slightly darker. And more off than gamma=1/2.2


If gamma=1/2.2 would have provided perfect results, I would have assumed that the TIF export is adding an additional gamma correction of 2.2, so I would need to counter that by setting gamma=1/2.2 in the ROP node. But even that is not producing perfect results. And I feel like there should be some theory going on here and I shouldn't have to trial and error find the perfect gamma to match the output.
Edited by memo - 2021年6月10日 06:19:31

Attachments:
vopcop off - viewer transform on.png (592.1 KB)
vopcop on - viewer transform off gamma1.png (592.8 KB)
ROP_convert_to_image_format_colorspace.3765.png (418.2 KB)
ROP_output_gamma_1.3765.png (454.2 KB)
ROP_output_gamma_0.45.3765.png (421.6 KB)
ROP_output_gamma_0.42.3765.png (410.7 KB)

User Avatar
Member
11 posts
Joined: 5月 2010
オフライン
Problem solved, I needed to add an 8-bit conversion node before the ROP, doh. And then I can use Gamma=1 in the ROP. The 8bit tif is then (perceptually) identical to the ACES corrected view in Houdini.
Edited by memo - 2021年6月10日 07:34:12

Attachments:
ROP_output_gamma_1.3765 8bit.png (425.0 KB)

User Avatar
Member
67 posts
Joined: 5月 2019
オフライン
memo, thank you for writing this thread. I'll add additional thoughts with screenshots that possibly will help someone.

Everything below is not scientific. I care about the transformed result to match viewport ACES LUT as close as possible.

Done with OCIO v1, not v2.

To me, the result looks almost identical. If you zoom in on the blue color areas on the recording part of the disk, there you might see a slight difference.

Render in Karma.

Comparison

Here's a comparison with ACES LUT enabled in the viewport (left) and ACES transform via VOP COP2 Filter with Gamma COP node applied with a value 1/2.2(right):



Here's a slight difference I was talking about (difference in color gradient):



How to achieve this result

Placed at the very end of compositing graph:



COP VOP Filter (you might saw it several times, but just in case..):



The thing to keep in mind is to go into the ROP File COP -> Metadata tab and change (if saving PNG/TGA) PNG/TGA Premultiplication param to Unpremultiplied:



Difference:




Saved PNG from screenshots above (ACES transformed):




And last screenshot example to show for the sake of transparency:

Edited by AnimGraphLab - 2024年1月13日 03:05:36

Attachments:
aces-viewport-cop2-filter.png (1.1 MB)
vopcop-gamma.png (150.6 KB)
ropfile-unpremult.png (59.7 KB)
premult-vs-unpremult.png (906.3 KB)
copvop-filter.png (78.1 KB)
bluray-render-2-comp.png (3.1 MB)
viewport-example.png (640.7 KB)
slight-difference.png (600.3 KB)

Generalist. Transforming still images to 3D animation 🔮
Socials: https://linktr.ee/AnimGraphLab [linktr.ee]
  • Quick Links