Create "looks" OCIO config - ACES transform problem (Resolve 14 ACEScc LUT to Maya)

Hello,

we are currently trying to introduce ACES to our VFX pipeline at our small studio.
I’m fairly new to ACES but already a fan of it. I claim to understand the basic theory of it, and combined with OCIO the management of color spaces for various applications seems pretty smooth so far.
But I’m struggeling when it comes to creating a look within the OCIO config based on 3D LUTs exported from Resolve.

I want to create a display view in my config, that contains the pre-grade LUT from Resolve as well as the main ODT.
The main goal is, that this display view can be selected within Maya or Nuke then as the view transform, and should give a preview of the final grade for CG-Work and Compositing.
But there is a problem in Maya and Nuke when I select the custom OCIO-view that contains the Look.

Let me describe the problem in detail.
So here is the description of our workflow and the steps taken so far:

DaVinci Resolve 14 (Working Color Space: ACEScc)

  1. footage imported from camera and transformed to ACES via corresponding IDT.

  2. ODT is set to sRGB appropriately for our monitors.

  3. primary balance grade is made for the shot (only basic color correction, no masks or secondary effects).

  4. then we export the shot without the grade and ODT turned off as 16 bit float EXRs in ACES2065-1 color space. This is the main intermediate file for interchange and further CG- and Compositing Work.

  5. the grade is exported separately as a 3D LUT .cube-file
    Note:
    With DaVinci Resolve 14 they fixed the problem that the ODT transform was included in the exported LUT. Now only the grade operation, without the ODT gets exported correctly!
    That means, since we were working in ACEScc that LUT can only be applied correctly to footage in an ACEScc working space, as far as I understand?

OCIO, MAYA 2017, Nuke 11 (Working Color Space: ACEScg using OCIO and ACES 1.0.3 config)

  1. I imported the shot-EXR and put it on a backplate in Maya. The input color space for it is set to ACES2065-The working rendering color space is set to ACEScg. All good so far.

  2. Then I created a custom ocio config, where i added a new display view and a look that should be used. Here is a snippet of the relevant parts:

    search_path: luts/previewLuts_01:luts

    displays:
    ACES:
    - ! {name: sRGB, colorspace: Output - sRGB}
    - ! {name: Rec.709, colorspace: Output - Rec.709}
    - ! {name: Rec.709 D60 sim., colorspace: Output - Rec.709 (D60 sim.)}
    - ! {name: sRGB D60 sim., colorspace: Output - sRGB (D60 sim.)}
    - ! {name: Raw, colorspace: Utility - Raw}
    - ! {name: Log, colorspace: Input - ADX - ADX10}
    - ! {name: VFX-PreGrade_LUT, colorspace: ACES - ACEScc,
    looks: dailies_LUT}

    looks:

    • !
      name: dailies_LUT
      process_space: ACES - ACEScc
      transform: ! {src: preview_LUT_ACEScc_v01.cube, interpolation: linear}
  3. Now, in Maya I can select the VFX-PreGrade_LUT as view transform then, but the output is not working correctly. It looks like a log picture - like ACEScc space, which seems logical since I declared it as the colorspace for the view, because the look needs that space. But in the end i need a sRGB colorspace to view it correctly again. So how can I achieve that within one view transform that I can select in Maya or Nuke? I don’t know which exact transforms to use and in what order to achieve the desired result?

So here is my problem/question summoned up:
Is it possible to create a transform chain for one display view, to combine a Look Transform (based on a LUT within ACEScc) and a Output Device Transform (to sRGB) within the ocio config?

So the order should look something like this:

  1. Linear to ACEScc

  2. Apply Pre-Grade 3D-LUT from Resolve

  3. ACEScc to linear

  4. linear to sRGB

?

I hope, the description of my problem is understandable and maybe someone ran into the same issue before.
Any help would be really appreciated. Thanks!

Respectfully,
Joachim


1 Like

Hello Joachim,

Maya’s implementation of OpenColorIO did not, at least in the past, implement support for Looks properly. To get around limitation, you’ll want to define a new LookTransform like you had described:

looks:

  • !
    name: Custom Look
    process_space: ACES - ACEScc
    transform: ! {src: custom_look.3dl, interpolation: best}

and then reference this directly in a new Output Color space, like so:

  • !
    name: Output - sRGB with Custom Look
    family: Output
    equalitygroup: “”
    bitdepth: 32f
    description: |
    ACES 1.0 Output - sRGB Output Transform

    ACES Transform ID : ODT.Academy.RGBmonitor_100nits_dim.a1.0.3
    isdata: false
    allocation: uniform
    allocationvars: [0, 1]
    to_reference: !
    children:
    - ! {src: InvRRT.sRGB.Log2_48_nits_Shaper.spi3d, interpolation: tetrahedral}
    - ! {src: Log2_48_nits_Shaper_to_linear.spi1d, interpolation: linear}
    - ! {src: ACES - ACES2065-1, dst: ACES - ACES2065-1, looks: Custom Look, direction: inverse}
    from_reference: !
    children:
    - ! {src: ACES - ACES2065-1, dst: ACES - ACES2065-1, looks: Custom Look}
    - ! {src: Log2_48_nits_Shaper_to_linear.spi1d, interpolation: linear, direction: inverse}
    - ! {src: Log2_48_nits_Shaper.RRT.sRGB.spi3d, interpolation: tetrahedral}

and finally, add a new distinct View that references that colorspace:
- ! {name: sRGB with Custom Look, colorspace: Output - sRGB with Custom Look}

If you’re not comfortable editing the config.ocio directly, you can use the config generation script. The command line would look like:
/path/to/OpenColorIO-Configs/aces_1.0.3/python/bin/create_aces_config -a /path/to/aces-dev/transforms/ctl --lutResolution1d 1024 --lutResolution3d 33 --dontBakeSecondaryLUTs --addCustomLookLUT “Custom Look” “ACES - ACEScc” /path/to/custom_look.3dl -c aces_1.0.3_with_look --copyCustomLUTs

You probably already know this, but the line above assumes you have the main configs and ACES CTL repos synced from github. They’re here:


Hope that helps,
HP

1 Like

Joachim -

Not sure if you saw the response I posted to the similar thread you started over on the OCIO-Users email list, but I think the main problem here is your config rather than Maya (I suspect it gives you the same wrong result in Nuke).

In your VFX-PreGrade_LUT view, the colorspace attribute should not be ACEScc, it should be one of the ACES Output colorspaces. ACEScc is the process space but that gets defined in the Look itself.

If you upgrade to a current version of Maya I don’t think you will have any problem using Looks as part of a View. Otherwise you could create a new colorspace for it as HP suggests.

Doug Walker
Autodesk

1 Like

Hey Doug,

thank you very much for your response! It’s finally working!
Now that you’ve mentioned it, the mistake is actually pretty obvious to me :smiley:
Thanks for that eye-opener!

Working in Maya 2017 update 4 - just switched the colorspace for the ! to “Output - sRGB”

Best,
Joachim

Thank you Haarm-Pieter,

sounds like a proper workaround for the problem, but since it’s working now, with the changes doug mentioned, I didn’t have to try it out.

Best,
Joachim

I defined my preview LUT in config.ocio like you, but I didn’t find it in Nuke. I don’t know how to solve it.


This is a really helpful workflow for looks in OCIO, however it appears that the transforms disappeared in @hpduiker 's above post because they were inside the < > characters. Below is the post with the transforms included in the hopes that it helps someone else: