OpenColorIO¶
Blender comes with a standard OpenColorIO configuration that contains a number of useful display devices and view transforms.
However, OpenColorIO is also designed to give a consistent user experience across
multiple applications,
and for this, a single shared configuration file can be used.
Blender will use the standard OCIO environment variable to read an OpenColorIO configuration
other than the default Blender one. More information about how to set up such a workflow
can be found on the OpenColorIO website.
There is also a BLENDER_OCIO environment variable to change the configuration
for Blender only. It is recommended to use OCIO when possible for compatibility
with other software and pipelines that may not be aware of BLENDER_OCIO. However
sometimes there are incompatibilities in configuration files that make it difficult
to share them across applications.
ACES¶
The standard Blender configuration includes essential support for ACES workflows with the ACEScg working space, ACES 2.0 view transform and OpenEXR images saved in the ACES2065-1 and ACEScg color spaces.
This covers most needs for working in an ACES pipeline. However for more complete
support, the
official ACES configurations
can be manually installed and set through the OCIO environment variable.
Roles¶
scene_linearColor space used for rendering, compositing, and storing all float precision images in memory.
dataColor space for non-color data.
aces_interchangeACES2065-1 color space. Used to derive chromaticities of the scene_linear color space, for effects such as blackbody emission.
cie_xyz_d65_interchangeIntermediate display linear color space, to connected view transforms to display color spaces.
color_pickingDefines the distribution of colors in color pickers. It is expected to be approximately perceptually linear, have the same gamut as the scene_linear color space, map 0..1 values to 0..1 values in the scene linear color space for predictable editing of materials’ albedo.
default_sequencerDefault color space for the Sequencer, scene_linear if not specified.
default_byteDefault color space for byte precision images and files, texture_paint if not specified.
default_floatDefault color space for float precision images and files, scene_linear if not specified.
Writing Configurations for Blender¶
OpenColorIO configurations do not strictly specify all information needed for Blender to work optimally. These guidelines help ensure a configuration works well:
Use OpenColorIO v2
display_colorspacesandview_transformswithcie_xyz_d65_interchangeintermediate display linear space. This is used to emulate the chosen display on the actual display. In older configs without this, display emulation will be disabled and wide gamut and HDR display will not work well. Saving colorspace metadata for images and video also depends on this.For every display, include a view transform without tone mapping. Blender will look for a view transform named
StandardorUn-tone-mappedor the config widedefault_view_transform. If not found, the first view transform of the display will be used. This is more important for OpenColorIO v1 configs withoutdisplay_colorspaces, to determine the color space of an image after applying a view transform.Include the interop ID from the Color Interop Forum for every color space and display color space that you can. This helps save image and video with correct colorspace information. Add the interop ID as an alias of the colorspace. For OpenColor 2.5 configs, additionally set the native
interop_idattribute but keep the alias for compatibility with older software.Mark HDR displays by setting
encoding: hdr-videoon the corresponding colorspace.For HDR view transforms, use
HDR 500 nits,HDR 1000 nits,HDR 2000 nitsorHDR 4000 nitsas part of the name to automatically determine maximum luminance for mastering display metadata.