Ce shader est difficile à maitriser et demande pas mal de tests de rendu pour y arriver.
Pour en comprendre la logique de fonctionnement et ses subtilités, il faut imaginer le SSS comme un matérial classique (blinn, lambert) avec une possibilité de plus : la transluscence.

En effet, ce shader a la possibilité de rendre plusieurs couches successives, de laisser plus ou moins passer la lumière entre elles pour créer de la profondeur.

Il peut aussi simuler les variations de couleur du modèle en fonction de l'éclairage, de ses entrailles et de son irrigation.
Le SSS se comporte comme un ensemble de calques à opacité réglable.

En voici une interpétation :


Tout d'abord, Construction du Shader et premiers Paramètres basiques:

MàJ : Construction du shader concernant les version anterieur à Maya 8.5. A partir de cette version, le shader est dejas tout fait et il n'y a plus qu'à l'assigner à l'objet.

Aller dans l'Hypershade : create mental ray nodes, dans’’materials’’ créer un ‘’miss_ fast_skin_ maya’’.

Double click sur l’icône.

Dans attribut editor, ouvrir onglet Lightmap, click sur ‘lighmap’ (on paramètrera cette nouvelle fenêtre plus tard)

Cela fait apparaître une icône dans hypershade : mentalrayTexture1, liée au miss_fast_skin_maya.

 

Ensuite, sélectionner l’icône miss_fast_skin_maya et ‘’dérouler son contenu’’  double click sur miss_fast_skin-maya1SG
Dans attribut editor : ouvrir onglet mental ray_dans ‘custom Shaders’ clik sur ‘light Map Shader’

Une fenêtre "create render node" s’ouvre. Faire défiler et plus bas dans ‘light Maps’, sélectionner ‘Miss_fast_lmap_maya’

            

Dans hypershade, une nouvelle icône apparaît normalement.

Après l’avoir placé, le ‘miss _fast_ lmap _maya’ est sélectionné ; dans l’attribut editor, ouvrir l’onglet ‘lightmap Write’ et faire glisser dans ‘lightmap’ l’icône ‘mentalraytexture1’ de l’hypershade.

Le shader est enfin prêt, et peut être associé au modèle.
Quelques réglages basiques et on peut en découvrir les effets sur un premier rendu.

Sélectionner le miss_fast_skin_maya.

Dans l’onglet lightmap : Le nombre de Sample définit la qualité du rendu, plus il est grand et plus le rendu sera fin et lent. Le chiffre doit être un multiple de 2. 256 semble un bon compromis qualité/temps.
En cliquant dans Lightmap, la fenêtre ‘’mentalrayTexture’’ s’ouvre.

Même panneau mais dans maya 2008 :
une expression est assignée à 'file size width' pour que le nombre indiqué = 2 fois la largeur de mon rendu (configuré dans render settings, ici 720).

De même une expression maintient le file size height = à la hauteur de mon rendu.

       
Ici, on définit la finesse du SSS et la qualité de la transluscence. ‘Writable’ doit être coché. Le size width doit faire le double de la longueur du rendu. Par exemple, pour un rendu au format 720/576, il faut entrer le nombre 720x2= 1440.
Le size height doit être égale à la hauteur du rendu.


Le size depth doit être de 32 bits, pour que le SSS fonctionne.

Enfin, il faut écrire le chemin, où les parametres du SSS seront enregistré.
Dans ‘image name’ :'' \'' suivi d'un nom par exemple : \chien, c'est-à-dire que le SSS enregistrera ces données sur mon disque D, sous le nom ''chien''.

Un dernier réglage :


Dans l'onglet Algorithm control:
Pour éviter d'avoir un "bruit" sur le modèle lors d'un rendu et une dispersion convenable de l'effet de transluscence, il faut augmenter le nombre de ''scale Conversion''. 25 semble donner de bons résultats.


Peau et transluscence, compréhension et réglages :

Avec pose de texture et parametre pour la peau du V-rex.

Diffuse layer 

Le diffuse layer est un ''calque'' à part entière. Il permet tout comme un shader classique de placer une texture sur un modèle (diffuse color et Overall color ) et d'y régler son intensité (diffuse weight).
Le diffuse layer définit comment l'épiderme reçoit la lumière, la laisse plus ou moins pénétrer et la renvoie. Les ombres propres du modèle dépend directement du diffuse layer, plus celui-ci sera opaque et plus les ombres seront nettes.
il est nécessaire de ne pas trop réduire l'intensité du diffuse layer sous peine d'avoir un manque de lumière réflechie et donc une texture et des ombres quasi inexistantes. Cependant (pour que la fonction de transluscence du SSS soit visible) il ne faut pas trop l'éléver pour qu'un minimum de lumière pénètre sous la peau et renvoie les textures de ''Subsurface''.


SubSurface Scattering
layer

Le Subsurface scattering layer regroupe 3 autre calques, situés hiérarchiquement sous le diffuse layer.

Les deux premiers :

L 'Epidermal scatter et le Subdermal scatter ont quasiment la même fonction, ils servent à renvoyer la lumière et donc la couleur relative à tout ce qui se trouve juste sur la peau et en-dessous pour créer une impression de profondeur.
En effet, l'épiderme (representé par l'épidermal scatter) est la partie superficielle mince de la peau et le derme (Subdermal scatter) une couche plus profonde.

 

En fait, techniquement la seule différence entre ces deux calques est liée au ''scatter radius''.
Plus il est grand, plus le calque semblera profond sous la peau et moins les ombres seront visibles.
Car même les couches sous la peau ont la possibilité de plaquer des ombres, ce qui donne l'effet de relief et donc de profondeur.
C'est pour cela que pour simuler la peau, le premier calque du subsurface, l'epidermal scatter doit avoir un radius assez faible, si ce n'est très faible. En opacité, il doit primer sur le subdermal scatter qui sert juste à rendre une couche encore plus profonde et donc beaucoup moins nette (d'où le radius élevé). Ce dernier n'est pas indispensable mais apporte un certain contraste surtout si la couleur utilisée est plus sombre que la texture de base.

Pour mes rendus, je me sers juste d'une seule texture que je modifie légèrement pour chaque calque .
Je crée une texure générique,  J'utlise la même version pour 'l'overall color' et 'l'epidermal 'scatter color' .Je l'éclaircie pour le 'diffuse color'.
Pour la subdermal color j'en fais une version plus sombre, contrastée et jaunâtre. (bien sûr ces variantes de couleurs dépendent du modèle, (homme/animal/creature) concerné.)

Pour la back scatter color, la texture générique sera complètement rougie et assombrie.

Le back scatter color:

Ce calque est le dernier hiérarchiquement et est essentiel à la fonction du SSS.

Exactement comme quand on passe sa main au dessus d'une flamme : plus elle se rapproche du point le plus chaud et plus la lumière qui la traverse sera intense. Une multitude de photons qui, filtrés par le sang, renverront une couleur rougeâtre......ou verdâtre si celui est vert!

Le back scatter color sert à imposer au SSS la couleur du sang qu'il devra renvoyer.
Il n'est pas essentiel d'y placer une texture pour en voir les effets. Dans ce cas, une couleur rouge suffirait.
Pourtant, j'en utilise une pour obtenir des variances de couleur car la lumière est censée traverser un corps non homogène et est donc filtrée irrégulièrement , d'où l'intérêt de reprendre la texture de base et de la rougir .

A noter que lorsque l'on souhaite que le SSS rende opaque certaines parties d'un modèle (os, corne...métal), il suffit de peindre en noir les zones de la texture correspondantes.

En ce qui concerne les réglages du Back Scatter:


Plus le weight est élevé, plus le sang est visible : pour que cela soit vrai, il faut que l'éclairage suive, car la couleur rouge ne dépend pas juste du SSS mais de l'axe et de l'intensité de la lumière qui traverse la peau.
D'où l'intérêt de placer une lumière dans le dos du modèle et face à la camera pour obtenir cet effet à coup sûr.

    

A noter qu'en décochant illuminate by default j'obtiens juste l'effet de transluscence désiré, sans les reflets générés par cette lumiere.


Plus le back scatter depth est faible, plus la teinte rouge se trouvera à la péripherie du corps et sera moins visible au centre.
Intéressant si l'on veut que seules les oreilles rougissent par exemple .
(Le radius a apparemment la même fonction que le weight ici, donc inutile d'y toucher.)

Voilà comment régler la lumière absorbée, la couleur, la profondeur, l'opacité, donc la fonction de transluscense du SSS.

Voyons à présent le réglage de la lumiere renvoyée par le modèle.


Specularity:

Le spéculaire du SSS ne ressemble pas aux autres shaders classiques.
Sa particularité est qu'il permet de gérer deux types de reflets d'instinct renvoyés simultanément afin d'obtenir une réflexion plus détaillée.
Le plus simple est de paramétrer les deux séparement puis de les combiner ensuite.

Je pense que les réglages du spéculaire doivent se faire avant la pose des textures (diffuse), donc sur une surface homogène qui rendra plus fidèlement compte des reflets.

De plus, pour encore clarifier les réglages, je laisse toujours le overall weight (contrôle l'intensité globale du spéculaire) à 1.
Le edge factor règle la douceur ou le tranchant du spéculaire global.
A la différence d'un blinn par exemple, plus le chiffre est élevé et plus les reflets sont tranchants.


Voyons à présent les deux types de reflexion:

Le primary Specular: L'exemple ici apour but d'expliquer les paramètres bruts, sans texture ajoutée.

Pour le régler, j'annule le secondary specular (secondary weight à 0 ).
Ici, ce type de reflet donnera une dynamique au volume général, il sera doux, large et de faible intensité. Je paramètre le primary specular de façon à ce qu'il crée l'effet de peau satinée, la lumière doit s'étaler sur le modèle.
Pour cela, le Shininess est essentiel, il détermine le tranchant des reflets. Ici, il doit être très doux (entre 1 et 5).
Je laisse la valeur par défaut du primary edge weigh, bien qu'en le montant, je remarque un léger changement d'intensité..
Enfin, je détermine l'intensité du Primary Specular (primary weight), c'est-à-dire la brillance du premier type de reflet, sur le modèle.

Le Secondary Specular:

Il sera plus tranchant, il donnera plus de dynamique aux détails du modèle, il mettra en valeur l'effet de la displacement map.
Il sera en tout cas moins présent, et ses reflets se verront sur le bout du nez ou sur le contour de l'oreille par exemple.
Ici faible intensité par rapport au premier (secondary weight). et un Shininess beaucoup plus élevé.

Panneaux avec pose de textures et parametre pour la peau du V-rex.


Le bump shader:

Pour être activé, il faut juste créer un node bump 2d dans l'hypershade puis le faire glisser dans le slot bump du SSS.
A noter que lorsqu'on le supprime et qu'on lance un rendu, celui-ci bugue. Dans le panneau déroulant bump du SSS, il suffit de s'assurer que les 3 valeurs sont bien à 0 pour ne plus avoir ce problème.

Voilà le rendu brut Maya, après réglages finaux.

Pour toute question : carcaryas@gmail.com