| Contrôle de l'exposition : mia_exposure_simple |
|
| Écrit par Shimrod | ||||||||||||||||||
| 29-11-2007 | ||||||||||||||||||
|
Hey homies, ce sujet sera consacré au contrôle de l'exposition d'une scène via le shader mia_exposure_simple. Il fait suite au sujet Linear Workflow avec 3dsmax , qui vous suggérait humblement comment améliorer la qualité des couleurs d'un rendu en travaillant en linéaire. Cette fois, c'est l'exposition de la scène que nous allons travailler. Dans la 1ère partie, j'essaierai d'expliquer quelques concepts qui risquent de vous être utiles par la suite, histoire de savoir ce que vous modifiez en réglant le shader mia_exposure_simple. Je précise que ce tuto est plus spécialement orienté pour max9, la version 2008 apportant un nouveau mode de controle d'expo, et n'étant pas certain que le mia_exposure_simple était présent dans max8.
Partie 1 : l'exposition ?
Ouep, l'exposition. Pas celle que Lemog reconstitue de façon magistrale, mais l'exposition au sens photographique. Je vais résumer pour les non-photographes comme moi qui n'y connaissent pas grand-chose : l'exposition d'une photo dépend de la quantité de lumière (luminance) que va recevoir le capteur (ère du numérique, whouhouu !). Les photographes peuvent jouer avec l'ouverture du diaphragme et le temps de pose pour modifier l'exposition du capteur. En effet, la quantité de lumière reçue augmentera si l'ouverture est grande, ou si le temps de pose est long, et vice-versa. L'oeil humain fonctionne à peu près pareil. Sauf le temps de pose, ca n'existe pas à moins d'être un mec assez bizarre. On remarque en effet que si on allume une lumière après avoir séjourné dans le noir, les pupilles de nos yeux se rétrécissent afin de réduire la luminance reçue, et ne pas tout cramer derrière. L'inverse est vrai en éteignant la lumière. Ce surplus de lumière entraine ce qu'on appelle une surexposition (qui résulte en photo sur des blancs cramés et des couleurs très claires), inversement une sous-exposition (en photo, on aurait des noirs complètement bouchés et un ensemble sombre et grisonnant). Au cas où je n'aurais pas été clair, j'ai essayé de représenter ca sous forme de schéma :
Le dégradé central (entouré de jaune) représente le range lumineux de la lumière du jour. Il va du très sombre (les zones d'ombres par exemple) au très lumineux (les zones les plus éclairées). Le 1er dégradé ("Nuit") nous place dans la situation suivante. L'oeil s'est adapté à la faible luminosité (en élargissant la pupille). Ce qu'il percoit de plus sombre (triangle rouge de gauche) est très noir, ce qu'il percoit de plus clair (triangle rouge de droite) est un gris moyen. Si on allume la lumière, la luminosité la plus forte que percevra l'oeil ne sera plus ce gris moyen, mais une valeur bien plus blanche. L'oeil n'étant pas "adapté" à cette luminosité (puisque la valeur la plus claire qu'il percevait était ce gris moyen), il sera ébloui (ou en surexposition !).
Maintenant qu'on sait ce qu'est l'exposition, on se demande en quoi ca nous concerne. Premièrement, si vous voulez créer un éclairage relativement réaliste, vous savez maintenant qu'il va falloir juger votre image en fonction de ce nouveau critère, et ajuster vos réglages de façon à rester crédible. En tout cas, d'un point de vue artistique, c'est très intéressant d'en avoir conscience. Je reviens rapidos sur le 1er point, pour signaler qu'il s'agit d'une technique de plus en plus répandue chez les photographes que de prendre la même photo plusieurs fois, avec une exposition différente pour chaque cliché. Le photographe va ensuite compositer les différentes photos (avec un soft de retouche style Photoshop), avec l'objectif suivant : sur les photos les moins exposées (donc les plus sombres), il va récupérer les zones les plus lumineuses (ex : lampes allumées, fenêtre avec lumière extérieure pour une photo d'intérieur, etc.). Ces zones étant moins "cramées" avec la sous-exposition, elles vont receler beaucoup plus de détails, tandis que les zones sombres seront assez unies. De même, sur les photos les plus exposées, les zones sombres seront plus claires et donc plus détaillées, le photographe les récupère également. Le tout sera de mixer ces zones récupérées avec un cliché à expo normale, dans le but de récupérer un maximum de détails.
Crédit : Alexandre Buisse (Commons Creative), Wikipedia
Cette technique de compositer plusieurs expositions pour travailler sur un range lumineux plus grand a un nom bien connu : l'HDRI ou High Dynamic Range Imaging. Le principe est de stocker plusieurs valeurs de luminance pour chaque pixels, ce qui permet de varier l'exposition sur une même image. J'évoque l'HDRI car on retrouvera le concept un peu plus tard. Pour faire un parallèle entre l'HDRI et l'exemple du début, avec les ranges lumineux, quand vous utilisez une image hdr dans max pour par exemple un environnement ou des réflections, vous réglez le point blanc. Sur la preview, les zones les plus claires (en général le ciel à proximité du soleil pour un extérieur, les ouvertures style fenêtres pour un intérieur) sont affichées en violet. Toute cette zone violette sera considérée comme au-delà du range perceptible (donc à droite du triangle rouge de droite) et sera surexposée, à savoir toute blanche. Voilà comment simuler une zone "éblouissante".
Ok, maintenant qu'on a survolé l'essentiel, let's launch Max !!
Partie 2 : mia_exposure_simple with cheese...
Alors, la 1ère question qui se pose c'est : peut-on contrôler l'exposition dans 3dsmax ? La réponse est : oui. Mais comme Xenobus vous l'a déjà montré au cours de 1ers tests, le mia_exposure_simple fourni avec mental ray (et donc certainement plus optimisé que le Logarithmic fourni par 3dsmax) permet un meilleur résultat final.
Dans l'exemple que je vous propose, la scène sera extérieure et éclairée par un Daylight. Il est bien sûr possible de contrôler l'exposition de tout type de scène, mais les réglages différeront sûrement donc ne soyez pas étonnés. A partir d'une scène vierge (File > Reset... pour les distraits), j'importe ce magnifique AT-ST proposé en Free Model sur www.3dscool.com, la Scool de 3dsmax où qu'on fait de la bonne 3d en rigolant. Merci à Dragoniste pour ce modèle tout riggé en plus, c'est vraiment très class.
Donc j'ouvre la scène, je crée un plan que j'extrude rapidement de manière à créer un semblant de décor (et qui surtout projette des ombres, pour avoir quelque chose d'intéressant), et je place une caméra.
Ca c'est fait. :D
Voilà ce que ca donne, sans lumière pour l'instant. A présent, j'ajoute un Daylight à la scène, avec les shaders mrSun et mrSky (accepter de mettre le Physical Sky en map d'Environment), je le règle à 14h30 pour une lumière forte mais pas trop agressive et j'oriente le Nord de façon à avoir la lumière en provenance de la gauche. J'active également le Final Gather, pour ajouter une illumination indirecte. Je me prends pas la tête, le preset Draft sera suffisant pour ce tuto. Je fais un rendu et j'obtiens ca :
Lol ! Je pense que nous somme très clairement en face d'une surexposition... ^^ Il va donc s'agir à présent de mettre en place un controleur d'exposition. Avant d'aller chercher le mia_exposure_simple, nous allons malgré tout faire un petit tour chez le Logarithmic Exposure Control pour utiliser une astuce donnée par Master Zap sur quelques forums : 1) Ouvrir le panneau Environment (touche 8) 2) Dans la partie Exposure Controls, sélectionner Logarithmic Exposure Control dans le menu déroulant. "Active" est coché par défaut. 3) Désactiver le Logarithmic en décochant "Active", puis donner à Physical Scale la valeur 80 000. 4) Fermer la fenêtre en prenant soin de garder le Logarithmic Exposure Control sélectionné mais désactivé.
Alors, l'explication de cette manip, je ne l'ai pas vraiment. D'après Master Zap, ce tweak permet de rééquilibrer la luminance du Daylight, une sorte de tip secret en fait. Comme il est difficile de tester avec et sans (puisque les valeurs d'expo seront du coup différentes), il est pas évident de dire que ca améliore. Mais je suis prêt à faire confiance à un mec qui en sait pas mal sur le sujet. On retape un rendu pour voir : ![]()
Aaah c'est tout de suite mieux. On se rend compte que rien qu'en changeant le Physical Scale (rapport entre la luminance réelle et la valeur affichée par le pixel), on a déjà quelque chose de cohérent. A présent, nous allons tenter d'améliorer ce rendu (qui restera la référence) en contrôlant l'exposition de l'image. 1) Ouvrez le menu Render (touche F10), onglet Renderer 2) Descendez jusqu'au panneau Camera Effects, sous-ensemble Camera Shaders. Il y a 3 slots, dont le slot Lens qui va recevoir le shader. Cliquez sur le slot et choisissez "mia_exposure_simple".
Petite précision pour ceux qui habituellement n'utilisent pas de controle d'expo : l'expo, c'est comme les shaders et l'éclairage, on ne la règle pas une fois pour l'oublier ensuite. Tout au long de la construction et du setting de la scène, vous serez sûrement amenés à modifier et ajuster les valeurs. (Par exemple, là, je vais baisser un peu le specular du sable. ^^) A présent, ouvrez votre Material Editor (touche M), puis faites glisser le mia_expo_simple depuis le slot Lens vers un emplacement libre. Choisissez "Instance" comme mode de copie (pour que les changements effectués sur l'un le soient sur l'autre). Vous avez à présent accès aux paramètres du mia_exposure_simple.
Explication des paramètres : Lors de son exécution, le shader va utiliser dans l'ordre et à la suite les 5 paramètres pedestal, gain, knee, compression et gamma. 1) Pedestal Le pedestal agit sur le "noir" de l'image. Une valeur positive et les noirs tendront vers un gris, tandis qu'une valeur négative renforcera le noir, et parallèlement le contraste de l'image. Je pense que c'est (en très gros, car la saturation des couleurs augmente également quand on baisse la valeur) que c'est l'équivalent de l'outil Niveaux de Photoshop, quand on déplace le curseur noir.
Le valeur du gain va déterminer le point autour duquel l'HDR est converti en LDR (Low Dynamic Range). Yé m'explique : dans la scène, on considère que le Daylight est une vraie lumière, le soleil, et donc sa luminosité est considérée comme HDR (comme le soleil, toujours, range trop grand pour tout capter avec l'oeil). Pour en faire une image finale, le range est compressé pour obtenir quelque chose d'acceptable. La compression enlève tous ce que l'oeil ne captera pas. On est en Low-DR. Avec ces 2 réglages que sont le pedestal et le gain, vous devriez déjà pouvoir ajuster votre exposition. Mais il y a de fortes chances qu'une fois le noir et la luminosité générale ajustés, les zones les plus exposées soient cramées. C'est là qu'intervient le knee.
Comme dit au-dessus, la valeur du knee sera une valeur "plafond" au-delà de laquelle l'exposition va être compressée. Cette valeur est généralement relative au gain, en étant inférieure. Au début, c'est vraiment chaud à régler puisque les calculs derrière sont assez compliqués (donc durs à prévoir). Il faut tester un peu pour choper un feeling des valeurs.
pour finir, la correction gamma. Si vous travaillez en linear workflow, votre gamma est déjà réglé et donc ce paramètre est inutile. Laissez sur 0 (pas de correction) ou 1 (correction sans conséquence, c'est comme multiplier par 1).
Pour des infos complémentaires, vous pouvez vous référer au manuel de la bibliothèque mia : Architectural Library - pdf à télécharger (clic droit, Enregistrer sous...)
Ok, ceci étant dit, reprenons ! ^^
Pour démarrer, je mets comme valeurs de base : pedestal : 0
Si on compare, on voit bien que le noir a été assombri, ce qui au passage augmente un peu le contraste de l'image. :D
Avant d'aller plus loin, faisons-nous la réflexion suivante : "c'est quand même relou de devoir faire 50 000 rendus pour régler l'exposition." Certes. ^^ Heureusement, il existe un mode de preview fort pratique, dont vous avez peut-être remarqué le slot dans les paramètres du mia_exposure_simple. Les formats d'images HDR permettant de stocker toute la luminance de la scène, il est possible de s'en servir pour régler l'exposition. Voici la méthode à suivre : 1) tout d'abord, il faut changer le format de l'image finale. Les formats HDR ont besoin de stocker plus d'informations que les LDR, puisque chaque pixel peut avoir plusieurs valeurs de luminance. Ces images sont encodées sur 32 bits. Ouvrez le menu Render, onglet Renderer et changez le type du Frame Buffer pour 32 bits.
2) Désactivez le shader mia_exposure_simple en décochant Lens, dans les Cameras Shaders. 3) Dans le panneau Common, spécifiez un emplacmeent pour sauvegarder le rendu. Comme format, vous devez choisir un format HDR, comme le .hdr, .pic ou .exr . 4) Lancez le rendu.
A présent, nous allons spécifier au shader de controler l'exposition de cette image HDR.
1) Dans les paramètres du shader dans le Material Editor, cliquez sur "Browse..." dans le slot vide "Preview". Sélectionnez le rendu HDR que vous venez de calculer. 2) A présent, désactivez tous les calculs d'illumination globale de votre scène : Final Gather, Global Illumination, Caustics, etc. 3) Réactivez le shader mia_exposure_simple en recochant le Lens shader de la caméra (menu Render)
A présent, je peux reprendre mes réglages de l'exposition. J'avais donc baissé le pedestal pour renforcer les noirs. J'augmente à présent le gain pour éclaircir l'image. Le résultat est satisfaisant, bien que les noirs soient quand même trop sombres, et les parties claires trop surexposées (manque de détails). ![]()
Une fois que j'arrive à un résultat satisfaisant, je décoche le "Use preview" dans le shader et je réactive FG, GI, etc. Les paramètres sont conservés, l'image sera recalculée à chaque fois et je peux continuer ma modélisation, mes shaders, etc.
Les limites du mia_exposure_simple : Une des principales difficultés de la 3d est d'éviter de perdre trop de temps à tout faire avec le même outil, et c'est valable pour le contrôle de l'exposition. Pour modifier la zone d'ombre de gauche, je ne vais pas modifier le pedestal mais tout simplement les paramèrtes d'ombre du Daylight. J'augmente le softness et le sampling (ainsi que le temps de rendu, lol !) pour les adoucir. Pour les surexpos sur le métal, je vais tout simplement importer mon rendu dans Photoshop, détourer les parties correspondant aux zones de reflets speculaires et les éclaircir et leur ajouter une lueur externe légère. Une tite passe d'ambiant occlusion par-dessus pour améliorer le rendu ne fera pas de mal non plus. Ce qui nous donne :
![]()
Image finale - Exposition contrôlée dans max et en postprod + passe d'AO
![]()
Partie 3 : Bière promise, bière due !
Pschiiiit ! ^^
Voilà, je pense qu'on a fait le tour de ce shader de contrôle de l'exposition. Comme vous pouvez le voir malgré la qualité pas très poussée de mes images, il y a moyen d'améliorer de façon assez propre la qualité de la lumière et les contrastes des couleurs.
Si vous avez des questions, des remarques, des suggestions ou des commentaires à poster, ne vous gênez pas pour le faire à la suite. En cas de gros problèmes qui demanderaient plus d'explication, n'hésitez pas à venir les poster sur le forum 3dscool, où nous pourrons vous répondre ! :D
Shimrod
Powered by AkoComment 2.0! |
||||||||||||||||||
| Dernière mise à jour : ( 30-11-2007 ) | ||||||||||||||||||
| Suivant > |
|---|







