Gestion de couleur

Color management is important to create renders and assets that are physically accurate and look great on multiple display devices. It is used both to ensure all parts of the pipeline interpret colors correctly, and to make artistic changes like exposure and color grading.

../_images/render_color-management_different-exposures.jpg

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

Blender’s color management is based on the OpenColorIO library. By using the same OpenColorIO configuration in multiple applications, the same color spaces and transforms will be available for consistent results.

Workflow

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_color-management_linear-workflow.svg

Un exemple de flux de travail linéaire.

Si les couleurs sont linéaires, cela signifie que si en réalité nous doublons la quantité de photons, les valeurs de couleur sont aussi doublées. Autrement dit, si nous avons deux photos/rendus, chacune avec une des deux lumières, et ajoutons ces images ensemble, le résultat serait le même qu’un rendu/photo avec les deux lumières ensemble. Il s’ensuit qu’un tel espace radiométriquement linéaire est meilleur pour le rendu photoréaliste et le 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 scene linear color space.

Display Transforms

Transforming scene linear colors to display involves both technical and artistic choices.

Correct display of renders requires a conversion to the display device color space. A computer monitor works differently from a digital cinema projector or HDTV, and so needs a different conversion.

There is also an artistic choice to be made. 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 camera film. The default Filmic transform does this.

../_images/render_color-management_linear-display-space.svg

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

Image Color Spaces

When loading and saving media formats it is important to have color management in mind. File formats such as PNG or JPEG will typically store colors in a color space ready for display, not in a linear space. When they are used as textures in renders, they need to be converted to linear first, and when saving renders for display on the web, they also need to be converted to a display space.

For intermediate files in production, it is recommended to use OpenEXR files. These are always stored in scene linear color spaces, without any data loss. That makes them suitable to store renders that can later be composited, color graded and converted to different output formats.

Images can also contain data that is not actually a color. For example normal or displacement maps merely contain vectors and offsets. Such images should be marked as Non-Color Data so that no color space conversion happens on them.

Réglages

Référence

Panneau:Properties editor ‣ Render ‣ Color Management
../_images/render_post-process_color-management_panel.png

Render settings for color management.

Display

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 d’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 habituels pour les projecteurs numériques.

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

Render

View

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

Standard
Does no extra conversion besides the conversion for the display device. Often used for non-photorealistic results or video editing where a specific look is already baked into the input video.
Filmic
For photorealistic results and better handling of high dynamic range colors. The contrast can be adjusted by changing the Look option for the Filmic view transform.
Filmic Log
Converts to Filmic log color space. This can be used for export to color grading applications, or to inspect the image by flattening out very dark and light areas.
Raw
Destiné à l’inspection de l’image mais pas à l’exportation finale. Raw rend l’image sans aucune conversion d’espace de couleurs.
False Color
pour visualiser la plage dynamique.
Exposure
Utilisé pour contrôler la luminosité de l’image (dans les arrêts) appliquée avant la conversion de l’espace de couleurs. Il est calculé comme suit : \(output\_value = render\_value × 2^{(exposure)}\)
Gamma
Extra gamma correction applied after color space conversion. Note that the default display transforms already perform the appropriate conversion, so this mainly acts as an additional effect for artistic tweaks.
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
Ajuster 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
L’espace de couleurs dans lequel le Sequencer opère. Par défaut le Sequencer opère dans l’espace RVB, mais il peut aussi être défini pour fonctionner dans l’espace Linear comme les Compositing nodes, ou un autre espace de couleurs. Différents espaces de couleurs vont donner des résultats différents pour la correction de couleur, les cross fades et autres opérations.

Fichiers image

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. Those images should be marked as Non-Color Data.

Les blocs de données d’image enregistreront toujours des tampons de flottants en mémoire dans l’espace de couleurs linéaire de la scène, alors que le tampon d’octets en mémoire et les fichiers sur disque sont enregistrés dans l’espace de couleurs spécifié par ce paramètre.

Color Space
L’espace de couleurs du fichier image sur disque. Cela dépend du format de fichier, par exemple les images PNG ou JPEG sont souvent enregistrées en sRVB, tandis que les images OpenEXR sont enregistrées dans un espace de couleurs linéaire. Certaines images telles que les normal, bump ou stencil maps ne contiennent pas des « couleurs » au sens strict et sur de telles valeurs aucune conversion d’espace de couleurs ne devrait jamais être appliquée. Pour de telles images, l’espace de couleurs devrait être mis à None.

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 trames 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 est fourni avec une configuration OpenColorIO standard qui comprend un grand nombre de dispositifs d’affichage et de transformations de vue utiles

Cependant, OpenColorIO a été aussi conçu pour donner une expérience utilisateur cohérente à travers les applications multiples, et pour cela, un simple fichier de configuration partagé peut être utilisé. Blender utilisera la variable d’environnement OCIO standard pour lire une configuration OpenColorIO autre que celle de Blender par défaut. Plus d’informations sur la manière d’établir un tel flux de travail se trouve sur le site web OpenColorIO.

Blender currently use the following color space rules:

scene_linear
Espace de couleurs utilisé pour le rendu, le compositing, et l’enregistrement de toutes les images en précision float en mémoire.
data
Color space for non-color data.
XYZ
Standard linear XYZ color space. Used for effects such as blackbody emission to convert from physical units to the scene_linear color space.
color_picking
Defines 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 material albedos.
default_sequencer
Espace de couleurs par défaut pour le sequencer, scene_linear si non spécifié.
default_byte
espace de couleurs par défaut pour les images et les fichiers en précision byte, texture_paint si non spécifié.
default_float
Espace de couleurs par défaut pour les images et les fichiers en précision float, scene_linear si non spécifié.

The standard Blender configuration includes support for saving and loading images in ACES (code and documentation) color spaces. 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.