Flux de travail linéaires et gestion des couleurs

Les flux de travail linéaires sont une approche de l’ombrage, de l’éclairage et du rendu qui offre de nombreux avantages par rapport à l’utilisation directe de valeurs vidéo non linéaires telles que sRVB. La gestion des couleurs permet un flux de travail linéaire en convertissant correctement les couleurs entre les différents espaces colorimétriques utilisés pour l’entrée, le rendu, l’affichage et la sortie.

Les espaces colorimétriques définissent une couleur de manière non ambiguë en incluant les composants principaux, ainsi que les points blancs, le codage et d’autres attributs. Par exemple, les valeurs principales rouge, vert et bleu utilisées pour une image sRVB sur une page Web sont différentes de celles utilisées par un projecteur de cinéma numérique P3, et les conditions d’éclairage environnantes pour l’affichage Web et le cinéma sont également différentes. Néanmoins, il est possible de convertir avec précision les couleurs à afficher sur un moniteur standard ou un projecteur, car les espaces colorimétriques sRVB et DCI-P3 sont bien caractérisés. Toutefois, pour interpréter correctement un triplet RVB (0,5, 0,25, 0,25), vous devez connaître l’espace colorimétrique prévu.

Les rendus modernes imitent le fonctionnement de la transmission, de l’absorption, de la réflexion et de la réfraction de la lumière dans le monde réel. Les lumières d’une scène 3D doivent donc correspondre avec précision à l’éclairage réel, que ce soit en extérieur ou en studio : les valeurs de couleur sont directement proportionnelles à la quantité d’énergie lumineuse (on utilise le terme « espace de travail linéaire référencé par la scène » ou « linéaire de scène » dans sa forme abrégée). Dans un tel espace colorimétrique, il n’y a pas de luminosité maximale : (1, 1, 1) est la couleur considérée comme « blanche » par un observateur type qui s’est entièrement habitué à l’éclairage, mais les sources lumineuses et les réflexions spéculaires peuvent être beaucoup plus lumineuses.

Toutefois, les appareils d’affichage ont une luminosité maximale qui est également indiquée par (1, 1, 1) ou (255, 255, 255) lorsqu’elle est exprimée sous la forme d’un entier 8 bits. Même sur un appareil à plage dynamique élevée, la valeur la plus élevée n’est pas aussi brillante que dans le monde réel. Il est donc nécessaire de mapper les valeurs à plage dynamique élevée de la scène sur un intervalle plus limité pour l’affichage. Il suffit de réduire les valeurs de couleur pour les adapter à la plage d’affichage afin d’obtenir une mauvaise image d’aspect peu net. Une texture de teintes avec une réponse photographique doit être utilisée.

Outre une plage dynamique élevée, il est souvent préférable d’utiliser un espace colorimétrique avec une large gamme pour le rendu. Cela permet de représenter plus de couleurs, ce qui est particulièrement important lors de la création de contenu pour le cinéma numérique et les formats HDR TV, qui ont des gammes plus larges que sRVB et HDTV (Rec. 709).

La gestion des couleurs implique l’application des transformations appropriées pour effectuer la conversion entre les espaces colorimétriques en fonction des besoins. Ces transformations sont appliquées à des points spécifiques tout au long du processus de création :

Entrées d’image

La méthode de traitement appropriée d’une image d’entrée telle qu’une texture dépend de la façon dont l’image est utilisée dans la scène. Elle dépend également de l’image elle-même, notamment de son espace colorimétrique actuel, de son codage et de son état (si ses valeurs de couleur sont proportionnelles aux valeurs de luminance référencées par la scène ou aux valeurs de luminance référencées par l’affichage).

Aucune transformation ne doit être appliquée aux images utilisées pour des données non liées aux couleurs. Cela inclut les textures en relief, normales et de déplacement, ainsi que les textures utilisées pour d’autres attributs tels que la translucidité, la spécularité, la réflectivité, etc.

Pour les images qui représentent des valeurs de couleur, il existe plusieurs possibilités :
  • La plupart des images à plage dynamique élevée sont déjà linéaires de scène, notamment les fichiers OpenEXR, HDR et certains fichiers TIFF. Elles peuvent ne pas nécessiter de linéarisation d’échelle de tons, mais elles peuvent nécessiter une transformation pour convertir les couleurs primaires et le point blanc de l’espace d’entrée en éléments de l’espace de rendu s’ils sont différents.
  • Les images capturées avec un appareil spécifique doivent être associées à une transformation d’entrée propre à cet appareil. Cela inclut les séquences des caméras de cinéma numérique et les bandes de film provenant de scanners étalonnés ADX. D’autres types de bandes de film numérisées nécessitent généralement une certaine forme de transformation logarithmique-linéaire.
  • Le gamma doit être supprimé pour les images préparées pour l’affichage. Cela inclut de nombreux formats graphiques courants, notamment les formats JPEG, PNG, BMP, Targa et certains fichiers TIFF. Toutefois, il est très important de noter qu’une fois le gamma supprimé, les valeurs de couleur sont linéairement proportionnelles à la luminance de l’affichage, et non à la luminance de la scène. Cette méthode convient aux textures, car il n’existe aucune valeur supérieure à 1, ce qui convient pour les images utilisées pour la couleur de base, la transparence et d’autres textures de couleurs.

Aperçu

Pour afficher une image linéaire de scène, vous devez la convertir. Cette transformation se déroule généralement en deux étapes :
  • La première étape consiste à convertir les valeurs référencées par la scène en espace référencé par l’affichage. Par exemple, pour convertir les couleurs d’une plage dynamique élevée en plage [0, 0], une texture de teintes peut être nécessaire, ainsi qu’un changement de primaires.

  • La seconde étape consiste à convertir les valeurs d’un affichage spécifique. Cela peut impliquer un autre changement de primaires, le gamma approprié et le codage comme valeurs entières appropriées.

Les images sont généralement visualisées dans des conditions d’éclairage plus sombres qu’une scène en extérieur ou qu’un décor de film très éclairé. Les textures de teintes sont donc utilisées pour compresser des valeurs à plage dynamique élevée dans la plage d’affichage avec une réponse photographique qui produit une image satisfaisante. Les textures de teintes appliquent généralement une courbe en S qui augmente le contraste et la saturation pour compenser la plage dynamique plus faibles et les conditions d’affichage plus sombres. Cette courbe associe également une valeur de 1 dans l’espace de rendu à une valeur inférieure afin de laisser de la place dans l’espace d’affichage pour des reflets plus lumineux.

L’application d’un gamma ne suffit pas à préparer entièrement une image linéaire de scène pour l’affichage. Sans texture de teintes, les valeurs de couleur supérieures à 1 restent supérieures à 1 et sont délimitées par le moniteur.

Sorties de rendu

L’application d’une transformation à la sortie rendue dépend de l’utilisation de ces fichiers.
  • Si les fichiers doivent être traités, vous devez les conserver dans l’espace de rendu linéaire de scène. La plage dynamique complète devient alors disponible pour des opérations comme le compositing et l’étalonnage. Toutefois, la texture de teintes et la transformation de l’affichage sont toujours nécessaires pour afficher ces fichiers sur un moniteur afin d’éviter qu’ils ne soient trop sombres.
  • Si les fichiers sont affichés directement (sur une page Web, par exemple), la texture de teintes et le codage d’affichage doivent être ancrés.
  • Dans certains cas, vous devrez peut-être appliquer une autre transformation pour convertir les fichiers dans un espace spécifique.