OpenColorIO and ACES

OpenColorIO1, often abbreviated as OCIO, is a free and open source library for developers (not users), facilitating color management. It aims to be used by all applications in digital image production, thus facilitating color management throughout the production pipeline: by becoming standard, it makes it possible to share the color configuration throughout the production pipeline and to have control over it at all stages, as easily as possible.

Applications using OCIO therefore all share the same color management configuration format, a file named congig.ocio.

It’s thus possible to easily share the same color management throughout the production pipeline, defining workspaces, file spaces, color picker spaces, display spaces, final output spaces… See Chapter Choosing your color spaces and formats*.

Note

OpenColorIO also brings support for a large number of LUT* formats, solving the problem of LUT compatibility within applications.

Several OCIO configurations are provided as examples that can already be used in production as is, including the ACES configuration (see below) or the Sony Pictures Imageworks configuration for animation (spi-anim) and special effects (spi-vfx).

Compatible applications

Here’s an (non-exhaustive) alphabetical list of the main applications using OpenColorIO, established in early 20242.

Application Use Notes
Adobe After Effects Compositing Native support since 2023
or using a plugin.
Autodesk Arnold Render engine
Blender, Cycles, Eevee 3D, Render engine, compositing
DuME Encoder
SideFX Houdini 3D
Krita Drawing
The Foundry Mari Textures
Autodesk Maya 3D
Mocha Pro Motion Tracking
Modo 3D
The Foundry Nuke Compositing
Adobe Photoshop Drawing, Image processing Partial support via ICC profiles
Maxon Redshift Render engine
Substance Designer Textures
Unreal Engine Real-time engine
V-Ray Render engine

Hint

Any application that can use LUTs* can be integrated into a production pipeline using OCIO, by exporting the LUTs needed for production from OpenColorIO, either via the command line tool provided, or by using the DuME media encoder which can create these LUTs.

ACES

ACES stands for Academy Color Encoding System, and is intended to be a color management and exchange standard for digital imaging; it aims to simplify color management and maintain the highest fidelity in all production pipelines. It’s free and open source, and uses OpenColorIO.

ACES actually consists of:

See chapter Selective list of color spaces for technical details concerning the various color spaces of ACES.

The main recommendations on storage are:

ACES color space

The different spaces offered by ACES correspond to different needs and specific uses. Here are the most important ones.

ACES2065-1

The space ACES2065-1 is the space with the broadest gamut*, including all visible colors, and its curve of transfer is linear.

It’s in fact the most complete of color spaces, its goal being to be able to store colors without loss, and compatible with all past and future spaces.

Like all linear spaces, it requires a depth of at least 16 bpc, with a preference for 32 bpc compatible with its goal of efficiently representing any visible color.

It’s in fact little used, representing too much data, its interest being mainly theoretical.

ACEScg

The ACEScg (for computer generated (images)) color space is derived from ACES2065-1, but uses different primaries*, reducing its gamut*, which is still very large, while being more convenient than ACES2065-1.

It’s a linear space, designed and ideal for 3D rendering and compositing. With its very wide gamut, and the associated OCIO configuration allowing to efficiently generate images in smaller standard spaces, it allows a color synthesis more faithful to reality and human vision, especially in the highlights.

Comparison of linear RGB and ACEScg rendering
Comparison between rendering using RGB primaries and ACEScg3

The ACES recommendation is to use this space in animation and CGI production, both as a workspace in applications, and for storage in the openEXR file format. Thus, from rendering and image generation to final delivery, no data conversion is required (except for display of course).

ACEScc

The ACEScc (for color correction) space is similar to ACEScg except that its transfer curve isn’t linear.

This transfer curve makes it a poor space for rendering and image generation, but makes it much more practical for color grading.

Linear / sRGB color selector comparison

It’s therefore recommended for color correction and adjustment work on filmed images, or at the end of animation production for final color correction.


Sources & References


  1. Being free and open source, many studios contribute to the development of OpenColorIO, managed by the ASWF, Academy Software Foundation in the USA. 

  2. A complete list is available on the OpenColorIO website. 

  3. This comparison is made with Blender; ACES isn’t included in Blender, but it’s easy to use with OpenColorIO. Although ACES doesn’t come standard with Blender, the actual Blender renderings are still much better than this example by default: Blender uses LUTs named Filmic or Agx which greatly improve the conversion from linear RGB space to sRGB of the final image (disabled for this example), but still remaining less colorful than this result using the ACES configuration of OCIO