About Colour Space Management
About Colour Spaces
Colour spaces are profiles defining the rules used by a display device, such as a monitor or a projector, to convert numerical colour values into colours.
In computing, as a general rule, colours are defined by three numerical values: one for red, one for green and one for blue, which are the primaries used for additive colour mixing. Each of these values vary between 0 and 255. Those primary values result in actual red, green and blue light, at an intensity proportional to said value. By mixing different primary colours, different hues such as cyan, yellow and magenta can be obtained, and mixing all three primaries results in white.
Where colour spaces come into play is how each primary value is used to determine the intensity of their respective colour signal. For example, let’s say you have a blue value of 127, which is halfway between 0 and 255. The resulting blue light will not be exactly halfway between black and the lightest possible blue light the display can generate, because monitors don’t convert colour values to colour signals on a linear scale, but rather, on a curvilinear scale that is a lot like an exponential function. This is because the human eye can perceive differences between lower light intensities better than between higher light intensities. Hence, to get the most nuances out of the 255 possible values of a primary, the differences between lower values must be smaller than the differences between higher values. The point is that, to the human eye, incrementing a colour value by 1 results in the same perceived intensity difference regardless of the colour value.
The curvilinear function used to convert colour values to colour intensities is referred to as the gamma conversion curve, and each colour space has its own gamma conversion curve. The most commonly used colour space in computing, sRGB, has a gamma conversion curve that is designed to reproduce that of CRT displays. However, the most commonly used colour space in HD television, Rec. 709, has a gamma conversion curve that is considered better than that of sRGB.
Another aspect of colour spaces is the range of colours they can display. Commonly used colour spaces such as sRGB, Rec. 709 and Display P3 can display the same limited subset of the colours that can be perceived by the human eye. This subset is especially limited in the range of greens it can display. In contrast, the colour space Rec. 2020 is known for supporting a much wider range of colours, especially in terms of greens, than those colour spaces. Rec. 2020 is hence preferred for high end productions, but displays that support Rec. 2020 are currently very expensive, and hence producing in Rec. 2020 comes at a cost in hardware compatibility.
Because of this, productions typically use a specific colour space that is different than that of the standard sRGB. This also incurs common production problems such as:
- Materials such as character models and backgrounds may have been created in a specific colour space that is different than the one intended for production.
- Project collaborators may be using displays that do not use the colour space intended for the project’s delivery.
- Compositing artists may also prefer using a specific colour space for compositing, as special effects may wield different results with a colour space that uses linear values than with a colour space that uses a curvilinear gamma curve.
Colour Spaces in Harmony
To ensure the integrity of colours across your production, Harmony uses sRGB colour space for Toon Boom drawings—see Setting the Working Colour Space for a Scene. It allows you to specify the colour space of your inputs (bitmap images), of your outputs (rendered frames, movies) as well as the colour space used internally for compositing your scene. More specifically, you can specify different colour spaces for:
-
Each imported bitmap image
- The scene
- The preview image in the Camera view
- The rendered images and movies
The way it works, when rendering a frame in your scene, is as follows:
- Harmony converts the colours of each drawing layer from sRGB colour space to the scene’s working colour space.
- Harmony converts the colours in each bitmap image from their respective colour space to the scene’s working colour space.
- All visual elements and effects in your scene are composited together into a single image, all in your scene’s working colour space.
- The image is converted to the colour space selected for the Camera view or for rendering, depending on whether the frame is a preview image or a final frame.
The following graph illustrates this process:
If “Read Toon Boom Drawings Using sRGB Colour Space” option is disabled—see Setting the Working Colour Space for a Scene, in the Camera view the colour spaces of drawing layers are used in the Render View mode when converting their respective colour space to the scene’s working colour space. In OpenGL View mode, the colour spaces of drawing layers are ignored, and the colours of bitmap images are converted directly from their respective colour space to the preview colour space, skipping the scene’s colour space.
Hence, in order to properly manage the colours in your production, you must make sure that:
- The colour space of each bitmap image layer is set to the colour space, used in the imported images—see Setting the Colour Space of an Element Layer.
- The colour space for your scene is the optimal colour space chosen for composition—see Setting the Working Colour Space for a Scene.
- The colour space for your Camera view is set to the colour space supported by your monitor and, preferably, the one intended for delivery—see Setting the Display Colour Space.
- The colour space used when rendering frames or when exporting a movie is the one intended for delivery or for post-production—see Setting the Colour Space for Rendered Movies and Frames.
By default, Harmony supports the following colour spaces:
- Linear: The same primaries and white point as sRGB and Rec. 709, but with no gamma transfer curve applied to the colour values. This colour space is useful for compositing intermediary images that are meant to be rendered in sRGB or Rec. 709.
- Display P3: A colour space commonly used for digital projection. It has the same primaries as DCI-P3, the same white point as sRGB and the same gamma transfer curve as sRGB.
- Display P3 Linear: The same as Display P3, except with no gamma transfer curve. This colour space is useful for compositing intermediary images that are meant to be rendered in Display P3.
- Rec. 709: The colour space used for HDTV. It has the same primaries and white point as sRGB, but has a different gamma transfer curve.
- Rec. 709 2.4: The same colour space as Rec. 709 or sRGB, except with a gamma transfer curve of 2.4 (per ITU-R BT.1886). This colour space exists because some editing systems use a gamma transfer curve of 2.4 instead of the standard gamma curve for Rec. 709.
- Rec. 2020: A colour space used for Ultra High Definition TV (UHDTV). It has a complex gamma transfer curve and primaries that cover more of the human-perceivable colour space than other colour spaces, especially in the area of human-perceivable greens.
- Rec. 2020 2.4: The same colour space as Rec. 2020, except with a simple gamma transfer curve of 2.4 (per ITU-R BT.1886). This colour space exists because some editing systems use a gamma transfer curve of 2.4 instead of the standard gamma curve for Rec. 2020.
- Rec. 2020 Linear: The same colour space as Rec. 2020, except with no gamma transfer curve. This colour space is useful for compositing intermediary images that are meant to be rendered in Rec. 2020.
- sRGB: A colour space typically used for standard computer monitors. It has the same primaries and white point as Rec. 709, but has a different gamma transfer curve.
Those colour spaces are defined using the OpenColourIO specification, which is a text based-technology for defining colour spaces and how to convert between them. Hence, it is possible to configure Harmony to support different colour spaces as needed. Furthermore, if other software in your pipeline use a specific OpenColourIO configuration file to define its colour spaces, Harmony is able to use that file as well for its colour space definitions. For more information, see Customizing Available Colour Spaces.