Browse the wiki

Feature Animation Colour Pipeline

An overview on the ACES colour pipeline we are using for Feature Animation projects, and how to set things up in applications such as Maya, Mari, Nuke, etc.

Suggested Reading

For CAVE CG Animation projects, we’ll be implementing an ACES colour pipeline. This is to ensure we work consistently across projects for all things colour related, and so that we have a larger gamut of colour to play with.

If you are new to ACES, it can be a pretty intimidating subject. Anything colour related is a hot potato in the CG world I find. Lukily for us, there are many docs and videos on ACES, from technical explanations to more artist-facing walkthroughs, so if ACES is new to you, I recommend you work through the following docs to become more acquainted with ACES:

CAVE CG Animation ACES OCIO Config

At CAVE, our colour team have put together a modified version of what you’d typically find online. This is a simplified config to create less confusion when setting things up, and has been tailored for better results when displaying content on sRGB monitors for output.

You can download the CAVE config from the shop here: CAVE_cgAnim_slim_aces_ocio_config

There are two colorspaces in this config:

  • Utility – sRGB – Texture: which is the sRGB Gamma curve and the sRGB primaries (so normal sRGB)
  • Utility – Curve – sRGB: which is the sRGB Gamma curve but uses the ACES2065-1 primaries (AP0)

The first space (Utility – sRGB – Texture) will match most normal texture uses (hence the name) and will make interchange between apps such sa Substance Painter/Mari simpler. The latter (Utility – Curve – sRGB) uses the sRGB gamma curve but uses wide gamut primaries, and would make interchange with Substance Painter/Mari more complicated. For most cases, we should be able to stick with: Utility – sRGB – Texture

…and I’d also recommend you download some colour checker charts to test your setup. For the below walkthroughs on setting up Maya, Nuke, etc, I’ll be using the ACEScg_ColorChecker2014.exr chart that has been very kindly provided by colour-science here: ColorChecker2014

Setting up your Applications

If you only need to stick to one config, you can hook this into your environment variables. However, as we’ll be working on a mix of VFX and CG Animation projects at CAVE, we’ll occasionally switch between different configs, and therefore we’ll show you how to manually set up your applications. In the future, we’ll be looking to create a set of tools that will automate this process.

Maya

Launch Maya and set your project. Next, go Windows > Settings/Preferences > Preferences, and click on the Color Management catergory.

Click on the folder icon to the right of OCIO Config Path and then select the config.ocio from the CAVE_cgAnim_slim_aces_ocio_config:

Make sure Use OCIO Configuration is enabled and check your Color Transform Preferences are set to:

  • Rendering Space: ACES – ACEScg
  • View Transform: sRGB (ACES)

If you click on the View Transform drop-down, you’ll notice we are only making available 3 transforms: sRGB (ACES), Raw (ACES) and Log (ACES).

The next thing to do is check that all looks good in the render. Below are the steps to create a macbeth geometry plane, and you can also grab the macbeth geo that I am using here: CAVE_prop_macbeth_model_prim_default_lod1_v001

Start by creating a polygon plane (Create > Polygon Primitive > Plane) and set the following:

  • Width to 27.900
  • Height: 21.000

Rename this plane to macbeth_GEO.

Next, hold down the right-mouse-button (RMB) over the plane and go: Assign New Material, and then select the aiFlat shader. In the Attribute Editor, rename the shader to: macbeth_MAT and then click on the checker input icon for Color.

Next,  select File and then add the ACEScg_ColorChecker2014.exr to the file input. As this is an exr file, make sure to set the Color Space to ACES – ACEScg. In the viewport, hit 6 to jump to textured mode and if the macbeth texture looks a bit funky, you’ll probably need to update the UVs on the geo.

Now to test this in render.

Maya/Arnold

Frame your macbeth chart and then launch the Arnold render window by going: Arnold > Arnold RenderView

Make sure the View Transform is set to sRGB (ACES) and hit render. If you get something like this, then you are good to go:

For more information on ACES Workflows in Maya/Arnold, check out the official docs here: Maya/Arnold ACES Workflow

Colour picking in Maya

When using the colour picker in Maya, you will see the one option for Mixing Color Space, which is Output – sRGB. This is being driven by the OCIO Roles:
  • color_picking: Output – sRGB
So with the color_picking role set to this, It is assuming that you’re in more of a Nuke/Comp/Matte Painting context where you want to do an inverse LUT operation to approximate full-dynamic range scene-linear content, rather than the scenario you have where you’re just doing diffuse 0.0-1.0 texture color picking.

Nuke

In Nuke, hit the S key on the keyboard to bring up the Project Settings window (or go Edit > Project Settings).

Then set the OCIO config to custom, and load the config.ocio file into the custom OCIO config slot.

To see how this looks on the colour checker image, drop down a Read node (R) in the NodeGraph and load ACEScg_ColorChecker2014.exr. Make sure the Colorspace is set to scene_linear (ACES – ACEScg) on the Read node, and your viewer lut is set to sRGB (ACES). Then press 1 on the keyboard to plug the image into the viewer and hopefully you get something like this:

Houdini

Coming soon!

Mari

Coming soon!

Substance Painter

Coming soon!

Substance Designer

Coming soon!

Photoshop

Coming soon!

Resolve

Coming soon!

Support CAVE Academy

Here at CAVE Academy the beauty of giving and sharing is very close to our hearts. With that spirit, we gladly provide Masterclasses, Dailies, the Wiki, and many high-quality assets free of charge. To enable the team to create and release more free content, you can support us here: Support CAVE Academy

Join the discussion

Comments 11
  1. rohit8004 on 2020.09.19 at 16:39 GMT

    Thanks for sharing, It’s very helpful.

  2. Tino Nettling on 2021.02.15 at 07:37 GMT

    thanks for sharing!
    A question regarding sRGB jpg-Textures in Maya/Arnold:
    They look wrong when using the sRGB-Texture setting. When I use Output-sRGB it’s fine.
    Is this normal and correct? Because I read everywhere to use sRGB-Texture. (it’s the same with the original Aces config)

    • jahirulaminadmin on 2021.02.15 at 11:30 GMT

      Hey Tino, I can’t attach images to this discussion, so I’ve dropped an image here: https://discord.com/channels/756703913054306384/757342792170078370

      …I guess it all depends on your inputs and outputs and what colour space you’ve created your textures in and what not. In the image I added to the Discord, I grabbed 2 Macbeth charts from the ‘colour-science’ gitHub: ACEScg_Labels_ColorChecker2014.exr and sRGB_Labels_ColorChecker2014.exr

      ACEScg_Labels_ColorChecker2014.exr I set to ACES – ACEScg

      … and sRGB_Labels_ColorChecker2014.exr I set to Utility – Linear -sRGB.

      Both give me the same result and what I’d expect.

    • Ashish Naskar on 2021.09.18 at 17:23 GMT

      Hey Tino,
      Yes you’re correct, to view sRGB textures (jpeg/png) in ACES you’ve to keep the IDT to Output-sRGB but the thing is it doesn’t clamps the values and can give you value above 1. So how I work is like I keep my diffuse maps in Output-sRGB but keep the data maps as sRGB-Utility-Texture as we anyway tweak them as per our needs and also the map is clamped. My method can be wrong too and I would like to know more about ACES.

  3. Nur Diker Koksal on 2021.02.17 at 15:00 GMT

    Hi, thank you for sharing this valuable information.
    I see slightly different colours when I render in Redshift(brighter and less contrast) with the same settings.
    Are you planning to make a tutorial for Redshift in Maya, too? Or is that as easy as just commenting in here? 🙂
    Thank you!

    • Nur Diker Koksal on 2021.02.17 at 16:41 GMT

      Oh ok, I just read the part in the An Idiot’s Guide to ACES and learned about the trouble for Redshift.
      Thanks!

      • jahirulaminadmin on 2021.02.17 at 16:46 GMT

        Hey Nur,

        Glad to hear you found a solution. We will be looking to document each renderer but this wil take a bit of time to get round to doing so. If you’ve managed to set things up and are happy to send through screen grabs with some step by step text, then that would be amazing and we’d be able to get things documented quicker.

        Thanks
        J

  4. Aleksey Nedovesov on 2022.08.15 at 20:31 GMT

    thanks for sharing!
    More awesome content like this! thx!

  5. Charles Maywood on 2023.10.13 at 03:21 GMT

    Great stuff, gold mine for me the new guy stepping it up.

Leave a Reply Cancel Reply