Ocio 2.1 - ACES ODTs

Hello, sorry if this is a really dumb question, but I’m having trouble to really understand which is the equivalent of “Output - rec709” of the old OCIO 1.0 in the new 2.1 config.ocio, as there is not a specific colourspace named for it (nor aliases).

I undertand that the “output value” is now diplay one, and I saw some view transform items display colourspaces ( Rec.1886 Rec.709 - Display), but I’m trying to make it work like “the old way” so I can apply it to custom colourspaces or colour loops I create inside of OCIO (for ex, coding a full loop adding a cdl and lmt and adding this ODT inside the same colourspace). Specifically what im looking for is the > Rec709 Gamma 2.4 RRT 1.3 ODT

Example of what I want to have in my config ocio for custom loops I’m making:

  • !
    name: shot_grade
    family: Project/Looks/Rec709
    equalitygroup: “”
    bitdepth: 32f
    description: |
    Final shot grade editorial
    isdata: false
    allocation: lg2
    allocationvars: [-8, 5, 0.00390625]
    from_reference: !
    children:
    - ! {src: ACES, dst: ACES - ACEScct}
    - ! {src: grade.cc, interpolation: linear, direction: forward}
    - ! {src: lmt.cube, interpolation: tetrahedral}
    - ! {src: ACES - ACEScct, dst: Output - Rec.709}

Could someone help me to understand the best way to work around this new ocio? Thank you so much for all the help!

The old Rec709 one is:

  • !
    name: Output - Rec.709
    family: Output
    equalitygroup: “”
    bitdepth: 32f
    description: |
    ACES 1.0 Output - Rec.709 Output Transform

    ACES Transform ID : 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}
    from_reference: !
    children:
    - ! {src: Log2_48_nits_Shaper_to_linear.spi1d, interpolation: linear, direction: inverse}
    - ! {src: Log2_48_nits_Shaper.RRT.Rec.709.spi3d, interpolation: tetrahedral}

Hey there,

I don’t know all the ins and outs of OCIO so maybe there are more solid ways to tackle it.
But I once tested a simple addition of an LMT to the view transform for cases where the user may not have access to OCIOLookTransform. In this case I did that for the Redshift based OCIO config so it could be viewed in the renderer in Cinema4D.

This is what I added/modified to the config in respective places.

shared_views:

  - !<View> {name: ACES 1.0 SDR-video + showLUT, view_transform: ACES 1.0 SDR-video, display_colorspace: <USE_DISPLAY_NAME>, look: showLUT}

displays:

displays:
  sRGB:
    - !<Views> [ ACES 1.0 SDR-video, ACES 1.0 SDR-video + showLUT, Un-tone-mapped, Log, Raw ]

looks:

looks:
  - !<Look>
    name: showLUT
    process_space: ACEScct
    transform: !<FileTransform> {src: showLUT.cube, interpolation: tetrahedral}

In your case the look would need to be a group transform with the specified children for the cdl and lut you have there. The transforms to and from ACEScct aren’t necessary because the look itself is being defined to be processed in ACEScct via process_space.
In my case I named the view ACES 1.0 SDR-video + showLUT but it could be named to anything as long as it matches in shared views and displays.

Hope that helps.

1 Like

Hi Shebanjah Thanks for taking the time to reply!
I don’t know if I expressed myself correctly,
I saw that the new ocio 2.1 has the acesAPO to rec709 transform as an inbuilt in a View transform that contains all the IDs of the colourtransforms I need.
This used to be a colourspace in the ocio 1 made with external files.

And mostly I wonder if is possible to build that AP0 to Rec709 transform as a colourspace again in ocio2.1 to use it at the end of my concatenations, as for the pipeline I use is way more practical have it grouped as a colourspace itself, and which would be the best way to get that built with the new system.

I see, if for your pipeline you’re really locked to using only color space definitions to go in and out that makes it trickier. I unfortunately do not know how to do that exactly with the built-in transforms in v2.x.
I hope someone else is able to chime in.

If you’re not getting the answers you need, the OCIO Slack group may be able to assist.

edit:

The Rec.1886 Rec.709 - Display is indeed the display part of the output transform but it’s only the display definition. Without the view transform ACES 1.0 SDR-video there is no RRT so you’d need both components placed in a color space. Maybe that helps a bit.

1 Like

After some hours of trial and error and figuring out which of the displays is the equivalent to the old “Output - Rec709”, I manage to match the color values and code this inside a colourspace to create for ex. a custom editorial viewer or output to rec709 for movs, by doing this:

OCIO 1.0

from_reference: !<GroupTransform>
children:
-  ! <ColorSpaceTransform> {src: ACES - ACEScg, dst: ACES - ACEScct}
-  ! <FileTransform> {src: grade.cc, interpolation: linear, direction: forward}
-  ! <FileTransform> {src: lmt.cube, interpolation: tetrahedral}
-  ! <ColorSpaceTransform> {src: ACES - ACEScct, dst: Output - Rec.709}

OCIO 2.1

    from_reference: !<GroupTransform>
      children:
        - !<ColorSpaceTransform> {src: ACES - ACEScg, dst: ACES - ACEScct}
        - !<FileTransform> {src: grade.cc, interpolation: linear, direction: forward}
        - !<FileTransform> {src: lmt.cube, interpolation: tetrahedral}
        - !<DisplayViewTransform>
           src: ACES - ACEScct
           display: Rec.1886 Rec.709 - Display
           view: ACES 1.0 - SDR Video

I´m not sure is the most correct way, would love to have a way to convert that display view transform into a colourspace, but is further than what I had before

Thanks for sharing Laura,
Good to know it’s possible by calling a DisplayViewTransform, that is also new to me. I think it’s pretty clean for it’s purpose. The ideal is of course utilizing the actual OCIODisplay and/or OCIOLookTransform in OCIOv2 supported apps but it can be that some implementations are not exactly ideal making this a reasonable substitute.

Hello,
I have another solution that might be simpler for you: in the config.ocio file, there is inactive_colorspaces variable that have Rec.1886 Rec.709 - Display set there. You can remove it from the list and it will be available as a regular colorspace transform.
You don’t even need to edit to config directly because you can override this list through OCIO_INACTIVE_COLORSPACES environment variable which is nice since depending of your pipeline tools, you can hide different transforms keeping the same config.
Hope it helps!

3 Likes

I guess you should also consider adding Reference Gamut Compression Look if you are going for 1.3.

Yes! I am adding the look inbuilt when I need to do a proper 1.3 look.
I’m testing new ways to create custom ODTs for flexible loops (ones that need aces odt and ones that come with custom luts with the rec709 on it) all these answers have been very helpful!