Comment rendre correctement le spectre visible avec une intensité uniforme?

8

J'essaie d'obtenir la représentation correcte du spectre visible à restituer à l'écran. Ma progression actuelle consiste à utiliser les fonctions standard de correspondance des couleurs des observateurs CIE 1931 approximativement analytiquement par les équations données dans cet article . L'image actuelle est comme ceci:

l'image actuelle que je pouvais générer

Ici le fond n'est pas idéalement noir pour permettre d'introduire les contributions négatives des fonctions de correspondance des couleurs:

fonctions de correspondance des couleurs

Mais le problème est que l'image semble avoir une baisse d'intensité quelque part autour de 490 nm. Je suppose que cela est lié à la somme des trois fonctions ayant un minimum là-bas. Voir la somme tracée en fonction de la longueur d'onde:

somme de trois fonctions de correspondance des couleurs

Donc, ma question est maintenant: comment puis-je fixer l'intensité de l'image? Existe-t-il une norme pour la prise en compte de la sensibilité spectrale lors de la conversion de la longueur d'onde en représentation RVB / XYZ?

Ruslan
la source
Ici, j'ai trouvé quelques informations sur cette question
Michael Weizenfeld
Jetez un oeil à ce fil, en particulier Greg Ward répondra plus tard dans les messages. Je pense que cela est lié à votre question. radiance-online.org:447/pipermail/radiance-general/2015-June/…
ali
@ali voulez-vous dire que cela est lié à mon ajout stupide de valeurs RVB non pondérées? J'ai déjà trouvé cette erreur et y ai réfléchi dans ma réponse.
Ruslan

Réponses:

3

Je suppose que cela est lié à la somme des trois fonctions ayant un minimum là-bas. Voir la somme tracée en fonction de la longueur d'onde

C'est en fait une mauvaise façon de résumer ces fonctions: le modèle sRGB spécifie que pour obtenir la luminosité, il faut peser les composants RVB avec des poids appropriés. Sans surprise, la luminosité deviendra alors égale à la composante Y de la représentation XYZ.

le problème est que l'image semble avoir une baisse d'intensité quelque part autour de 490 nm

Je peux en fait voir le creux non seulement près de 490 nm, mais aussi un plus petit près de 570 nm.

Quoi qu'il en soit, je pense que j'ai trouvé la raison de cela. Tout d'abord, traçons les couleurs désaturées utilisées dans le rendu sur le diagramme de chromaticité:

diagramme de chromaticité avec le spectre désaturé à l'intérieur

Le triangle en pointillés est la gamme sRGB, et la cuspide formée par les deux lignes inférieures de la courbe verte correspond au point blanc (gris) D65. Notez qu'il y a trois "bosses" loin du point blanc, correspondant au violet, au vert bleuâtre et au rouge. Ou, qu'il y a un grand creux de saturation dans la direction de 490 nm et une diminution modérée dans la direction d'environ 570 nm. Caractérisons cela graphiquement, en traçant la norme de différence entre les points rendus et le point blanc:

tracé d'une mesure de saturation

C'est exactement ce que je perçois visuellement dans l'image en termes de saturation et donc de mélange avec l'arrière-plan.

D'où vient cette forme étrange, vous vous demandez peut-être. Et la réponse est, à partir du locus spectral dans le plein espace XYZ. Voir la figure suivante: la courbe bleue est le locus spectral et l'orange est sa projection sur un plan normal au vecteur {1,1,1}.

locus spectral dans l'espace XYZ

Ainsi, la forme que nous avons obtenue sur le diagramme de chromaticité est quelque chose comme un dépliement plan du locus spectral.

En ce qui concerne le réalisme de ce rendu, je suis raisonnablement sûr que si nous essayons de projeter du spectre réel sur une surface grise non fluorescente, nous verrons également ces deux creux "étranges". Et ils deviendront moins visibles à mesure que vous augmentez la luminosité du spectre par rapport à la luminosité de la surface.

Ruslan
la source