bon, autant vous prévenir tout de suite, ça va être long. Cet article est un mix de quelques pages et images, dont je citerai les sources de référence en bas de page, et de commentaires et images personnels.
HDRI & TONE MAPPINGPARTIE 1 : QU'EST-CE QUE LE HDRI ?Cet acronyme signifie "high dynamic range image", ou Image à Grande Plage Dynamique. La dynamique d'une image, c'est le rapport de luminosité entre les parties les plus lumineuses d'une image et les plus sombres.
En gros, une pièce très sombre uniquement éclairée par une fenêtre tournée vers le soleil a une dynamique de l'ordre de 100'000:1, alors que l'oeil humain arrive à discerner tous les détails d'une image d'une dynamique de 10'000:1.
Les appareils photos que nous utilisons reproduisent généralement les images en les codant en JPG, soit en 24 bits par pixel. On a déjà vu qu'une couleur en informatique peut être représentée de différentes façons. La plus répandue est le mode RVB, pour "Rouge Vert Bleu", mais un autre mode très utilisé est le TSL, pour "Teinte Luminosité Saturation", ce mode étant plus facile à comprendre que le RVB quand il s'agit de créer une couleur précise. Un des 3 composants de ce mode est la luminosité
Que l'on soit en RVB ou TSL, chaque composant est codé sur 8 bits, ce qui nous donne 2^8 = 256 valeurs possibles. Soit par exemple pour le TSL : 256 valeurs possibles pour la teinte, 256 pour la saturation et 256 pour la luminosité.
Notre image est en 24 bits puisque chaque pixel est codé sur 8 + 8 + 8 = 24 bits, ce qui donne tout de même 256*256*256 = 16.777.216 couleurs possibles, ce qui est déjà pas mal.
Maintenant, occupons nous uniquement du composant "luminosité".
Nous avons donc 256 valeurs possibles sur nos images JPG d'appareils photos numériques. Ceci revient à dire que chaque pixel peut avoir une intensité lumineuse variant entre 0 et 255, soit une dynamique maximum de 255:1. Quel que soient les variations de luminosité de la scène photographiée, elles ne pourront être reproduites que sur 256 niveaux. Entre le noir et le blanc, il n'y aura que 256 valeurs possibles.
On est donc très loin des 10'000:1 de l'oeil humain, vous en conviendrez ! Les choses sont un peu meilleures avec les senseurs des appareils photos reflex (ou certains bridges) qui, en enregistrant en mode RAW, codent chaque composant en 12 ou 14 bits (pour les très hauts de gamme), le JPG restant quant à lui limité à 8 bits. Le format RAW donne donc la possibilité d'obtenir des images avec des dynamiques de 4'095:1 ou 16'383:1. Du moins théoriquement, car d'autres facteurs viennent diminuer ces valeurs, notamment le bruit.
Les images HDR utilisent plus de bits par pixel que les images classiques et permettent de stocker une dynamique largement supérieure. La technique la plus courante est de stocker les images avec un nombre flottant par couleur (96 bits par pixel) mais il existe aussi des images HDR avec 32 bits par pixel, comme le format RGBE de Radiance ou le format LogLuv de SGI.
Petit calcul : 8 bits = 256, 32 bits = 4.294.967.296 et 96 bits = 79.228.162.514.264.337.593.543.950.336 !!! soit à la louche 80 milliards de milliards de milliards de valeurs possibles ! de quoi coder, en théorie, les dynamiques les plus extrêmes, comme la variation de luminosité entre le noir complet et une supernova.
PARTIE 2 : EN PRATIQUE, C'EST QUOI UNE HDRI ?Bon, soyons clair tout de suite : aucun capteur n'est capable d'enregistrer de telles amplitudes. Mais je vais vous donner une piste.
Admettons que vous vouliez photographier un vitrail à l'intérieur d'une église (je prend cet exemple parce que j'ai des images toutes faites sur Wikipedia ^^ ). Selon l'endroit où vous ferez la mesure de la lumière sur le vitrail (directement dessus, un peu à côté, sur un mur, et selon le mode de mesure de votre appareil) ça va vous donner ça :

Vous obtiendrez soit :
- un vitrail bien exposé mais les murs tout sombres (3ème image)
- des murs bien exposés mais un vitrail complètement sur-exposé (ou "cramé") (6ème image)
- ou un mix des 2 (entre la 4ème et 5ème photo) mais bon, c'est moyen partout.
Si on prend ces 6 clichés un par un, ils ont chacun une plage de luminosité différente, et chacune a été codée sur 8 bits. Sur l'image la plus sombre, c'est trop sombre certes, mais les nuances de tons clairs occupent peut-être 80% de 256 valeurs possibles : on a du détail des tons clairs.
en revanche, sur l'image la plus claire, 80% des 256 niveaux possibles sont des luminosités faibles ou moyennes (par rapport à la dynamique totale de l'image), avec des nuances assez fines.
Si on résume, on a tous les détails des zones claires sur une image, ceux des zones sombres sur une autre, et tout autant de finesses de nuances sur chacun des clichés intermédiaires.
Ça serait pratique de garder toutes ces plages bien nuancées, hein ? Hé bien, c'est une HDRI qu'il vous faut !
En effet, une HDRI est un empilage virtuel de plusieurs photos d'exposition différentes, ou disons que c'est un peu une image qui contient plusieurs images. Et c'est ce cumul de luminosité de chaque pixel qui va nous donner nos dynamiques de 5'000, 10'000, 100'000:1. Entre le blanc et le noir, nous n'aurons plus 256 mais des millions de nuances de luminosité différentes.
Voilà le principe de base : on prend plusieurs clichés d'une même scène, à expositions différentes, afin de couvrir une amplitude lumineuse maximale, et on les "mélange / mixe / fusionne" en une seule et même image virtuelle.
Pourquoi virtuelle ? Parce qu'elle est impossible à afficher sur nos écrans ! Ils sont matériellement incapables d'afficher de telles dynamiques ! Un écran qui affiche du blanc, c'est blanc et c'est tout. Si vous affichez une photo de soleil, ça sera blanc, mais pas aveuglant.
C'est pourquoi il va falloir user de subterfuges pour en afficher les données, selon ce que l'on veut faire.
lire la suite...- - - - -
sources :
http://fr.wikipedia.org/wiki/Imagerie_% ... _dynamique
http://www.cuk.ch/articles/2764