Gérer correctement l'intensité des photons: mia_photometric_light
Par Narann le lundi, 15 novembre 2010, 21:25 - Infographie 3D - Boulot - Lien permanent
Je ne sais pas si vous avez remarqué mais dans Maya (et dans mental ray de manière général), le paramètre d'intensité des photons est toujours indépendant du paramètre d'intensité de la light...
Lors de l'éclairage d'une scène, le jaugeage se fait donc à la main (et surtout, à l'oeil...). Cette lacune est maintenant comblée par l'apparition, dans Maya 2011 d'un node qui permet, moyennant quelques paramètres, de gérer ces deux paramètres en un seul.
Ce node c'est le mia_photometric_light et je vous propose un petit tuto sur comment s'en servir. :sourit:
Sommaire
- Trouver le node et le connecter
- Explication des paramètres
- Pratique!
- Profils IES
- Note sur les ombres
- Conclusion
Trouver le node et le connecter
Pour aller chercher ce node, allez dans l'Hypershade, et dans la section "MentalRay Lights":
Créez ensuite une petite scène constitué de deux lights différentes (omni et spot):
Elle est volontairement sombre pour l'instant, en effet, nous allons ajouter de l'illumination global, ce qui rehaussera le tout.
Cochez les ombres dans les lights:
Maintenant connectez votre node aux lights (créez en un second):
Pour que l'illumination global fonctionne vous devez l'activer dans les paramètres globaux:
Ainsi que dans chaque light:
Note: Dans la mesure ou c'est le node mia_photometric_light qui va s'occuper des photons, les paramètres Photon Color et Photon Intensity ne servent à rien. Toutefois, aucun ne doit être mis à zéro. En effet, cela désactive les photons pour la light (surement une optimisation). Par contre, exponent est important (c'est le déclin de la l'intensité des photons en fonction de la distance), et doit être setté à 2 ce qui est la valeur physiquement correct.
Si vous rendez maintenant, votre image sera noir. En effet, nous allons devoir nous attaquer aux paramètres de nos nodes!
Explication des paramètres
Tout d'abord, il ressemble à quoi notre node?
Pour savoir ce que veulent dire ces paramètres, pas de secret, la doc est ton ami:
- on : Active ou désactive la light.
- multiplier : Multiplicateur de l'intensité. Garder à 1.0 pour rester physiquement correct.
- color : C'est la couleur de la lumière. Sa valeur doit être "normalisé" (total égal à 1.0) pour rester physiquement correct. Les nodes mib_cie_d et mib_blackbody renvoient des couleurs normalisés. Plus simple à utiliser.
- intensity_mode : Défini l'unité de l'intensité (Candela ou Lumen):
- Quand intensity_mode est égale à 0 : L'intensité maximal de la light est défini en Candela par le paramètre manual_peak_intensity_cd.
- Quand intensity_mode est égale à 1 : La quantité total de lumière est défini en Lumen par le paramètre maual_flux_lm.
- Quand intensity_mode est égale à 2 : C'est l'intensité du profil IES qui est utilisé.
- distribution_mode : Défini comment la lumière "est distribue" dans les différentes directions:
- Quand distribution_mode est égale à 0 : La lumière est isotropic, elle brille de la même façon dans toute les directions (omni).
- Quand distribution_mode est égale à 1 : La lumière est considéré comme un spot. La lumière doit avoir un paramètre de spread qui définit la largeur du faisceau (donc ce mode ne fonctionnera que sur un spot). Maintenant accrochez vous: La distribution de la lumière à travers le cône du spot est définit par une fonction cosinus, élevé à la puissance du paramètre spotlight_cosine_bias. Par conséquent, un bias inférieur à 1.0 "poussera" la lumière vers les bords du cône, et un biais de plus de 1.0 poussera la lumière vers le centre du cône. Je ne vais pas insister la dessus, c'est un peu l'équivalent du dropoff d'une spotLight.
- Quand distribution_mode est égale à 2 : Ce sont les valeurs du profil IES qui sont utilisé.
- units_to_meter_scale : Défini combien d'unités "dans la scène" équivaut à un mètre. Exemple: Si l'unité de la scène est en millimètre, cette valeur devrait être 1000.
- cm2_factor : C'est le facteur de conversion entre les valeurs des pixels et les valeurs de luminance en Candela par mètre carré.
Je sais, ce n'est pas super digeste... :sourit: Ce qu'il faut garder à l'esprit c'est que la notion d'échelle est importante pour pouvoir profité de ce node.
Pratique!
Mettez le distribution_mode de votre spotLight à 1 (pour mettre le mia_photometric_light en mode spotLight) puis mettez 5 Cd au deux lights (On peut considérer qu'un Candela est environ l'intensité lumineuse d'une bougie, Candela venant du mot latin qui signifie Chandelle, merci wikipedia :baffed: ):
Activez le Final Gather pour uniformiser le tout:
A partir de maintenant, il suffit de modifier la valeur de Candela pour que l'intensité direct de la light augmente ainsi que l'intensité des photons qu'elle émet:
La concentration en bas du spot est très clairement visible.
Profils IES
Et maintenant appliquons un profil IES à notre light:
Téléchargez IES Viewer:
Puis allez sur le site de Lithonia et télécharger le pack de fichier IES. Décompressez les dans un dossier et naviguez dedans via IES Viewer:
Trouvez un profil sympa et mettez le dans votre node mia_photometric_light de votre pointLight (masquez le spot):
Settez les paramètres pour ne prendre en compte que le valeurs du profil IES:
Et rendez!
Et oui, il y a de forte chance que votre premier essai soit un échec :seSentCon: . Et ce pour deux raison:
La première et la plus évidente c'est l'échelle. Votre profil IES contient des informations qui ne sont viable que si une cohérence vis à vis de l'échelle de votre scène est respecté.
Ici, je me suis mal démerdé et mon mur fait 20 unités de haut (je suis en cm, échelle par défaut de Maya). Il faut donc que je divise par 10 l'intensité de la lumière pour qu'elle se comporte comme si il faisait 2 mètres de haut :reflechi: .
Je met donc le Units To Meter Scale à 0.1:
C'est mieux. Mais pourquoi ais-je l'impression que ma light éclaire le mur? :sourit:
Et bien tout simplement car par défaut, dans Maya, il faut tourner les lights de -90 degrés en X pour qu'elles pointent vers le sol... :aupoil: . (Bon, en fait c'est plus visible quand vous utilisez un spot ou une areaLight)
Tournez votre pointLight de -90 en X:
Rapprochez la un peu du mur pour que l'effet soit plus visible:
Et voilà! Vous pouvez tester avec différents profils IES, ça donne des résultats très crédibles. :dentcasse:
Note sur les ombres
Je n'ai pas réussi à faire des ombres douces avec une pointLight ou un spotLight combiné au mia_photometric_light. :pasClasse:
La seule solution que j'ai trouvé est d'utiliser une areaLight. Le problème est que du coup l'intensité du profil IES semble être multiplié par le scale de l'areaLight (qu'il est nécéssaire de modifier pour jouer sur les la diffusion des ombres.
Si quelqu'un a une idée la dessus... :)
Conclusion
Vous pouvez maintenant bidouiller les autres paramètres (lumens). L'objectif étant d'être le plus physiquement correct possible. N'hésitez pas à aller chercher des infos sur les spécifications des lumières sur internet. Une fois que vous maitriserez ce node, vous pourrez facilement faires des rigs/presets pour vos futurs scène. :sourit:
Voici la scène: mia_photometric_light.rar
J'espère que ce petit tuto vous aura aidé et/ou fait découvrir le node mia_photometric_light. N'hésitez pas à laisser un commentaire si vous avez des questions ou si je n'ai pas été assez clair sur certains points (aussi si vous avez la solution pour les ombres :hehe: ).
A bientôt!
Commentaires
Perso je l'avais tester et il m'a vite saoulé
et je comprend pourquoi maintenant à cause des problèmes échelles, par contre ne n'est jamais essayer les profilsIE, c'est occasion de m'y mettre . merci pour tes billets toujours très intéressants.
C'est un node assez technique quand même. Même moi je n'ai pas tout compris concernant les ombres. Mais je pense qu'une fois maitrisé on peut faire des choses intéressantes avec...
Merci du compliment! :)
Site super intéressant merci j'y passe régulièrement :)
Pour les lights avec les profils IES et les soft shadow en augmentant le light radius on peut avoir c'est effet si j'me trompe pas :)
Super bien expliqué! c'est très cool de partager ces précieuses infos
merci