Licence CC BY-NC-SA

Gérer les shaders et paramétrer le shader Blinn

Publié :

Nous allons nous intéresser ici à la gestion des différents shaders créés à partir de l'hypershade. Cela vous permettra d'assigner aux polygones des shaders que vous avez déjà créés, vous n'aurez pas besoin d'en recréer de nouveaux.

Ce chapitre est le dernier sur les shaders, il n'y a pas énormément à dire dessus, il faut juste jouer avec les paramètres pour faire varier l'aspect du shader. C'est d'ailleurs pour ça que je vous ferai découvrir les paramètres principaux du shader le plus souvent utilisé : le Blinn. Nous enchainerons ensuite directement sur la projection des textures sur les polygones dans le chapitre suivant. ;)

Banque de shaders et presets

Pour que vous aussi vous puissiez tester les différents shaders de Maya, je vais d'abord commencer par vous expliquer comment appliquer un shader à un polygone. Pour certains ce sera un rappel si vous avez lu le TP de l'échiquier dans la partie sur le rendu. ;)

Tout d'abord, j'utilise toujours une sphère pour tester les shaders, car grâce à ses multiples faces omnidirectionnelles, on peut voir comment le polygone capte la lumière venant de toutes les directions. Pour ma sphère, je mets 12 en subdivision et j'applique un Smooth Preview avec une itération de 4 (appuyez sur la touche Page Up pour monter l'itération, 4 est le maximum).

Les principaux shaders (ceux qui fonctionnent avec tous les moteurs de rendu) sont accessibles dans le shelf "Rendering" :

Comme vous pouvez le voir il n'y en a que 5 (c'est peu, si l'on compare aux shaders de Mental Ray ;) ). Pour assigner un shader, sélectionnez un ou plusieurs polygones/surfaces NURBS/Subdiv et cliquez sur le shader à leur assigner. Vous pouvez aussi le faire à partir du Marking Menu (méthode que je préfère :) ) :

Appliquer un shader de Mental Ray

Les shaders de Mental Ray sont nombreux, puisqu'il y en a 31 ! Beaucoup se ressemblent, d'autres ne représentent pas grand-chose, :p j'ai donc seulement effectué le rendu des principaux. Pour appliquer un shader de Mental Ray cliquez sur « Materials » dans la fenêtre pour assigner un shader. Celà filtrera les shaders pour n'afficher que ceux de mental ray :

Il faut que vous sélectionniez Mental Ray dans les paramètres du moteur de rendu.

Appliquer un preset

Comme je vous l'avais dit dans le tableau ci-dessus pour le "Mia_material", il s'agit d'un shader qui regroupe plusieurs presets. Pour les utiliser, appliquez le shader à un polygone, allez dans l'onglet mia_material# (# correspond au numéro du shader) et cliquez sur Presets* (quand un astérisque apparait près du mot preset, cela veut dire que des presets sont disponibles).

Shader Toon

Les shaders toon sont des matériaux à l'aspect dessin. Il y a souvent très peu de nuances de couleur (que 2 ou 3).

Principaux shaders

Shader

Spécificités

Rendu

Anisotropic

La réflexion de la lumière du shader Anisoropic est comparable à la réflexion au dos d'un CD-Rom ou au satin (un tissu). L'éclairage ne forme pas des points, mais des lignes. Ce shader est donc à utiliser dans certains cas particuliers.

Blinn

Le shader Blinn (développé par James Blinn) est le plus souvent employé, car la gestion de sa brillance est facilement paramétrable. Il gère une multitude d'options comme la réflexion, la transparence ou encore l'émission de lumière. Il peut être utilisé pour du métal, du verre ou peut utiliser un polygone comme source lumineuse.

Lambert

Le Lambert est le shader appliqué par défaut à tous les polygones dès qu'ils sont créés. Il a un aspect mat (il ne brille pas) et ne gère pas la réflexion.

Phong

Le shader Phong (développé par Phong Bui-Tuong) ressemble beaucoup au shader Blinn, les paramètres sont les mêmes. Son absorption de la lumière n'est pas vraiment la même, la lumière n'est pas reflétée de la même façon sur le polygone. Sur le Blinn, les points lumineux forment des cercles, avec le Phong ils sont ovales.

Phong E

Le Phong E (E pour External) répartit la lumière sur la surface du polygone pour qu'il soit un peu plus illuminé qu'avec le Phong.

Shaders de Mental Ray

Shader

Spécificités

Rendu

Dgs_material

Le Dgs_material est un matériau très brillant. Il peut être utilisé pour du métal assez spécial.

Dieletric_material

Le dieletric material peut convenir à certains objets solides comme le verre, la porcelaine et différents métaux.

Mi_car_paint_phen

Comme son nom l'indique, ce matériau simule le métal de la carrosserie de voiture. Vous pouvez combiner ce matériau à une map HDRI et au FG pour un meilleur éclairage.

Mi_metallic_paint

De la peinture métallique. Peut aussi convenir à simuler la carrosserie de voiture ou tout autre métal peint.

Mia_material

Mia material est en quelques sortes un super shader qui regroupe plusieurs presets (des shaders précréés − voir plus bas). Vous pouvez utiliser le Mia material comme chrome, plastique, eau, etc.

Mib_illum_ward

Ce shader transformera votre polygone en source lumineuse. La lumière sera bruitée, car chaque rayon qui rebondit sur une face de la sphère arrive sur le plan en formant un point blanc.

Misss_fast_shader

Si vous modélisez un personnage le Misss_fast_shader permettra de simuler la peau. Les trois "s" signifient "Sub Surface Scattering", on dit souvent "j'utilise un shader SSS pour la peau". | Ce shader a la particularité de laisser passer la lumière qui est à l'arrière du polygone (back scatter).

Misss_fast_lmap_maya

Ce shader est identique au précédent, mais il affiche en plus l'éclairage sur la peau. Utilisez-le pour de la peau humide et pour les zones plus brillantes comme le nez et le front.

Misss_fast_skin_maya

Identique au précédent, mais éclaire d'avantage la peau.

misss_physical

Le misss physical reçoit la lumière de la même façon que le "Misss_fast_shader" mais n'a pas de couleur.

misss_skin_specular

Ce shader ne garde que la lumière reçue sur la peau, mais pas la couleur et la luminosité.

path_material

Shader d'apparence très similaire au "Dgs_material".

Presets du "Mia_material"

Preset

Spécificités

Rendu

Chrome

Le chrome est un métal très réfléchissant. Utilisez ce matériau pour les jantes d'une voiture.

Copper

Copper se traduit en français par "cuivre". Vous pouvez représenter avec certains instruments de musique.

FrostedGlass

Ce matériau est un verre (glass) opaque (contraire de transparent).

GlassPhysical

Verre très opaque.

GlassSolid

Verre très opaque avec une ombre peu contrastée.

GlassThick

Vitre très opaque sans ombre.

GlassThin

Vitre très opaque, mais qui laisse traverser le rayon lumineux, ce qui permet de voir les points lumineux à l'arrière.

GlazedCeramic

De la céramique, un métal très brillant. Peut être utilisé pour les vases, parquets, assiettes, baignoires, lavabos, etc.

GlossyFinish

Ressemble beaucoup au "GlazedCeramic", mais avec un éclairage plus propre.

GlossyPlastic

Du plastique très réfléchissant.

MatteFinish

Un matériau mat très semblable au Lambert.

MattePlastic

Un plastique mat.

PearlFinish

Matériau à utiliser sur des perles et autres bijoux.

Rubber

Rubber veut dire caoutchouc en français. À utiliser pour les pneus d'une voiture ou la semelle d'une chaussure.

SatinedMetal

Metal très réfléchissant comme le chrome, mais qui capte la lumière d'une façon très différente.

TranslucentPlasticFilmLightBlur

Ce shader est sombre, mais laisse facilement les rayons le traverser, donc il y a très peu d'ombre. On peut voir les points lumineux à l'arrière du polygone, qui sont les rayons lumineux qui ressortent de l'autre côté du polygone.

TranslucentPlasticFilmOpalecent

Pas beaucoup de différence avec le shader précédent à part que la couleur est plus claire.

Water

Ce shader est de l'eau. Pour que la lumière le traverse plus facilement, réglez le paramètre Weight (épaisseur).

Shaders toon

Shader

Spécificités

Rendu

Solid Color

Le Solid Color est un shader qui ne comporte qu'une seule couleur.

Light Angle Two Tone

Ce shader comprend deux couleurs, un pour la zone éclairée et l'autre pour celle ombrée.

Shaded Brightness Two Tone

Ce shader a deux couleurs, mais son ombre forme un angle et est courbé donc l'éclairage est plus réaliste.

Shaded Brightness Three Tone

Exactement comme le shader précédent, mais avec trois couleurs.

Dark Profile

Ce shader a son contour tracé par une ligne et a deux couleurs comme le "Shaded Brightness Two Tone".

Rim Light

Le Rim Light ressemble au Dark Profile, mais ses couleurs sont inversées.

Circle Highlight

Ce shader peut être utilisé pour un métal ou un autre matériau dur qui doivent être représentés en toon.

Gérer et affecter les shaders avec l'Hypershade

Aperçu de l'hypershade

Nous allons commencer par voir comment gérer les shaders pour voir ceux déjà créés et ainsi pouvoir les réassigner aux polygones. La gestion des shaders se fait dans la fenêtre appelée Hypershade que vous trouverez dans le menu de gauche ou en faisant Window -> Rendering Editors -> Hypershade.

Alors, voyons voir rapidement de quoi est composé l'hypershade. Vous avez à droite des rectangles noirs. Le premier au-dessus regroupe tous les shaders que vous avez créés. Les trois que vous voyez sont ceux créés automatiquement au lancement de Maya. Le shader "lambert1" est appliqué à tous les nouveaux polygones créés. Si, par exemple, vous modifiez sa couleur en rouge, tous les polygones créés deviendront rouges (je vous montrerai ça un peu plus bas ;) ). Le rectangle en dessous est le Work Area (espace de travail), c'est ici qu'on gèrera les connexions, les textures chargées pour le shader, par exemple. À gauche il est écrit "Create Maya Nodes" (encadré en orange), qui fait apparaitre tous les nodes (les nœuds de connexions) de Maya. On retrouve donc tous les shaders de base comme le Lambert et le Blinn ainsi que, plus bas, des nodes pour charger une image, utiliser l'image pour simuler des reliefs, etc.

Dans les anciennes versions de Maya (2009 ou inférieur), pour afficher les shaders de Mental Ray, il vous faut cliquer sur « Create Maya Node » . Cela fera apparaitre un petit menu. Glissez la souris sur « Create mental ray Nodes ».

Gérer les shaders

Paramétrer un shader

Pour paramétrer un shader, double-cliquez simplement dessus dans l'hypershade. Vous verrez ses paramètres apparaitre dans l'Attribute Editor :

Le shader "lambert1" est celui assigné par défaut à tous les polygones créés. Et donc, si vous changez sa couleur vous changerez l'apparence de tous les polygones créée.

Assigner un shader

Maintenant, compliquons un peu la chose en ajoutant un nouveau shader dans l'hypershade. Passez en "Create Maya Nodes" et cliquez sur le shader Blinn. Celui-ci apparaitra dans le cadre à droite :

Pour assigner ce nouveau shader, placez le curseur de la souris au-dessus du node Blinn, faites un clic du milieu et gardez le bouton enfoncé. Glissez la souris jusqu'au polygone auquel vous voulez affecter le shader et relâchez le bouton :

La deuxième méthode pour assigner un shader est de sélectionner d'abord le ou les polygones qui doivent être assignés du shader et de faire un clic droit sur le node du shader désiré et de glisser la souris sur "Assign initialShadingGroup To Selection". Je vous l'accorde, le nom est tordu, mais c'est parce qu'il s'agit du shader "Lambert1", donc le shader par défaut. Si vous faites un clic droit sur le node du shader Blinn ou de tous les autres shaders vous verrez écrit "Assign Material to Selection", qui fait la même chose.

Enfin, la technique que je préfère, c'est encore une fois de créer un nouveau shader et d'en assigner à partir du Marking Menu. Vous pouvez assigner des shaders directement sur le(s) face(s) sélectionnée(s) :

Sélectionnez un shader dans l'hypershade et pressez la "touche Suppr". Si celui-ci était appliqué à un polygone, il apparaitra en vert dans la scène pour indiquer qu'aucun shader ne lui est assigné.

Paramétrer le shader Blinn

_Y en a des curseurs et des noms bizarres ! :D_Voyons maintenant les paramètres basiques du shader Blinn. :)

Color

Le premier paramètre, Color, que vous connaissez maintenant, permet de régler la couleur des polygones :

Vous pouvez charger directement des textures avec Color, je vous montrerai plus bas comment charger une texture pour simuler le relief. ^^

Transparent

Bon, vous l'avez deviné, transparent gère la transparence… Plus vous déplacez le curseur vers la droite, plus la valeur sera importante donc plus le polygone sera transparent :

Ambiant Color

Ambiant Color permet d'émettre de la lumière à partir du polygone. Vous l'aviez utilisé dans le chapitre sur l'éclairage indirect, sur le Final Gathering.

Rappel :

Incandescence

L'incandescence fait la même chose. On voit que la brillance du polygone change davantage, puisque cette lumière est générée par la chaleur d'un objet.

Bump mapping

Ah, le plus intéressant (en tout cas mon préféré ^^ ) ! Le « bump map » ou « normal map » est une texture qui va simuler de petits reliefs en redirigeant la lumière. J'ai fait un schéma montrant un plan sur lequel j'ai appliqué une texture de brique et sa normale map. Quand texture et/ou normal map est écrit en vert c'est que celui-ci est activé au rendu :

Cliquez sur le motif à damier à droite de Bump Mapping pour charger une texture :

Cliquez sur File si vous voulez charger une texture sauvegardée dans votre ordinateur. Je vais utiliser une texture procédurale (une texture générée automatiquement), le Noise (bruit) :

Voici ce que donne le rendu :

Rappelez-vous que ce relief est simulé, le maillage de la sphère reste le même. Il vous faut donc utiliser une bump map pour les petits détails.

Comme la texture est trop grosse, la simulation du relief n'est pas très réaliste à certains endroits. Pour éditer la texture, cliquez sur le petit symbole représentant une flèche pointant vers un rectangle à droite du paramètre Bump Mapping :

Vous pouvez aussi accéder aux paramètres de la texture dans le Work Area de l'hypershade, qui permet d'afficher toutes les connexions d'un shader et donc les textures qui ont été chargées. Pour faire apparaitre les connexions d'un shader, faites un clic droit dessus (dans l'hypershade) et glissez la souris sur Graph Network.

Quatre nodes apparaitront dans le Work Area. Le premier tout à gauche permet de gérer la position et la taille de la texture. Pour accéder aux paramètres, il vous faut double-cliquer sur le node. Le node à droite est la texture procédurale : le noise. À droite, un node indique que cette texture est un bump map, donc qu'elle va simuler les reliefs. En cliquant sur ce node vous pouvez régler l'importance du relief. Enfin, tout à droite, vous avez le shader "blinn1", puisque tous ses paramètres sont liés à ce shader.

Je vais éditer la texture procédurale, pour ça je vais double-cliquer sur le noise du Work Area. Pour éditer plus facilement une texture de bump map, je vous conseille d'activer le mode High Quality de Maya et d'activer le mode d'affichage texturing (touche 6 du pavé numérique) et lighting si vous avez des lampes dans la scène (touche 7 du pavé numérique).

J'ai touché aux paramètres pour avoir de petits points blancs (le blanc représente la zone en relief) :

Voilà ce que j'obtiens au rendu :

Dans le Work Area cliquez sur le node tout à gauche "place2dTexture1" pour éditer la réplétion de la texture.

Quand les paramètres sont à 11, la texture est affichée une fois. En mettant 22 la texture se répète deux fois, avec 5, il y a 55 répétitions et ainsi de suite. Si vous mettez 51 la texture ne se répètera que horizontalement. Vous comprendrez mieux quand vous étudierez l'UV Mapping. ;)

Voilà ce que donne le rendu avec différentes valeurs de répétitions :

Pour ajuster l'intensité du relief, cliquez sur le node "bump2d1". C'est le paramètre bump depth qui modifi ça. En mettant des valeurs négatives les parties blanches de la texture creuseront dans la matière :

Voilà ce que donne le rendu avec différentes valeurs de Bump Depth :

Et dans tout ça, le maillage reste inchangé et ça marche à merveille sur des polygones en smooth preview. N'est-ce pas magique ? :magicien: Et pour enlever le bump map, soit vous affectez un nouveau shader (là c'est la méthode radicale), soit vous faites un clic droit sur le paramètre "Bump Mapping" et vous cliquez sur Break Connection pour casser les connexions des nodes :

Ou sinon, vous supprimez le node bump map du work area pour casser la connexion, ça vous permettra de garder la texture de côté :

Pour réutiliser la texture en tant que bump map et donc recréer une connexion, faites un clic du milieu sur le node de la texture et glissez la souris sur le nom du shader. Un menu apparaitra, vous devrez y indiquer à quel paramètre lier le shader, cliquez sur "bump map" :

Vous pouvez aussi faire un clic du milieu sur le node de la texture et glisser la souris sur le nom du paramètre dans l'Attribute Editor :

Vous pouvez, grâce aux connexions, lier le même node à plusieurs paramètres. Par exemple, notre texture est une bump map, mais on peut aussi l'appliquer au paramètre Color pour qu'il modifie la couleur du polygone :

En connectant la même texture en tant que Color et Bump Map, voilà ce que je peux obtenir :) :

Pour aller plus loin, je vais même lier la texture au paramètre Specular Color. Toutes les zones sombres réfléchiront peu la lumière et les zones claires feront l'inverse :

Et voilà l'effet obtenu au rendu :

Voilà donc la force des nodes, avec eux vous pouvez accéder rapidement à différents paramètres et utiliser un même node pour plusieurs connexions. J'ai utilisé la texture noise en tant que Color, Bump Map et Specular Map ! :D En éditant la texture comme sa répétition ou son apparence vous changerez complètement l'apparence du shader.

Finissons de voir les derniers paramètres importants du shader Blinn. ^^

Diffuse

Le paramètre diffuse règle l'intensité de la lumière captée par le shader :

Eccentricity

Eccentricity gère l'intensité de la lumière captée comme le diffuse. Il faut le combiner au Specular Roll off pour régler plus finement le shader.

Specular Roll Off

Le Specular Roll Off gère la taille du point lumineux sur le polygone.

Specular Color

Le Specular Color gère la couleur de la lumière captée :

On s'en sert plus souvent avec une Specular Map pour afficher les zones plus brillantes que d'autres, comme je vous l'ai montré avec les connexions plus haut. Rappelez-vous que la couleur noire indique une zone matte et le blanc une zone brillante.

Reflectivity

Reflectivity règle la réflexion d'un polygone. Par défaut le shader Blinn a son paramètre de reflectivity à 0.5, il vous faudra très souvent abaisser cette valeur.

Glow

Et pour finir, le paramètre Glow ne fait pas partie des paramètres importants, mais il permet d'obtenir un effet d'éblouissement que vous pourrez utiliser lorsqu'un polygone émet de la lumière avec le paramètre "Ambiant Color". Vous devez augmenter le paramètre Glow Intensity pour afficher l'effet d'éblouissement au rendu.

L'effet d'éblouissement n'apparait qu'à la fin du rendu.

Voici le rendu avec différentes valeurs de Glow Intensity :

Vous pouvez cocher au-dessus du paramètre Glow Intensity l'option Hide Source qui permet de cacher le polygone, il ne restera plus que l'effet d'éblouissement et son ombre.


Eh bien, vous avez déjà tout vu sur les shaders ! :) À vous maintenant de donner un peu de couleur à vos scènes, que vous combinerez à l'éclairage indirect de Mental Ray pour obtenir des rendus photoréalistes.

Maintenant nous allons passer aux chapitres obligatoires, mais que tout le monde déteste ( :p ), concernant l'UV Mapping. Nous allons commencer en douceur dans le prochain chapitre par la découverte et par quelques explications sur le fonctionnement. ;)