Représenter les couleurs sur un écran
Les écrans ne possèdent pas de sources de lumière pour chaque longueur d'onde, et ils doivent donc aussi reconstruire un spectre de couleurs qui fournisse à l'œil une sensation équivalente à la couleur que l'on veut reproduire.
Le standard depuis l'invention de la télévision couleur est d'utiliser trois couleurs : le rouge, le vert et le bleu (RVB, ou RGB en anglais).
Bien que ces trois couleurs soient aussi les noms des trois cônes de l'œil en français, les couleurs primaires choisies pour reconstituer les couleurs à l'écran n'ont rien à voir avec les courbes de sensibilité de l'œil.
Elles ont d'ailleurs évolué, et plusieurs standards existent encore aujourd'hui.
Le plus répandu pour les écrans actuels est le standard sRGB, qui définit la relation entre les trois composantes R, G et B de l'écran, comprises entre 0 et 1, et la norme CIE.
Toutes les couleurs ne peuvent pas être reproduites
Mais ce calcul peut mener à des valeurs négatives ou des valeurs supérieures à 1, c'est à dire des valeurs impossibles à générer dans le cadre du standard. Pour vous en convaincre, utilisez le formulaire ci-dessous pour calculer les coordonnées des couleurs monochromatiques. Attention, la norme CIE 2006 n'est définie qu'entre 390 et 830 nm. Toute valeur en dehors de ce champ génèrera du noir (0 pour chaque composante). Les résultats affichés sont les coordonnées XYZ dans la norme CIE et les valeurs RGB linéaires (voir l'encart ci-contre). Les valeurs RGB devraient toujours être comprises entre 0 et 1.
X = Y = Z = |
RL = GL = BL = |
En essayant, vous constaterez que quelque soit la longueur d'onde, au moins une des valeurs RGB est négative. Comment peut-on trouver des valeurs de couleur négatives ? Tout simplement parce que les écrans ne sont pas de suffisamment bonne qualité pour reproduire toutes les couleurs. Lorsque l'on trouve une composante négative, cela signifie que le système de reproduction des couleurs ne peut pas fournir la couleur demandée par manque de saturation. On ne peut donc pas représenter sur un écran sRGB les couleurs monochromatiques. Un peu frustrant, non ?
Comme on a envie de représenter quand même quelque chose, prenons les valeurs RGB obtenues ci-dessus, et mettons à zéro toutes les valeurs négatives et à 1 toutes les valeurs supérieures à 1. Cette fois, on peut représenter toutes les couleurs obtenues sous forme d'un spectre allant de 390 à 830 nm.
Cliquez ici pour afficher ce spectre.
Le résultat n'est pas très probant, car beaucoup de longueurs d'onde sont représentées par la même couleur, alors qu'en réalité, elles sont toutes différentes. On pouvait s'y attendre, car la méthode choisie pour faire rentrer nos couleurs dans le gamut (la gamme de couleurs disponibles à l'écran) est un peu brutale.
Une solution plus propre consiste à désaturer la couleur, en ajoutant un niveau de gris (c'est à dire la même composante sur R, V et B), et à réduire la luminosité (R+V+B) pour rester dans le gamut. La solution adoptée ici consiste en trois étapes: on diminue d'abord la luminosité par un facteur 2.3 comme proposé ici. Puis, s'il y a une composante négative, on ajoute sa valeur absolue à toutes les composantes, comme proposé ici. Enfin, les valeurs supérieures à 1 sont tronquées à 1.
Cliquez ici pour afficher le nouveau spectre obtenu dans la moitié inférieure du graphique ci-dessous.
Le résultat est plus probant en termes de dégradés des couleurs. Mais il faut être conscient que ce spectre ne représente pas les couleurs monochromatiques, car votre écran ne le permet pas, quel qu'il soit. C'est une approximation, résultat de choix arbitraires, et d'autres choix auraient mené à un autre résultat.
Les couleurs de l'arc-en-ciel ne peuvent pas être reproduites à l'écran !
Si les couleurs de l'arc-en-ciel sont monochromatiques, elles ne peuvent donc pas être reproduites à l'écran, et il faudra se contenter des couleurs approximatives ci-dessus. Il est temps d'examiner quelle est l'origine de l'arc-en-ciel, de façon justement à en savoir plus sur ses couleurs.
Calcul de l'équivalent RGB d'une longueur d'onde