Unified color management for film, 3D, VFX, compositing, and animation pipelines. Additional information about implementing OCIO in Cinema 4D can be found here.
When it comes to color management in general and OpenColorIO in particular, some special terms come up again and again, which may still be unfamiliar to you. In the following you will find explanations of the most important terms for color management.
A color space usually describes all the wavelengths of a color model that are visible to the human eye, which we can then perceive as colors, saturation and brightness.
Since all colors visible to us can be defined by additive mixing of red, green and blue, these colors are also called primary colors. If you imagine the primary colors as positions on an axis system and each of these colors with a maximum value of 1.0 on the axis, a triangle in a coordinate system can be drawn between these primary colors. All colors that can be created by mixing these primary colors will lie within this triangle.
There are, however, other color models that are optimized for other purposes and reproduction processes, e.g., the CMYK color model.
This term refers to all colors of a color model that can be represented for a display device. The larger the Gamut the more precisely a color space can be displayed. A small Gamut can result in a curtailing of the color values sent to the respective device, which can be seen on missing details in lights and shadows and or jumps in color gradations.
A color profile is device-specific and provides for the conversion of the digital signals of an image file into colors and brightnesses that can then be displayed.
The gamma value describes the intensity transition between the depths and highlights on a digital display device. As a rule, this will increase the brightness of an image, as our eyes are accustomed to seeing.
A linear color space does not use a gamma function, i.e., no artificial amplification or attenuation of certain brightnesses. Color and brightness values always behave proportionally when values are modified. You might be familiar with this from the Cinema 4D linear Workflow.
In digital image creation and storage, color depth determines the number of available color gradations. The greater the color depth the higher the number of colors that can be managed and the more natural the resulting color mixtures and transitions will be. This can also be used for the management of brightness values, which can then also have an intensity far greater than 1.0 as so HDRIs. A factor for the precision of a color description is if integers or float comma values are used.
In this way of describing color values, the available color depth (s. above) defines the number of possible color steps and therewith also the total number of displayable colors. For an 8-bit Jpeg image, for example, only values between 0 and 255, each for red, green and blue color parts will be available. This results in about 16.7 million colors (256*256*256).
When describing color values with floating point numbers, theoretically an infinite number of gradations between values can be formed (depending on the bit depth) and also the magnitude of the maximum values is not specified.
The displayable color space of different display devices (gamut) may differ. A UHD display can, for example, display many more colors than an old tube TV. The color management is responsible for calculating colors adapted to the gamut of a respective display device using a comprehensive color space (e.g., a 32-bit rendering). Since the gamut of a display device is, as a rule, smaller than the color space supplied, a transformation (conversion) of the color values will take place.
In order for colors to be interpreted properly by the renderer you have to define the color space in which a color should lie. For loaded bitmaps, this is often the 8-bit sRGB color space. HDR images on the other hand often lie in a linear 16-bit or 32-bit color space. There is also a difference in how colors are used. Many images are, for example, designed for coloring a given surface and others are used to control parameters, e.g., the direction of surface Normals. The renderer cannot always recognize the purpose for which an image should be used. However, many images already contain an imbedded color profile that tells the renderer how a bitmap should be interpreted. For other cases such as defining a simple color value via a color picker, you also have to select the purpose for which the color should be used and the color space in which the color values should be interpreted.
This describes the usable color space for the rendering. The larger the color space is, the more loss-free an image can be archived or passed to post-production. The render space itself is, as a rule, much larger than the gamut of your display device and must therefore undergo a display transformation to be displayed on that device.
This describes the gamut of the display device (e.g. sRGB for a monitor).
This performs a tone value adjustment of the color values present in the render space so that all colors can be displayed as similarly as possible on the display device. Color changes can, however, occur since the display space is much smaller than the render space.