Bonjour
Je ne suis pas un habitué de ART, ni de ce forum. Mais le sujet est intéressant.
D’abord AgX, c’est un sigle (origine Sobotka…ce monsieur que je ne connais pas), une marque un peu comme Renault, il n’y a que peu de rapport entre un utilitaire Renault et une Alpine Renault… Pour AgX c’est pareil, il y a au moins 3 choses (qu’on aime ou qu’on n’aime pas ne change pas les faits).
- une simulation de films anciens.
- une matrice de conversion de type LMS (certains diront c’est quoi ?)
- un algorithme Tone-Mapping, qui en gros ‘fait rentrer des données hors gamut dans le gamut’. La 2ème question le gamut c’est quoi ? Beaucoup plus difficile à répondre que cela n’y paraît.
Les algorithmes “Tone mapper”, il y en a une ribambelle… au moins 5 ou 10 à ma connaissance.
Ceux (anciens) qui utilisent des fonctions mathématiques internes complexes telles que transformée de Fourier, Laplaciens, etc. Ils sont ‘lents’.
Ceux qui compriment avec une fonction toute simple ‘Logarithmique” qu’on apelle cela Filmic, Log encoding c’est la même chose. On calcule queqlue part dans le processus , le minimum RGB, le maximum RGB. On divise ce mini par un coefficient, on multiplie le maxi par un autre - pour donner du ‘gras’ à la fonction Log. On estime (et c’est là le gros problème de ce type de tone-mapper) le middle-grey des données. A partir de là, du mini, du maxi, du Middle gey estimé en sortie on trouve la base du Logarithme ‘k’ , telle que Log(k) = 1. On applique ce Log aux données, puis on fait l’inverse, pour revenir en linéaire. Cela tient 4 lignes de code. Gros inconvénient, le système est incapable de gérer les asymptotes vers le blanc…il faut lui ajouter un machin (une fonction hyperbolique)… et ce n’est guère mieux vers le noir.
Ceux qui utilisent des fonctions hyperboliques (c’est quoi une fonction hyperbolique ?) ‘simples’ en partant comme précédemment des mini et maxi RGB. Certains comme Sigmoid partent de valeurs a priori (ce qui est faux). On parle de Black-Ev, White-Ev et toujours ce fameux middle-grey (pifomètrique). Il y a la dedans Sigmoid, AgX, etc. En plus on utilise des primaires qui ne permettent aucun contrôle sur les couleurs imaginaires (c’est quoi ?). AgX Blender essaye de tout faire à la fois… y compris la colorimétrie (défi énorme).
Ceux qui utilisent des fonctions hyperboliques complexes, comme GHS (generalized hyperbolic stretch), de loin mathématiquement le plus complexe. Mais probablement le meilleur, à condition de bien l’utiliser. Sans détermination des points blancs et noir… c’est perdu d’avance.
etc.
Un point très important, il est même majeur. C’est où fait-on le calcul des mini RGB et maxi RGB. Pour ma part je le fais en même temps que l’algorithme Tone mapper, et non avant.
Un autre point important et même majeur. Utilise–ton des données (je ne parle pas d’algorithmes) exponentielles ou logarithmiques, ou linéaires - j’utilise les dernières plus lisibles, plus simples. Il est quand même plus parlant de dire le noir est à 0.001 plutôt que -6 Ev, le Blanc est à 4. (4 fois le maxi habituel), et pas à +3Ev. Et ce sont des fonctions internes (hyperboliques ou autres, compression, contraste local, etc.) qui ‘arrangent’ le truc. J’utilise 3 à 4 processus différents pour résoudre l’ensemble, et non un.
J’ai essayé d’être sommaire, mon texte pose plus de questions qu’il ne réponds aux problèmes posés. je peux si vous le souhaitez aller beaucoup plus loin.
Jacques