Create custom display view in OCIO config

Hello everyone,

we are currently trying to create our own display view in ocio to use dailies lut for composers. And we got a problem while writing code in ocio config to make color transform correctly.

ACES 1.2
Example:
We have a plate in ACEScg and we need to transform it to rec709 with color transforms. Correctly transform (in Nuke) looks like:
ACEScg plate → applying .cc lut (OCIO File Transform) → applying .cube lmt (OCIO File Transform)-> Output - Rec.709
Working space for OCIO File Transform is ACEScct

  1. Now in config ocio:
    We create a look
    looks:
    • !
      name: CustomShot
      process_space: ACES - ACEScct
      transform: !
      children:
      - ! {src: 001_custom_010.cc, interpolation: linear}
      - ! {src: show_lmt_001_acescct_to_acescct_33.cube, interpolation: linear}

And now we have to apply Output - Rec.709

We tried to create Custom Rec 709 View
- !
name: Output - Rec.709 Custom
family: Output
equalitygroup: “”
bitdepth: 32f
description: |
ACES 1.0 Output - Rec.709 Output Transform
ACES Transform ID : urn:ampas:aces:transformId:v1.5:ODT.Academy.Rec709_100nits_dim.a1.0.3
isdata: false
allocation: uniform
allocationvars: [0, 1]
to_reference: !
children:
- ! {src: InvRRT.Rec.709.Log2_48_nits_Shaper.spi3d, interpolation: tetrahedral}
- ! {src: Log2_48_nits_Shaper_to_linear.spi1d, interpolation: linear}
- ! {src: ACES - ACEScg, dst: ACES - ACEScg, looks: CustomShot}

      from_reference: !<GroupTransform>
        children:
          - !<ColorSpaceTransform>  {src: ACES - ACEScg, dst: ACES - ACEScg, looks: CustomShot}
          - !<FileTransform> {src: Log2_48_nits_Shaper_to_linear.spi1d, interpolation: linear, direction: inverse}
          - !<FileTransform> {src: Log2_48_nits_Shaper.RRT.Rec.709.spi3d, interpolation: tetrahedral}

and in displays we have
displays:
ACES:
- ! {name: UGRF LUT, colorspace: Output - Rec.709 Custom}

Unfortunately it looks the same Output - Rec.709. and our Custom Rec.709

Question is: how to create custom display view in ocio config with 2 file transforms and look under
Output - Rec.709

Hope description of our issue is understandable and maybe someone has a solution for it.
Any help would be really appreciated. Thank you!

With warm regards,
Igor

Hi Igor,

First, you need to copy your LUT to the “luts” Folder of the OCIO package containing your ocio.config, then
try this in your ocio.config:

Display area of the config:

displays:
  ACES:
    - !<View> {name: *DV_name*, colorspace: Output - *DV_name*}

Active displays area of the config:

active_displays: [ACES]
active_views: [....., *DV_name*]

Colorspaces area of the config:
Go to the Output region, where you can find all Output definitions and add:

- !<ColorSpace>
  name: Output - *DV_name*
  family: Output
  equalitygroup: ""
  bitdepth: 32f
  description: |
    LUT Test
  isdata: false
  allocation: uniform
  allocationvars: [0, 1]
  from_reference: !<GroupTransform>
    children:
      - !<ColorSpaceTransform> {src: ACES - ACEScg, dst: ACES - ACEScct(this needs to be set to the proper input colorspace for your LUT)}
      - !<FileTransform> {src: LUT.cube(your LUT in the "luts" folder), interpolation: linear}
      - !<ColorSpaceTransform> {src: ACES - ACEScct(this needs to be set to the proper input colorspace for your LUT), dst: ACES - ACEScg}
      - !<FileTransform> {src: Log2_48_nits_Shaper_to_linear.spi1d, interpolation: linear, direction: inverse}
      - !<FileTransform> {src: Log2_48_nits_Shaper.RRT.Rec.709.spi3d, interpolation: tetrahedral}

Good luck,
Andrei

2 Likes

Hello Andrei,

Thank you for your advice, it works pretty well, but we still have a problem with a color shift.

  1. We have a ocio file transforms applied on plate in Nuke
    Plate in ACEScg → OCIOFIleTransform (working space - ACEScct, interpolation - linear, direction - forward) and we are looking in RAW Viewer (just for a proof)

  2. We changed the OCIO Config with your instruction and created a View, without Rec.709 transform

  • !
    name: Output - LOOK Test
    family: Output
    equalitygroup: “”
    bitdepth: 32f
    description: |
    LUT Test 2
    isdata: false
    allocation: uniform
    allocationvars: [0, 1]
    from_reference: !
    children:
    - ! {src: ACES - ACEScg, dst: ACES - ACEScct}
    - ! {src: LUT.cc, interpolation: linear, direction: forward}
    - ! {src: ACES - ACEScct, dst: ACES - ACEScg}
    to_reference: !
    children:
    - ! {src: ACES - ACEScg, dst: ACES - ACEScct}
    - ! {src: LUT.cc, interpolation: linear, direction: inverse}
    - ! {src: ACES - ACEScct, dst: ACES - ACEScg}

So, transforms 1 and 2 are the same, but in Nuke we can see a saturation color shift. May be exist some way to define a parameter of working space for a LUT in OCIO Config, like its working in OCIOFileTransform node in Nuke?

Thank you!

With warm regards,
Igor