Source/Render/ColorManagement

Color Management

Blender integrates OpenColorIO, but still misses some functionality to make it fully possible to use for example the ACES configuration.

  • Cycles and Eevee shader nodes need to support arbitrary working color space.
    • Blackbody
    • Wavelength
    • Sky Texture
  • Render file output and file saving needs to have a configurable color space to write to.
    • By default it would use the scene display and view transform.
    • This could then be changed to a color space, or a display + view transform + look.
  • OpenEXR reading and writing should use chromaticity metadata to determine the color space of the image, and convert it to and from the working color space.
  • The compositor should get a compositor node to convert between two color spaces defined in the OpenColorIO configuration.
  • The bundled configuration can be improved:
    • Add support for the latest ACES view transform, the current one is outdated.
  • To add support for ACEScg as working space out of the box, a second configuration would need to be added that can be chosen per project.
    • Such a configuration requires materials and lights to be set up with different values, and so is not compatible with most existing .blend files.
    • Projects using such a configuration need to use it from the start so all assets can be created to work with it.
  • To support 10 bit wide gamut monitors, Blender drawing code needs to be improved to output 10 bit instead of 8 bit when displaying the 3D viewport and images/renders.