Je tiens tout d’abord à vous informer que ce billet est une traduction de l’article original rédigé par Mike Pan sur son blog : http://blog.thepixelary.com/post/160247878572/filmic-colors-in-blender-and-light-linearity.
N’hésitez pas à me suggérer des modifications ou reporter une erreur !
Du point de vue de la physique, la lumière et la couleur sont inséparables, elles sont une. Vous ne pouvez pas avoir l’un sans l’autre. Dans pathtracer (moteur de rendu à lancer de rayon) tel que Blender Cycles, il y a essentiellement la même chose. Je vais donc utiliser ces 2 termes de façon interchangeable à partir de maintenant.
Cela va être long, alors restez avec moi. Commençons par regarder un rendu classique à partir d’une boite de Cornell avec une seule source de lumière:
Vous remarquerez que j’ai choisi quelques échantillons sur l’image et j’ai inclus leur valeur RVB à côté de celle-ci. Nous avons un rouge, un gris et un blanc pur. Jusqu’ici tout va bien. Rappelez-vous, cette scène est éclairée avec une seule source lumineuse depuis le panneau de lumière du haut. Voyons ce qui se passe lorsque nous doublons l’énergie de la lumière de 10 à 20.
D’accord, l’image globale s’est améliorée comme prévu. Mais si nous échantillonnons les 2 autres endroits, nous remarquons quelque chose d’étrange. Même si nous avons doublé l’intensité de la lumière, les valeurs des pixels n’ont pas doublé. Huh.
Scene-reffered Data peut se traduire par les données de la scène, c’est à dire les données colorimétriques de la scène. Display-reffered Data veut qu’en à lui parler des données colorimétriques de sortie matériel, celles qui seront affichés pour vous (par exemple, votre écrans).
Ici j’ai ajouté une autre ligne en dessous de la première. La ligne commençant par display sont les valeurs colorimétriques que nous avons dans les précédentes images : celles échantillonnées à partir de l’image JPEG. La ligne scene représente les valeurs de la scène, celles avec qui le moteur de rendu était en train de travailler. Il représente le niveau de l’énergie lumineuse à chaque pixel. Comme nous pouvons le voir, même si les valeurs de la ligne display ne doublent pas quand nous doublons l’énergie de la lumière, les valeurs de la ligne "scene" doublent comme attendu (elles ne sont également pas fixés à 1 sur l’échantillon du panneau de lumière).
Donc si les valeurs de la scène représentent les vraies valeurs du monde 3D, pourquoi l’image final n’affiche pas les valeurs avec les valeurs de départ ? Et comment l’ordinateur transforme les valeurs de la scène jusqu’à l’image (De scene value à display value).
Voilà comment le gamma fonctionne. L’histoire du gamma n’est pas vraiment importante pour le moment. Tout ce que vous devriez savoir c’est que c’est la valeur magique de 2,2. Cette valeur est utilisée pour transformer les valeurs de la scène à notre couleur à l’affichage, c’est ce que nous avions remarqué juste avant.
Vous ne me croyez pas ? Multipliez la valeur de la scène par ½.2 et vous obtiendrez un résultat correspondant aux valeurs de l’image JPEG.
Mais pourquoi avons-nous besoin de cette transformation ? Que serait cette scène si nous utilisons ses valeurs comme tel ? Dans un autre monde sans aucune transformation ?
Maintenant, non seulement l’image est trop sombre, elle est tout simplement irréaliste à regarder à cause de son contraste trop élevé.
C’est le premier concept que nous avons appris : les valeurs de notre scène et celles de l’image sont deux choses différentes. Le plus simple est d’appliquer une transformation gamma à l’espace à notre scène pour avoir une image agréable.
Donc maintenant nous savons comment la transformation gamma est utilisé pour changer nos données du rendu en une image correct, voyons ce que nous pouvons faire pour que notre image soit encore plus agréable. Au lieu d’une simple transformation gamma, essayons d’utiliser une table de correspondance qui est conçu pour donner un look semblable au film, spécialement grâce à filmic-blender
La différence entre l’image originale (à gauche) et la version filmique de blender (à droite) est subtile. Notez que le point chaud sur le mur rouge a disparu, remplacé par une lueur beaucoup plus naturelle. La bande trop saturée sur le dôme orange s’est atténué et sa réflexion est bien moins surexposée. Pour moi, c’est le principal avantage du mélangeur filmique, il est capable de montrer une gamme dynamique beaucoup plus large et donne à l’image un aspect beaucoup plus raffiné au niveau des valeurs sur-exposées, en particulier sur les couleurs saturées.
En résumé : La version filmique de Blender (ou Filmic Blender) est un puissant outil qui transforme les valeurs colorimétriques linéaires de la scène en valeurs d’affichage non linéaire.
Mais Filmic-Blender ne peut pas fonctionner seul. Pour vraiment tirer le meilleur de cet outil, il faut une scène éclairée d’une façon physiquement précise. Cycles est un moteur de rendu à lancer de rayon (pathtracing), ce qui veut dire pour que sa magie opère, les lumières doivent être définies à des valeurs réalistes pour obtenir un résultat réaliste. Le monde dans lequel on vit à une très large gamme de couleurs, quelque chose en quoi nous ne sommes pas habitués dans le monde virtuel.
Chaque fois que vous vous allumez en Cycles, gardez à l’esprit que le niveau d’énergie du soleil est mesuré en Watts / m². Toutes les autres lampes utilisent les Watts [source]. Cela signifie pour un transport de lumière plus précis, une seule ampoule domestique devrait être dans la gamme de 60-80, tandis que le soleil devrait être réglé à 200-800 pour la lumière du jour, selon l’heure du jour, la latitude et la couverture nuageuse.
Sans un ratio d’éclairage approprié, votre scène semblera plate même avec filmic-blender. La lumière ne rebondira pas suffisamment, et elle semblera tout simplement artificielle.
Dans l’image ci-dessus à gauche, le soleil est réglé à une valeur faible de 50 parce que les artistes ont peur de brûler les surfaces à haute densité de lumière, mais quand nous mettons le soleil à une valeur plus réaliste de 500, comme nous l’avons fait à l’image de droite, la distribution de lumière devient beaucoup plus réaliste.
N’ayez pas peur de laisser tomber l’image. Le monde réel ne correspond rarement à la gamme dynamique d’une caméra. Filmic-Blender est particulièrement utile dans les cas avec des lumières à haute énergie, car il est capable de contenir ces zones surexposées dans quelque chose qui semble plus agréable. Il suffit de comparer la pièce rendue avec et sans filmic-blender, en utilisant un ratio de lumière correct :
Voyez-vous toutes ces zones de points chauds et super saturés sur l’image de gauche ? Ils sont partis dans la droite. Filmic vous permet de pousser votre éclairage plus fort sans se soucier des artefacts issus de la surexposition.
Nous avons donc appris ce qu’est Filmic, il transforme vos données de scène linéaire en une belle image non-linéaire. Mais cela ne signifie pas que vous devriez l’utiliser sur chaque image. Parfois, vous avez besoin d’une image linéaire sur laquelle travailler.
Parlons un peu plus de la linéarité de la lumière.
La lumière est additive. Cela signifie que je devrais pouvoir séparer la contribution de chaque source lumineuse individuelle et puis aussi les ajouter, pour obtenir exactement la même image que si toutes les sources lumineuses sont rendues ensemble. La capacité de le faire, et de le faire correctement, est cruciale pour la composition et les effets visuels où la lumière et la couleur sont souvent réglées de manière drastique.
Alors, essayons cela avec notre scène de chambre. Nous avons rendu chaque lumière dans une couche distincte et les avons sauvegardés sous forme d’images TIFF 32 bits :
Huh, c’est pas vraiment ça. L’image combinée est désordonnée.
Même si nous avons sauvegardé les images individuelles en tant que TIFF 32 bits, les valeurs de couleur ne sont pas rattachés, les fichiers TIFF n’enregistrent pas les valeurs de la scène. Lorsque l’image est enregistrée, elle subit les transformations de la scène à l’image que nous avons vu précédemment, de sorte que les valeurs que nous voyons ne sont pas les valeurs de scène linéaires, mais les valeurs d’affichage non-linéaires. Cela se produit même si nous utilisons le sRGB EOFT lut par défaut ou Filmic-Blender.
C’est un problème énorme, car toutes manipulations lumière ou de couleur que nous faisons est maintenant sur un ensemble de données non linéaire qui n’est pas conçu pour être manipulé de cette façon. La manière correcte consiste à sauvegarder et à utiliser uniquement des données dans un format linéaire tel que l’EXR.
Essayons le même processus avec les fichiers EXR. (parce que les EXR sont linéaires, ils sont associés à Filmic à l’affichage sur votre écran)
Maintenant tout fonctionne comme ça l’est supposé. Utiliser les données linéaires pour le compositing est vraiment la seule façon d’assurer que votre scène reste physiquement correct.
Dans Blender, tous les fichiers images respectent les paramètres du color management (e.g. sRGB ou Filmic-Blender). À l’exception du format EXR qui est toujours sauvegardé dans un format linéaire sans transformations.
Parce que les lumière sont additive, et que nous rendons chaque lumière de la scène en couches EXR distinctes, nous pouvons jouer autour des couleur et de la contribution de chaque lumière et avoir des images très différentes sans relancer le renderer.
C’est la flexibilité qu’on gagne en travaillant directement avec les données de la scène.
Donc nous sommes finalement arrivé à la fin de ce billet. Il y a plusieurs simplifications que j’ai faites pour rendre ce billet plus compréhensible, et il y a beaucoup de problèmes que je n’ai pas mentionnés. Du côté des couleurs, nous n’avons pas exploré la gamme de couleurs et les différents profils de couleurs (profil ICC). Il y a aussi quelque chose à dire sur l’occlusion ambiante et le clamping et les différents nœuds de composition qui ne fonctionnent que sur les données clamped display-referred (la version courte est de ne pas les utiliser).
Mot de fin
Si vous voulez savoir comment baker un éclairage pour une utilisation particulière, par exemple les jeux-vidéos, je vous conseille de suivre ce billet rédigé par @Linko : https://zestedesavoir.com/billets/1871/baker-une-lightmap-avec-blender-cycles-et-lutiliser-dans-le-bge/
- En résumé, choisir Filmic Blender c’est proposer a votre image une gamme de couleur plus large présente dans votre scène,
- Vous avez un plus large choix de couleurs entre vos fortes et basses lumières,
- Un effet de lumière dé-saturé qui donne un côté "filmique" à votre rendu.
J’espère que ça a était clair pour vous ! Et n’hésitez pas à suggérer quelques ajouts ou modifications.
L’icône du billet est tiré du court-métrage Agent 327.