Un bon metal, c'est d'abord une bonne map HDR

Avant de commencer, aller récupérer une des magnifiques image HDR de sIBL Archive.

sibl_archive_icon_light.png

Elles sont toutes sous licence Creative Commons Attribution-Noncommercial-Share Alike 3.0, ce qui veut dire que vous ne pouvez pas gagner d'argent avec et que si vous les utilisez (comme ça va être le cas ici) il faut citer l'auteur et partager votre travail à l'identique.

Pour le choix de l'image. J'ai toujours eu une préférence pour Factory Catwalk:

Factory_Catwalk.png

Et go Maya!

Comme d'hab', ouvrez Maya, mental ray, preset Production:

maya_preset_production.png

Filter en Triangle:

maya_filter_triangle.png

Puis on créé une IBL:

maya_create_ibl.png

Et on y met notre hdr:

maya_ibl_hdr.png

Créez une sphère et appliquez lui un mia_material_x:

metal_plus_metalique_001.png

Virez le highlight (je le fait car je ne peux pas plus le supporter personnellement):

metal_plus_metalique_002.png

Mettez la Specular Balance a 0.0

metal_plus_metalique_003.png

Pour avoir une colorimétrie correct, on applique une correction gamma:

createNode mip_gamma_gain;
setAttr "mip_gamma_gain1.gamma" 2.2;
connectAttr -f mip_gamma_gain1.message perspShape.miLensShader;

Et voila:

metal_plus_metalique_004.png

Bon, pour faire du métal, a priori, on met la color en blanc et le weight a zéro, la reflectivity a 1.0 et on coche la case Metal Material:

metal_plus_metalique_005.png

Comme on est des graphistes :smileFou: on met aussi de la couleur:

metal_plus_metalique_006.png

Le centre de la sphère semble sombre ça ne ressemble pas vraiment à du métal. :reflechi:

Si vous connaissez un peu le mia_material, vous savez qu'il existe un paramètre dans l'onglet BRDF pour donner les deux valeurs extrêmes de reflection quand la surface est face à la camera et quand celle ci est complètement perpendiculaire (0/90 Degree Reflection). Avec un autre paramètre qui définit la courbe pour passer d'une valeur à l'autre.

Pour faire du metal à priori, il suffit de monter la première valeur (0 Degree Reflection) à une valeur proche de 1.0:

metal_plus_metalique_007.png

metal_plus_metalique_008.png

Oaaah De l'or qui briiiiille! :bete:

Bon, et bien en fait, vous n'y êtes pas complètement. :sourit:

Là vous avez fait un bête miroir jaune... Dans le fond c'est assez proche du résultat final. Mais un des grand challenge du "Physical Based" c'est bien que ce n'est plus simplement une question d'oeil. :redface:

Et pour avoir un comportement de métal plus réaliste, il va falloir regarder du coté de Fresnel (si si).

Donc vous cochez la case:

metal_plus_metalique_009.png

metal_plus_metalique_010.png

Ne vous inquiétez pas, ce n'est pas le résultat final! :seSentCon:

Maintenant, ce que vous allez faire, c'est mettre l'index de refraction (oui oui, reFRACtion) a 25:

metal_plus_metalique_011.png

La différence est assez subtile (comparez avec le Keep image de Maya) mais le second se rapprochera beaucoup plus d'un métal physiquement correct, notamment sur les bords.

En fait, pour le métal, la courbe qui définit la valeur de reflection en fonction de l'angle de la surface par rapport à la camera est très particulière (voir sur le billet de Zap). Quand elle se rapproche de 90 dégrées, elle descend pour remonter en flèche.

Quand à la théorie. Je doit avouez ne pas maitriser la chose (Master Zap non plus d’ailleurs):

Metals are indeed not refractive, and are indeed not dielectrics (meaning, electrical insulators). They are Conductors, and for some baroque reason these are also considered to have an "Index of Refraction".

Comme je suis du genre curieux, j'ai fait un peu de recherche (d'un niveau bien trop élevé pour moi) et j'en ai conclu que (Attention, grand moment de mathématique a trois francs six sous :dentcasse: ):

  • L'index de réfraction est le "ralentissement" de la lumière quand il entre dans un "milieu" (un material).
  • Cet index dépend de plusieurs paramètres dont la perméabilité diélectrique (material conducteur, ou pas). En effet, la lumière est une onde électromagnétique (Maxwell is watching you) donc (et c'est ça qui est fou!) la conduction d'un material joue un rôle dans la "déformation" de la lumière qui le traverse.
  • Les coefficients de Fresnel intervenant à l'intersection de deux milieux ayant des indices de réfraction différent (toi tu rentre déformé comme ci, toi tu rebondie déformé comme ça) explique la relation qu'il y a entre l'index de réfraction et la reflection d'un material. En gros, lors d'une "transition" entre deux milieux ayant des index de réfraction différent, il y a une reflection qui se forme.

Perso, ça donne envie d’être physicien. J'imagine la révolution que ça a dut être dans la physique optique ça. D’ailleurs, si un physicien passe dans le coin et que je me suis complètement planté, qu'il se fasse un plaisir de m'insulter violemment dans les commentaires, je suis tout ouïe à une explication clair du phénomène. :seSentCon:

Bref:

Fresnel + index de refraction sur un material 100% opaque = variation de la reflection.

Liens

Parce que je serai ravis de savoir si vous avez mieux compris que moi. :baffed:

Je vous invite aussi a regarder ce PDF pour Maxwell Render (auteur: Roch).

Sur ce pdf, on voit que la reflection varie en fonction d'un curieux paramètre nomme Nd (Quand il passe a 10, on voit très clairement une reflection). Et d’après Wikipedia, Nd correspond a l'index de réfraction d'un medium dont la longueur d'onde est de 589.592 nanomètre (La raie de Fraunhofer D du spectre solaire. Le sodium... Et oui, ça renvoi loin et je vois pas pourquoi cette valeur la en particulier...).

En espérant vous avoir apporté quelque chose...

A bientôt!

:marioCours:

MAJ 20 Mars 2012

Suite au commentaire de Tristan, j'ai demandé sur le forum de mental image d’où sortait ces index de refraction bizarre (25, 40, 50 etc...). rlevenne explique clairement qu'il s'agit d'un hack pour imiter la courbe de reflection du métal mais que les valeurs ne représentait rien mathématiquement parlant. Apparemment, le mia_material utilise l'approximation de Schlick pour calculer la BRDF. Cette approximation est rapide mais ne gère pas les index de réfraction complexes. Pour faire un métal physiquement correct, il faut une autre information: L’Extinction (la valeur k sur cette page). C'est un paramètre que Maxwell expose. Bref, si vous êtes intéressé, lisez le post. :sourit: