• 20 heures
  • Facile

Ce cours est visible gratuitement en ligne.

Vous pouvez être accompagné et mentoré par un professeur particulier par visioconférence sur ce cours.

J'ai tout compris !

Mis à jour le 08/03/2013

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

Connectez-vous ou inscrivez-vous gratuitement pour bénéficier de toutes les fonctionnalités de ce cours !

// Importer une texture chapitre shader (actuellement explication que dans le tp de l'échiquier)
// Montrer d'autres shaders que le blinn, paramétrer des shaders de MR, paramétrer du SSS
// Utilisation d'une Displacement Map/AO Map
// Comparer les différentes maps

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).

Image utilisateur

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

Image utilisateur

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 :) ) :

Image utilisateur

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 :

Image utilisateur

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).

Image utilisateur

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).

Image utilisateur

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.

Image utilisateur

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.

Image utilisateur

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.

Image utilisateur

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.

Image utilisateur

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.

Image utilisateur

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.

Image utilisateur

Dieletric_material

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

Image utilisateur

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.

Image utilisateur

Mi_metallic_paint

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

Image utilisateur

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.

Image utilisateur

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.

Image utilisateur

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).

Image utilisateur

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.

Image utilisateur

Misss_fast_skin_maya

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

Image utilisateur

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.

Image utilisateur

misss_skin_specular

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

Image utilisateur

path_material

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

Image utilisateur

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.

Image utilisateur

Copper

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

Image utilisateur

FrostedGlass

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

Image utilisateur

GlassPhysical

Verre très opaque.

Image utilisateur

GlassSolid

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

Image utilisateur

GlassThick

Vitre très opaque sans ombre.

Image utilisateur

GlassThin

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

Image utilisateur

GlazedCeramic

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

Image utilisateur

GlossyFinish

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

Image utilisateur

GlossyPlastic

Du plastique très réfléchissant.

Image utilisateur

MatteFinish

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

Image utilisateur

MattePlastic

Un plastique mat.

Image utilisateur

PearlFinish

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

Image utilisateur

Rubber

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

Image utilisateur

SatinedMetal

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

Image utilisateur

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.

Image utilisateur

TranslucentPlasticFilmOpalecent

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

Image utilisateur

Water

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

Image utilisateur

Shaders toon

Shader

Spécificités

Rendu

Solid Color

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

Image utilisateur

Light Angle Two Tone

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

Image utilisateur

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.

Image utilisateur

Shaded Brightness Three Tone

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

Image utilisateur

Dark Profile

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

Image utilisateur

Rim Light

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

Image utilisateur

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.

Image utilisateur

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.

Image utilisateur

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 :

Image utilisateur
Image utilisateur

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 :

Image utilisateur

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 :

Image utilisateur

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.

Image utilisateur

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) :

Image utilisateur

Paramétrer le shader Blinn

Image utilisateurY 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 :

Image utilisateur

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 :

Image utilisateur
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 :

Image utilisateur
Image utilisateur
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.

Image utilisateur
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 :

Image utilisateur

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

Image utilisateur

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) :

Image utilisateur

Voici ce que donne le rendu :

Image utilisateur

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 :

Image utilisateur
Image utilisateur

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.

Image utilisateur
Image utilisateur

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).

Image utilisateur

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

Image utilisateur

Voilà ce que j'obtiens au rendu :

Image utilisateur
Image utilisateur

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 à 1*1, la texture est affichée une fois. En mettant 2*2 la texture se répète deux fois, avec 5, il y a 5*5 répétitions et ainsi de suite. Si vous mettez 5*1 la texture ne se répètera que horizontalement. Vous comprendrez mieux quand vous étudierez l'UV Mapping. ;)

Image utilisateur

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

Image utilisateur

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 :

Image utilisateur

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

Image utilisateur

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 :

Image utilisateur

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é :

Image utilisateur

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" :

Image utilisateur

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 :

Image utilisateur

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 :

Image utilisateur

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

Image utilisateur

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 :

Image utilisateur

Et voilà l'effet obtenu au rendu :

Image utilisateur

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 :

Image utilisateur

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.

Image utilisateur
Specular Roll Off

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

Image utilisateur
Specular Color

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

Image utilisateur

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.

Image utilisateur
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.

Image utilisateur

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

Image utilisateur

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.

Image utilisateur

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. ;)

Exemple de certificat de réussite
Exemple de certificat de réussite