Je tiens à remercier Ajax, trekkiegrrrl alias Ernyokal, Diolma, Quinlor et SimonTemplar (aka le Saint ;) pour m'avoir permis d'utiliser ici leurs images ainsi qu'une partie de leur textes.

A'kin

La Tenue de Camouflage du Predator et autres trucs sympas du Shader Tree

Par Ajax

 

Je suis tombé aujourd'hui sur une vieille discussion à propos de l'effet de semi-invisibilité du Predator et j'ai bien passé une bonne partie de la nuit et de la matinée à me demander comment y arriver. J'ai eu facilement une idée assez claire de ce que je voulais mais cela m'as pris un certain temps pour arriver à un résultat satisfaisant. Voici un exemple du rendu.

Voici une capture d'écran du réglages des nodes de façon à ce que vous puissiez faire de même (au cas où ;).

Et le voici ici en train de traverser un endroit particulièrement collant. Ces murs couverts de choses gluantes faisaient partie d'un autre projet sur lequel je travallais. Faut aimer le Slime bien sûr.

Bon nous voici au coeur du Slime. Le conduit central de toutes ces nodes c'est la P node visible en bas à droite. J'ai mis les facteurs x et z sur zéro, de façon basique cette node règle la hauteur à laquelle la matière doit se trouver sur le mur. C'est un facteur qu'il faut utiliser lorsque la présence d'une matière est dépendent de l'altitude. Etant donné qu'elle se branche par la suite sur d'autres nodes, j'ai utilisé la valeur de cette P node pour déterminer en quel quantité la matière devient slmie et en quelle quantité la matière est concrète. Néanmoins comme je ne veux pas que le slime apparaissent exactement au même endroit, de la mêe façons sur chaque colonne, j'ai ajouté une échelle large de turbulence (Tubulence_2) à la node P output (ils sont ajoutés ensemble par la node Math_Functions_3).

Puis j'ai utilisé la node Math_Functions_2 pour soustraire 2 au résultat. Ainsi je détermine que le passage entre la matière gluante et le ciment a lieu deux unités plus haute que le mur.

Maintenant que j'ai fini de préparer ma valeur de hauteur, je la fait passer la canal Bias dans une node Clouds. Ce qui veut dire que le facteur Bias augmente avec la hauteur, donc la densité de nuages augmente avec la hauteur (ou décroit-il avec la hauteur, je n'arrive plus à me souvenir). Il est difficile d'arriver à tout suivre avec toutes ces petites choses jusqu'à ce que vous ayez réaliser un rendu, vous devez donc avoir une bonne image mental de tout ce qui se passe.

Néanmoins, c'est la sortie de la node Clouds qui va me servir à régler le niveau de transition entre mon ciment et ma glue, c'est donc un point névralgique de tout le processus. Vous pouvez voir la sortie de la node Clouds se brancher dans trois nodes Blender – une pour la couleur Diffuse, une pour la valeur Ambient (J'aime bien que ma glue est quelques reflets brillants) et une pour les canaux de Displceùent et Highlight Size. J'aurais pu toutes les faire sortir d'une seule node Blender mais j'aime bien me laisser un peu plus de contrôle sur les facteurs de chaque zone.

Le ciment est créé avec une seule node de matière (Granite, en haut à droite). La glue est créée à la base avec deux nodes, Turbulence et ColorRamp. Vous pouvez voir le ciment et la glue, mélangés par une node Blender (en haut à gauche) , pour aller se brancher sur le canal de diffusion, avec les niveaux de mélange définis par une node Clouds.

Pour contrôler le displacement et le highlight size, j'ai fait exactement la même chose qu'avec la node Blender_2, sauf que, comme je ne voulais pas un déplacement aussi important pour le ciment, j'ai réglé la couleur du canal Input_1 de la node Blender_2 sur un gris foncé, ce qui vas régler un déplacement très faible. C'est comme je multipliais le déplcement du granite par 0.03. Aussi, puisque je n'ai pas besoin de couleur pour le déplacement, j'ai juste branché la node Turbulence directement dans la node Blender sans passer par la node ColorRamp.

Pour contrôler l'ambience j'ai fait la même chose avec la node Blender_3 sauf que comme je ne voulais pas du tout d'ambience pour le ciment, j'ai réglé le canal Input_1 sur du noir et je l'ai laissé ainsi. Et comme je ne voulais pas trop d'ambience pour la glue, j'ai passé la node Turbulence de a glue dans une node mathématique réglé sur POW, voici qui assombrit la totalité de la chose mais laisse quand même passer un peu de lueurs brillantes.

Ca le fait bien. La clef en fait c'est la node Clouds et tout ce qui en découle.

Ernyokal : AJAX!! Cette Slime n'est pas seulement bien faîte, Elle est fantastique ! Je viens juste d'essayer et... WOW !! MERCI !!

Ajax : Pour le réglage du moteur de rendu, le lancer de rayon est activé avec 8 à 10 rebonds (bounces). Si vous réglez en qualité Production vous obtiendrez des distorsion plus claire à travers la combinaison de combat du prédator, mais votre calcul sera nettement plus long. Pour la glue, vérifiez que vous avez réglé la facteur minimum displacement bounds" sur 1.5 ou sur un nombre plus grand. De manière générale, vous le réglerez à la valeur maximale de la matière à déplacer présente dans la scène.

Les temps de calcul ne sont pas astronomiques. Bien sûr la tenue de camouflage est faîte de matière réfractive donc cela ralentit un peu le temps de rendu. Les images avec le prédator ou le slime ont été calculé en un peu moins de 5 minutes. Et il faut compter un peu plus de temps pour le réglage, mais franchement le temps de rendu est très honnête.

Ernyokal : En altérant simplement quelques paramètres vous pouvez aussi faire apparaître du Slime sur les gens. Ici, j'ai juste modifié les nombres dans les nodes mathématiques qui étaient connectées à la node P (Math function 2 et 3 sur les captures d'écran d'Ajax) et j'ai aussi modifier le granite de façon à ce qu'il est une couleur tirant plus sur la chair. Je n'ai pas encore essayé de brancher une node imagemap (texture), mais je ne vois pas pourquoi cela ne fonctionnerait pas aussi bien :o)

OK un autre test. Oui vous pouvez aussi connecter une texture. Remplacer le Granite par celle-ci et voilà le résultat (avec toujours, bien sûr, d'autres nombres dans les nodes Math Function 2 et 3) .

 

Juste au cas où quelqu'un aimerait ma version... La voici avec la texture du corps de vicky 3 connecté dans la node Image Map en tant qu'image source.

Comme vous pouvez le voir, je n'ai modifié que très peu la version originale d'Ajax

Treckie aka Ernoykal ?
Pour rendre la matière moins luisante; la façon la plus facile est d'assombrir la couleur du canal input_1 colour de la node Blender_2. Nous avons pour l'instant un gris très foncé mais je pense qu'un noir pourrait nous débarrasser de cet aspect humide. Sinon, il existe ue façon plus compliqué, en passant par l'ajout d'une nouvelle node Blender et en contrôlant ainsi la couleur du canal highlight de façon ainsi le slime conserveras ses reflets blancs mais la matière sera grise (ou quelque cnuance dans les gris). Tu peux même essayer de brancher la node Blender 2 directement dans le canal highlight colour.

Pendant que j'y suis la canal Input_2 de la node Math Functions 2 contrôle la hauteur du bord entre la Slime et l'autre matière. En augmentant cette valeur vous levez ce bord et vous le baissez en réduisant cette valeur. LE canal Input_2 de la node Math_Functions_3 contrôle la variation de l'échelle globale de ce bord – C'est ce qui empêche les colonnes d'avoir le bord à la même hauteur. Si vous regardez la toute première image avec les colonnes rouges et vertes vous pouvez voir à quel niveau la node règle la hauteur du bord et ici vous pouvez faire la correspondance avec l'image du Slime.

 

Ernyokal : Désolé de m'incruster dans cette discussion mais je trouve ce Slime trop cool ! Et je vais essayer de donner le ton sur le facteur Highlight pour Ajax ! Ici j'ai ajouté une node glossy au sang, mais j'ai oublié que cette node affecterais aussi la texture du corps, ce qui fait qu'elle est un peu trop brillante. Il semblerait donc que la taille de ces petites choses soit aussi un facteur.... L'epée devrait être aussi couverte de "sang" – il a les mêmes réglages que pour le sol, mais il n'y a que très peu de sang sur celle-ci.. Bon... Je dois continuer mes investigations, mais il y a tellement de possibilités avec cette node. Je n'ai jamais su à quoi pouvait servir la node P (je ne suis pas non plus sûre de le savoir maintenant mais au moins je vois à peu près à quoi elle peut servir) – Je dois encore jouer avec les nodes mathématiques... Elles ont l'air vriament super, j'espère qu'un jour quelqu'un pourra donner une explication clair de ce que les différentes nodes font. Mais je suppose qu'il faudras un véritable livre :o)

Ajax : Quel bain de sang ! Pour empêcher la peau de paraître luisante, il faut créer une autre node Blender et la régler comme les autres, avec la node Glossy connectée à la parite Slime de la node Blender et l'autre partie définie en noir.

La quantité de sang sur l'epée est exactment comme attendue. C'est la même que pour les autres objets à cette hauteur, comme la poitrine de Vicky ou les murs à la hauteur de la poitrine.

La node P détermine les coordonnées x,y et z de n'importe quel point dans l'espace (P pour Point). Avec ces points sont affichés ici le compsant rouge, le bleu et le vert, je ne sais pas encore comment utilsé ces réglages, donc je vais en mettre deux sur zéro comme cela je sais que je ne joue que sur un axe, Y dans ce cas.

La node P est la seule node qui donne des valeurs de coordonnées de point, et elle ne fonctionne que dans un système global d'après ce que j'ai pû voir.

Par exemple : Afin d'avoir une dégradé en fond de scène, il faut appliquer une rotation de 45 degrées sur la droite à l'aide d'une node Math_Functions réglée sur Add ajoutez 0.5*U et 0.5*V. Cela ne devrait pas être trop difficile à déterminer, penseons à une formule générale qui devrait pouvoir appliquer une rotation sur le fond en fonction d'une somme arbitraire ! Cela va être réalisé à l'aide d'une matrice de rotation qui agit sur des angles.

La voici. C'est un dégradé qui a subi une rotation. L'angle de rotation est inscrit dans la valeur 1 de la node Math_Function_6. Cette valeur doit être inscrite en radians. (x degrées = x*pi/180 radians). L'angle affiché ici est un angle de 30 degrees.

Bien sûr, vous pouvez changer la node math functions 6 sur multiply et mettre une valeur de 2 à pi/180 et là vous pourriez être capable d'écrire la canal value 1 en degrées :-)

Voici une version plus évoluée du dégradé en rotation. Vous pouvez entrer les valeurs de rotation en degrée, n'importe quel valeur entre 0 et 90. J'essaie de trouver le moyen d'amener le coin noir en bas à droite, mais pour lemoment rien à faire ;)

Quinlor : Je pense que la solution pour avoir ce coin noir en bas à droite est la suivante : Soustraire la V-coordinate de 1 et donner ce résultat dans le calcul à la place de la from 1 v_coordinate .

Bien sûr Quinlor vous avez raison ! Merci !

Voici de quoi cela a l'air. Et pour avoir le coin noir en hauteur, vous pouvez soit soustraire le rendu final de 1 avant de le connecté au canal Diffuse ou vous pouvez soustraire V de 1 avant de le passer dans la node math_functions_5

et voici le réglage pour un dégradé circulaire

Bien à vous !
Diolma

Ernyokal : Voici un exemple de l'utilisation du dégradé circulaire utilisé sur l'accessoire boîte de Poser, plutôt cool non ?

 

et voici la même avec l'argument Step dans la node Math_Fucntions_5

And with another math function in math node 5...

 

Diolma : Voici un autre exemple de l'utilisation de dégradé circulaire

... et voici le rendu qui va avec.... Celtic ?

rendered. Celtic-looking stone??

:-)

Ernyokal : Et voici encore une utilisation du dégradé circulaire

 

et encore une autre – ou devrais-je dire deux, puisque le robot utilise aussi ce dégradé circulaire au départ, avec un poil de transparence.

 

Simon Templar : Voici mon predator, juste un souci, comment puis-je empêcher d'avoir un tache sombre lorsqu'une partie du corps passe devant une autre partie, en fait lorsqu'il y a double réfraction.

Ajax : La tâche noire est produite par le nombre de rebonds de lancer de rayon qui se trouve plus grand que la limite imposée par vos réglages de rendu. Vous pouvez donc augmenter ce nombre autorisé dans vos réglages de rendu ou utiliser une node dans le canal background color de votre node de réfraction pour remplacer la couleur noire avec quelque chose qui se fond plus là où les tâches apparaissent. Augmentez le nombre de rebonds risque de ralentir votre calcul, ne l'augmentez donc pas trop fort. Un réglage entre 10 et 12 fonctionne bien en général.

Fin de cette histoire, on en apprends des choses non ?? ;o)