vous voudrez peut-être aller plus loin: rendre une image telle que l'œil humain la capturerait ou même telle que l'être humain la percevrait.
Il y a deux façons d'interpréter cela. Je ferai les deux.
Interprétation 1: restituez une image qui semble perceptuellement réaliste.
À la fin de la journée, votre image doit encore être affichée quelque part. Voici la clé: vous voulez rendre votre image de telle manière que lorsque vous * affichez * cette image sur un dispositif d'affichage particulier, elle produira la même sensation que l'image radiométrique d'origine aurait produite.
Voici comment décompresser cette idée.
Dans le monde réel, les spectres radiométriques (c'est-à-dire les distributions réelles de lumière) pénètrent dans votre œil et stimulent environ 1 quatre récepteurs de lumière. Les stimulations des récepteurs produisent les sensations de couleur que nous associons aux images.
Dans le rendu, nous n'avons pas de contrôle arbitraire sur les spectres que nous produisons. Heureusement, comme nous n'avons (généralement) que trois cônes, chacun ne produisant qu'une valeur scalaire, la vision des couleurs peut être reproduite en utilisant exactement trois primaires. L'essentiel, c'est que vous pouvez produire n'importe quelle sensation de couleur en utilisant une combinaison linéaire de trois longueurs d'onde uniquement (jusqu'à quelques couleurs qui peuvent être négatives, auquel cas, vous utilisez simplement différentes couleurs primaires).
Vous n'avez pas le choix de primaires. Presque tous les périphériques d'affichage couleur utilisent la norme sRGB, qui fournit trois primaires (qui n'ont généralement pas une seule longueur d'onde). C'est bien parce qu'il s'avère que tout est abstrait et que vous n'avez pas à vous en soucier.
Pour clarifier le désordre qui est un rendu perceptuellement précis, voici l'algorithme:
- Rendez votre image en utilisant des calculs radiométriques corrects. Vous tracez des longueurs d'onde individuelles de lumière ou des seaux de longueurs d'onde. Peu importe. En fin de compte, vous avez une image qui a une représentation du spectre reçu en chaque point.
- À chaque pixel, vous prenez le spectre que vous avez rendu et le convertissez en espace colorimétrique CIE XYZ . Cela revient à intégrer le produit du spectre avec les fonctions d'observation standard (voir définition CIE XYZ) .
- Cela produit trois valeurs scalaires, qui sont les couleurs CIE XYZ.
- Utilisez une transformation matricielle pour convertir cela en RVB linéaire, puis utilisez une transformation linéaire / puissance pour convertir RVB linéaire en sRGB .
- Convertissez de virgule flottante en uint8 et enregistrez les valeurs de serrage hors de portée (votre moniteur ne peut pas les représenter).
- Envoyez les uint8 pixels au framebuffer.
- L'écran prend les couleurs sRGB, fait la transformation inverse pour produire trois primaires d'intensités particulières. Chacun met à l'échelle la sortie de tout élément d'image dont il est responsable. Les éléments d'image s'allument, produisant un spectre. Ce spectre sera (espérons-le) un métamère pour le spectre d'origine que vous avez rendu.
- Vous percevez le spectre comme vous auriez perçu le spectre rendu.
Interprétation 2: Essayez de simuler les données finales que l'œil humain pourrait recevoir à des fins de visualisation ou de compensation pour les écrans LDR.
Celui-ci a un sens moins utile, je pense. Essentiellement, vous essayez de produire une image qui modifie la façon dont le cerveau la perçoit pour le plaisir / le profit.
Par exemple, il y avait un article au SIGGRAPH cette année où ils simulaient des images rémanentes et une réduction des couleurs pour donner aux images une apparence perceptuellement différente. Bien sûr, la seule raison pour laquelle ils le font est que les écrans avec lesquels nous travaillons sont tous à faible plage dynamique (LDR). Le but est de simuler les effets que quelqu'un pourrait voir s'il était exposé à un affichage à haute dynamique réelle (HDR) en tant que données d'image réelles.
En pratique, cela ne fonctionne pas très bien. Pour les images rémanentes, par exemple, nous voyons des images rémanentes en raison d'un stimulus très lumineux qui épuise les cellules colorées. Si vous essayez plutôt de stimuler l'effet avec une fausse image rémanente, cela pourrait sembler un peu similaire - mais comme c'est un mécanisme complètement différent, ce n'est pas très convaincant.
Ce genre de graphiques est en fait sous-exploré dans la littérature si vous voulez vous y lancer. Le document mentionné est un exemple des approches plus ou moins les plus avancées que nous avons. Je pense que le consensus actuel, cependant, est que cela ne vaut pas vraiment la peine d'essayer de simuler (au moins pour le moment), car au mieux, vous ne feriez qu'approximer les effets réels de la vision en substituant différents effets, et que cela ne fonctionne pas vraiment travail.
1 canne + 3 * cônes, le cas habituel. Approximative parce que les humains peuvent avoir aussi peu que zéro récepteurs de lumière fonctionnels jusqu'à un maximum conjecturé de sept (le plus élevé jamais observé étant cinq).