Gamma et linéaire

Maintenant, la situation dont nous parlons en parcourant la théorie, est ce que l'on pourrait appeler « linéaire ». Chaque pas de luminosité a la même valeur. Nos yeux n'ont pas une perception linéaire. A la place, il est plus facile pour nous de distinguer les gris les plus sombres que les gris les plus clairs.

Comme les humains sont ceux utilisant des ordinateurs, ceux-ci ont été conçus pour donner plus d'espaces aux valeurs les plus sombres dans le système de coordonnées de l'image. Ceci est appelé « Encodage en gamma », car il applique une fonction de gamma au TRC ou une fonction de transfert d'image. Dans ce cas, le TRC, étant la courbe de réponse des tons ou la courbe de reproduction des tons ou la fonction de transfert (car les spécialistes de la gestion des couleurs se détestent), indique à votre ordinateur ou à votre imprimante, comment faire correspondre une couleur à une certaine valeur.

../../_images/Pepper_tonecurves.png

Un des problèmes les plus courants, auquel vous êtes confronté avec la gestion des couleurs sous Krita est l'association d'un espace colorimétrique correct pour un « TRC » encodé. Ci-dessus, au centre, Pepper est celui qui est correct, où le « TRC » encodé et associé sont les mêmes. Sur la gauche, Pepper est encodé en « sRVB » mais associé à un profil linéaire. Sur la droite, Pepper est encodé avec un « TRC » linéaire mais alloué à un « TRC sRVB ». Image provenant de « Pepper & Carrot <https://www.peppercarrot.com/> »_.

La table suivante affiche combien il y a de nombreux espaces pouvant être utilisés avec des valeurs plus petites dans un espace linéaire, en comparaison des TRC sRGB par défaut de nos ordinateurs modernes et des autres TRC disponibles dans les profils fournis :

../../_images/trc_gray_gradients.svg

Si vous regardez aux TRC linéaires 709, vous pouvez voir qu'il y a un écart significatif entre les nuances de gris les plus sombres et les plus clairs. Alors qu'en regardant les TRC « Lab L* » ou sRGB, elles semblent plus régulièrement espacées. Ceci provient de la sensibilité de nos yeux au valeurs plus sombres. Ceci signifie aussi que si vous n'avez pas une profondeur de bits suffisante, une image dans un espace linéaire apparaîtra avec d'affreuses bandes. Voilà pourquoi, lors de la création d'images pour affichage sur un écran, il vaut mieux toujours utiliser quelque chose comme des TRC « Lab L* » ou sRGB ou Gamma 2.2, avec lesquels encoder l'image.

Cependant, cette modification pour fournir plus d'espace aux valeurs les plus sombres ne conduit qu'à des calculs mathématiques fantaisistes lors du mélange de couleurs.

Ceci peut être observer avec l'expérience suivante :

../../_images/Krita_2_9_colormanagement_blending_1.png

A gauche : des cercles colorés et floutés dans un espace normal sRGB. ** A droite : ** des cercles colorés et floutés dans un espace linéaire.

Les cercles colorés, à demi floutés. Dans un environnement avec un gamma correct, ceci provoque l'apparition d'une bordure noire bizarre. Dans un environnement linéaire, ceci provoque l'apparition d'un joli dégradé.

Ceci compte aussi pour la brosse de tâches de couleurs :

../../_images/Krita_2_9_colormanagement_blending_2.png

C'est vrai. Le « brouillage » de couleurs est une plainte classique des dessinateurs numériques de partout. Il résulte en fait, d'un espace colorimétrique avec correction de gamma, mélangeant vos couleurs. Si vous avez travaillé en labo pour éviter ceci, veuillez vous assurer d'utiliser un espace colorimétrique linéaire RGB.

Ce qui se passe sous le capot ?

Imaginez vouloir mélanger le rouge et le vert.

Tout d'abord, nous devriez avoir besoin des coordonnées de couleurs pour le rouge et le vers, à l'intérieur du modèle de couleurs de notre espace colorimétrique. Ainsi, ceci devrait être...

Couleur

Rouge

Vert

Bleu

Rouge

1.0

0.0

0.0

Vert

0.0

1.0

0.0

Ces coordonnées sont alors une moyenne pour les trois mixages :

Rouge

Mix 1

Mix 2

Mix 3

Vert

Rouge

1.0

0.75

0.5

0.25

0.0

Vert

0.0

0.25

0.5

0.75

1.0

Bleu

0.0

0.0

0.0

0.0

0.0

Mais, pour se donner une idée du rendu de ces couleurs sur l'écran, nous prenons tout d'abord, les valeurs individuelles grâce au TRC de l'espace colorimétrique, actuellement utilisé :

../../_images/Basicreading3trcsv2.svg

Ensuite, les valeurs sont renseignées dans l'emplacement correspondant. Comparez celles-ci aux valeurs de la table de mélange ci-dessus :

../../_images/red_green_mixes_trc.svg

Et ceci explique pourquoi les mélanges de couleurs sont plus clairs et plus doux avec un espace linéaire. L'espace linéaire est physiquement plus correct mais sRGB est plus efficace en terme d'espace. Ainsi, pourquoi de nombreuses images ont elles des TRC sRGB, encodées à leurs intérieurs ? Au cas où, ceci n'a aucun sens : sRGB fournit des *valeurs *grandement * **plus sombres* que dans un espace linéaire avec les mêmes coordonnées*.

Ainsi, les différentes TRC fournissent différents mélanges entre les couleurs. Dans l'exemple suivant, chaque ensemble de dégradés est, dans l'ordre, un mélange utilisant un TRC linéaire, un mélange utilisant un TRC sRGB et un mélange utilisant « Lab L* ».

../../_images/3trcsresult.png

Ainsi, vous pourriez demander comment vous pouvez activer cette option ? Est-elle quelque part dans les paramètres ? La réponse est qu'il y a plusieurs profils « ICC » pouvant être utilisés pour ce type de réalisation :

  • scRGB (linéaire)

  • Tous les « elle »-profils se terminant par « g10 », comme « sRGB-elle-v2-g10.icc ».

En réalité, dans tous les profils « elle », le dernier chiffre indique la valeur du gamma. 1.0 est linéaire, le plus haut est un gamma corrigé et «  » est une correction avec un gamma spécial pour le profil original sRGB.

Si vous avez un navigateur d'espace colorimétrique, vous pouvez demander le TRC à partir d'un « gamma estimé » (Linéaire avec la valeur 1.0) ou à partir du composant graphique de TRC dans Krita 3.0, présentant exactement la même apparence que les graphiques en courbes ci-dessus.

Même si vous ne dessinez pas beaucoup, quelques exemples peuvent être de réaliser des textures pour un jeu vidéo ou pour un rendu. L'utilisation d'un espace linéaire est très bénéfique et donnera plus d'efficacité au moteur de rendu, car il ne devra pas prendre à sa charge, la conversion des images.

L'inconvénient d'un espace linéaire est, bien sûr, que le blanc semble très affaibli lors d'un mélange avec du noir. En fait, dans un espace linéaire, les gris légers prennent plus d'espace. A la fin, bien que l'espace linéaire soit physiquement correct et un avantage pour travailler quand vous avez besoin de rendus physiquement corrects pour les jeux vidéos et pour le lancer de rayons (Ray tracing), Krita est un outil. Personne ne vous en voudra de préférer un mélange sombre avec un TRC.