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:
- 5 color spaces designed for different uses in the production pipeline.
- An OpenColorIO configuration, with the LUTs necessary for its use everywhere.
- A set of recommendations on color calculation and storage.
See chapter Selective list of color spaces for technical details concerning the various color spaces of ACES.
The main recommendations on storage are:
- Use the openEXR file format.
- Save in wide color spaces, encompassing all others. The ideal space encompassing all visible colors is ACES2065-1.
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 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.
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
-
Being free and open source, many studios contribute to the development of OpenColorIO, managed by the ASWF, Academy Software Foundation in the USA. ↩
-
A complete list is available on the OpenColorIO website. ↩
-
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. ↩