Gestion de couleur

Color management is one of the most important tools that an artist can use. It allows an artist to make sure that an image stays the same from rendering, to saving, to post processing. Color management also allows an artist to tweak things like exposure, gamma, or the overall color grade.

../../_images/render_post-processing_different-exposures.jpg

Différentes vues et expositions du même rendu.

To achieve color management in Blender, the OpenColorIO (OCIO) library has been integrated into Blender. This library offers fine control over different LUT along with integrating your own set of color profiles to keep your work linearized with other software.

Scene Linear Color Space

For correct results, different color spaces are needed for rendering display and storage of images. Rendering and compositing is best done in scene linear color space, which corresponds more closely to nature, and makes computations more physically accurate.

../../_images/render_post-processing_linear-workflow.png

An example of a linear workflow.

If the colors are linear, it means that if in reality, we double the number of photons, the color values are also doubled. Put another way, if we have two photos/renders each with one of two lights on, and add those images together, the result would be the same as a render/photo with both lights on. It follows that such a radiometrically linear space is best for photo-realistic rendering and compositing.

However, these values do not directly correspond to human perception or the way display devices work and image files are often stored in different color spaces, so we have to take care to do the right conversion into and out of this linear color space.

Réglages

Reference

Panel: Properties editor ‣ Scene ‣ Color Management
../../_images/render_post-processing_color-management-panel.png

Réglages de scène pour la gestion de couleurs.

Display

Correct display of renders requires a conversion to the display device color space, which can be configured here. A computer monitor works differently from a digital cinema projector HDTV. The scene properties have these settings:

Display Device

Le dispositif sur lequel l’image est visionnée.

La plupart des moniteurs d’ordinateur sont configurés pour l’espace de couleurs sRVB, et ainsi pendant le travail sur ordinateur cette option devrait être laissée à sa valeur par défaut. Elle devrait être modifiée typiquement pendant le visionnage de l’image sur un autre dispositif d’affichage connecté à l’ordinateur, ou pendant l’écriture des fichiers image destinés à être visionnés sur un autre dispositif.

Rec709 est couramment utilisé pour les TV HD, tandis que XYZ et DCI-P3 sont communs pour les projecteurs numériques.

La gestion de couleur peut être désactivée en réglant le dispositif à None.

../../_images/render_post-processing_linear-display-space.png

Conversion de l’espace linéaire à l’espace du dispositif d’affichage.

Render

There is also an artistic choice to be made for renders. Partially that is because display devices cannot display the full spectrum of colors and only have limited brightness, so we can squeeze the colors to fit in the gamut of the device. Besides that, it can also be useful to give the renders a particular look, e.g. as if they have been printed on real film.

un autre cas d’utilisation commun concerne l’inspection des rendus, pour voir des détails dans des ombres sombres ou des rehauts lumineux, ou identifier les erreurs de rendu. De tels réglages devraient être utilisés seulement temporairement et ne pas être utilisés pour les rendus finaux.

View

Ce sont différentes manières de visionner l’image sur le même dispositif d’affichage.

Default

Ne fait pas de conversion supplémentaire en plus de la conversion pour le dispositif d’affichage.

RRT

Utilise la Transformation de rendu ACES Reference, pour simuler un look de film.

Film

Cette option est un autre look de film.

Raw
Intended for inspecting the image but not for final export. Raw gives the image without any color space conversion.
Log
Intended for inspecting the image but not for final export. Log works similar to Raw but gives a more “flat” view of the image without very dark or light areas.
Exposure
Used to control the image brightness (in stops) applied before color space conversion. \(2^(stops) × value\)
Gamma

Correction gamma supplémentaire après conversion de l’espace de couleurs. Notez que les conversions d’espaces de couleurs sRGB ou Rec709 comprennent déjà par défaut une correction gamma d’approximativement 2.2 (à l’exception des vues Raw et Log), aussi ceci devrait être appliqué en plus à cela.

Look
Choose an artistic effect from a set of measured film response data which roughly emulates the look of certain film types. Applied before color space conversion.
Use Curves

Ajuste les courbes RVB pour contrôler les couleurs d’image avant la conversion de l’espace de couleurs. Apprendre plus sur l’utilisation de Gestionnaire de courbe (curve widget).

Sequencer

Color Space
The color space that the sequencer operates in. By default, the sequencer operates in sRGB space, but it can also be set to work in Linear space like the Compositing nodes, or another color space. Different color spaces will give different results for color correction, crossfades, and other operations.

Fichiers image

Lors du chargement et de l’enregistrement des formats de media, il est important d’avoir la gestion de couleur à l’esprit. Les formats de fichier tels que PNG ou JPEG vont typiquement enregistrer les couleurs dans un espace de couleurs conçu pour l’affichage, non dans un espace linéaire. Quand ils sont utilisés, par exemple, comme textures dans les rendus, ils doivent d’abord être convertis en linéaire, et lors des enregistrements des rendus pour l’affichage sur le web, ils doivent aussi être convertis dans un espace d’affichage. D’autres formats de fichier comme OpenEXR enregistrent les espaces de couleurs linéaires et en tant que tels sont utiles comme fichiers intermédiaires en production.

When working with image files, the default color space is usually the right one. If this is not the case, the color space of the image file can be configured in the image settings. A common situation where manual changes are needed is when working with or baking normal maps or displacement maps, for example. Such maps do not actually store colors, just data encoded as colors. In such cases, they should be marked as Non-Color Data.

Image data-blocks will always store float buffers in memory in the scene linear color space, while a byte buffer in memory and files in a drive are stored in the color space specified with this setting:

Color Space
The color space of the image file on a drive. This depends on the file format, for example, PNG or JPEG images are often stored in sRGB, while OpenEXR images are stored in a linear color space. Some images such as normal, bump or stencil maps do not strictly contain ‘colors’, and on such values, no color space conversion should ever be applied. For such images, the color space should be set to None.
../../_images/render_post_cm_image_settings.jpg

Réglages d’image pour la gestion de couleurs.

Par défaut, seuls les rendus sont affichés et enregistrés avec les transformations de vue de rendu appliquées. Celles-ci sont les data-blocks Render Result et Viewer image,et les fichiers enregistrés directement sur disque avec l’opérateur Render Animation. Cependant, lors du chargement du rendu enregistré dans un fichier intermédiaire OpenEXR, Blender ne peut pas détecter automatiquement que c’est un rendu (ce pourrait être p. ex. une texture d’image ou un displacement map) . Nous devons spécifier que c’est un rendu et que nous voulons appliquer les transformations, avec ces deux réglages :

View as Render

Affiche le data-block image (pas seulement les rendus) avec view transform, exposure, gamma, RGB curves appliqués. Utile pour visionner les frames rendues dans les fichiers OpenEXR linéaires de la même manière que lors de leur rendu direct.

Save as Render

Option pour appliquer les view transform, exposure, gamma, RGB curves. C’est utile pour enregistrer des fichiers OpenEXR linéaires en p. ex. fichiers PNG or JPEG dans l’espace d’affichage.

Configuration d’OpenColorIO

Blender comes with a standard OpenColorIO configuration that contains a number of useful display devices and view transforms. The reference linear color space used is the linear color space with Rec. 709 chromaticities and D65 white point.

However, OpenColorIO was 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.

We currently use the following color space rules:

scene_linear
Color space used for rendering, compositing, and storing all float precision images in memory.
default_sequencer
Default color space for sequencer, scene_linear if not specified
default_byte
Default color space for byte precision images and files, texture_paint if not specified.
default_float
Default color space for float precision images and files, scene_linear if not specified.

The standard Blender configuration also includes some support for ACES (code and documentation), even though we have a different linear color space. It is possible to load and save EXR files with the Linear ACES color space, and the RRT view transform can be used to view images with their standard display transform. However, the ACES gamut is larger than the Rec. 709 gamut, so for best results, an ACES specific configuration file should be used. OpenColorIO provides an ACES configuration file, though it may need a few more tweaks to be usable in production.