# Anim : Shading, contour, techniques de modé rapides

Toon shader Cycles

  • Cycles a maintenant un shader intitulé Toon BSDF. Mais il ne donne pas le même résultat qu’en EEVEE et le noeud “Shader to RGB” n’est pas disponible.

📌

L’effet visuel est un peu meilleur si on passe de Filmic à Standard pourle View Transform dans la section Color Management des paramètres de Cycles. Look à medium Contrast peut aider également.

Toon Shader EEVEE

  • Télécharger ce fichier Blender de départ:
  • En mode EEVEE, si on transforme la sortie d’un shader (Diffuse, Glass, Principled, etc.) en couleurs RGB et qu’on passe ses couleurs dans un color ramp en mode “constant”, on obtient un toon shader de type “cell shading”!
  • On a justement modifié le Color Management des paramètres EEVEE, pour Standard au lieu de Filmic pour View Transform et Medium Contrast pour le Look.
  • Sélectionnez le empty qui contrôle tout l’objet
  • Avec le N menu, sous Item, keyframons par un driver la rotation de l’axe des Z en inscrivant: “#frame / (pi / 180)”.
  • L’objet tourne alors de 1 degré par frame sur 360 frames. On a rapidement un turnaround complet.
  • Faites “Play” et expérimentez avec d’autres couleurs dans le color ramp, ajoutez des color stops, modifiez la distance entre elles, etc.
  • Dans un toon shader traditionnel, il y a trois tons:
    • La couleur locale (midtones) : choisissez une couleur de votre choix et placer le stop au centre à peu près.
    • La couleur de l’ombre: Copiez la couleur locale, paste dans un stop à gauche, réduire la valeur (Value), ça va rendre la couleur plus sombre tout en conservant la même teinte. Augmenter un peu la saturation (au choix).
    • La couleur des rehauts de lumière: encore une fois, même teinte (Hue) que la couleur locale, mais Valeur plus élevée (plus de lumière) et une bien moins grande saturation en pigments, ce qui donnera de la lumière.

📌

Si vous amenez la souris au-dessus d’une couleur, vous pouvez faire copier/coller!

  • On peut aussi utiliser un color ramp au lieu du Mix Node, c’est plus intuitif et inverser

Toon shader sensible aux couleurs de l’environnement en EEVEE

Dessin à l’encre (ma technique préférée en dessin!)

Noir et blanc

  • Changer le color ramp pour deux couleurs, pur noir et pur blanc.
  • Changez Constant pour d’autres valeurs pour voir l’effet. Par exemple, en B-Spline (n’oubliez pas de le faire pour les yeux également), voici ce qu’on obtientÈ

Halftone

  • Ajoutons un Voronoi Texture à la patente.
  • changer Scale à 20 et Random à 0.
  • ⌃ ⇧ - left click sur le noeud Voronoi pour un preview
  • Remplacer le color ramp par un Math node de type “Greater than”
  • Comparer Shader to RGB à Voronoi via le noeud Greater Than:
  • Il faut inverser les ronds blancs et les rond noirs. Ajoutons un Mix node. La distance du Voronoi est connectée à Factor du Mix Node, avec une valeur de 1 pour A.
  • Ça va inverser le toutim.
  • Premièrement, halftone est une technique 2D utilisé dans les bandes-dessinées des années 50. Donc changeons la dimension de la texture Voronoi de 3D à 2D.
  • Mais les coordonnées sont tout décâlissées.
  • Quelles coordonnées utiliser pour que qu’on ait une impression de halftone? Par défaut c’est Generated du noeud Texture Coordinate squi est branché, même si le noeud n’est pas présent et, manifestement, ça ne marche pas:
  • Drag l’input Vector du Voronoi vers la droite et choisir “Texture Coordinates - Camera”.
  • Changer le scale de Voronoi à 60 et faites play ou déplacez-vous dans le viewport.
  • Chouette chouette!

Hatching (gravure)

  • Changer Voronoi pour Wave Texture. Scale à 30.
  • Ajouter un Vector Rotate Node entre Texture Coordinates et Wave Texture.
  • Changer le type de Vector Rotate à Euler et changer la rotation Z à “45d”
  • jouez avec la rotation en Z et avec la valeur A du Mix Shader.
  • Ah oui mais je ne veux pas que mon objet soit blanc, et si je change la couleur du Diffuse BSDF, ça ne fait rien. On peut utiliser un Mix Color mode en mode “Multiply” (comme le mixing de layers dans Procreate, Affinity Photo, PixelMateor, Krita, Gimp, etc.)
  • Maintenant la couleur du shader va se “multiplier” à celle de la texture Wave.
  • En mode “Color Burn”, les hachures seront plus foncées. On peut aussi Amener le Factor de ce shader à 1 pour “favoriser” l’input B. (0 favorisera l’input A).
  • Pour aller plus loin dans les hachures, ce tuto est sumpa, mais il faut l’adapter à Blender 4.3 (il a été fait avec Blender 2.9). Cela étant dit, le jeu des textures Noise, Voronoi, Wave, etc., n’a pas beaucoup changé:

Outline (ligne de contour)

  • Revenir au premier Toon Shader:

Layer Weight

  • Ajouter un Layer Weight node, un Math Node et un Mix Color node. Connecter Facing à Value de Math Node que vous changez à Greater Than.
  • Mettre le Threshold à 0.7. En gros, si la normale (Facing) dans le layer Weight est plus grande que 0.7, mettre le Factor du Mix Color Node à 1, ce qui favorisera l’entrée B (la sortie du Color Ramp), sinon, ça va prendre la valeur de A, i.e. la couleur noire.
  • Contrairement à Fresnel (effet de la couleur sur les bords d’une surface), Facing, qui indique combien la surface fait face à la caméra, ne tient pas compte de l’indice de réfraction.
  • Connectez l’output de Less Than à Factor du Mix Color node.
  • Connecter le Color Ramp à l’input B du Mix color. L’input A du Mix color devrait être la couleur que vous voulez du contour (j’ai choisi noir).

Freestyle

  • Revenir au Toon Shader de base.

  • Activer “Freestyle en mode Relative” dans les paramètres de EEVEE.

  • Faite Render Image.

📌

On ne voit pas l’effet dans le viewport car Freestyle est un effet post-process et EEVEE ne peut le montrer dans le viewport.

  • Chouette non!
  • Voici l’animation turnaround 360 en freestyle:

Grease Pencil Line Art

  • Revenir au toon shader de base encore une fois.

  • désactiver Freestyle dans les paramètres d’EEVEE.

  • Ajouter un Grease Pencil Stroke à la scène. Le déplacer hors caméra:

  • Avec le Grease Pencil stroke sélectionné, ajouter un modifier de type Lineart:

  • Pour la collection qui sera affectée par le grease pencil, choisir “Cute cat in the red hoody”

  • Layer: Color (i.e. dans quel Layer on veut assigner les “strokes” générés)

  • Material: essentiellement la couleur à donner aux strokes. Choisir le material “Black”.

  • Line thickness à 10.

  • Dans les paramètres Layers, activer, dans la section “Data”, “Combined” et “Z”, pour bien rendre des scènes qui utilisent Grease Pencil, c’est nécessaire.

  • And wala!

  • Il faut être en vue caméra pour que ça fonctionne.

  • Jouer avec les paramètres du lineart modifier.

📌

  • Ah oui, sélectionnez le Grease Pencil Stroke. Passez en Edit mode. C’est comme un vector, on peutle modifier, faire Extrude, déplacer les Vertex, etc.!

Painterly textures

  • Revenons au fichier Toon Shader startup file
  • https://drive.google.com/file/d/1czeHQn3n-3ke0F_d22QUk9QkYkwywXdq/view?usp=drive_link
  • Cliquer sur l’empty du chat, et faire un scale 20 (S 20), l’objet est trop petit pour ce qu’ont veut faire sinon.
  • Sélectionner le corps et ajouter un Principled BSDF qu’on connecte au noeud Material Output.
  • Ajouter un Voronoi Texture. Connecter Position au Base Color du shader
  • ⌃ ⇧ - left-click sur ce dernier pour avoir un preview.
  • Ok, drag Vector du Voronoi vers la gauche et choisir Texture Coordinate - Normal.
  • Reconnecter le Shader au Material Output
  • Connecter Position du Voronoi non pas au Base Color du shader mais bien au socket Normal.
  • Maintenant on va adoucir les bords.
  • Ajouter un Noise Texture ainsi qu’un Mix Color Node.
  • Socket Normal de Texture Coordinates dans A de Mix Color.
  • Socket Object de Texture Coordinates dans Vector de Noise, socket Fac de TExture dans B de Mix Color.
  • ⌃ ⇧ - left-click sur le Voronoi pour l’effet de l’ajustement de Factor de Mix Color pour favoriser l’input de la normale ou celui du noise. Observez l’effet. 0.4 c’est chouette.

📌

Si c’est distance de Voronoi qui est connecté à Material Output, connecter plutôt Color ou Position, c’est plus facile à voir ainsi l’effet.

  • Ajuster également les paramètres du Noise pour obtenir l’effet désiré.

  • Moi j’ai gardé les paramètres du Noise à leurs valeurs par défaut, et le FActor du Mix Color à 0.15.

  • Ajustons par contre les paramètres du Voronoi:

    • Scale = 4
    • Detail = 1
  • Reconnecter l’output du shader à Surface du Material Output

  • On va utiliser une Brush d’un asset pack nommé Crafty Asset Pack (la version gratuite) disponible sur BlenderMarket (https://blendermarket.com/products/crafty-asset-pack)

  • Téléchargez le asset file ici: https://drive.google.com/file/d/1x6vBpFAMwNHQI6OpMIpmpmH8rhCE43-H/view?usp=sharing

  • Dans Edit → Preferences → File Paths, trouver le chemin vers “User Library”, copier le fichier à cet endroit sur votre ordi. (Dans mon cas, c’est /Users/bahanzai/Documents/Blender/Assets)

  • Créer un nouveau workspace à gauche du Shader Editor et aller vers l’Asset Library, choisir User Library.

📌

  • Si vous ne voyez rien, sauvegardez votre fichier blender, et redémarrer Blender.
  • On va aller chercher le normal map de l’asset 4k-Paint-Brush.

  • Créer un UV Sphere dans le viewport. Le déplacer un peu.

  • Drag and drop le 4K-Paint—Brush de l’Asset Browser sur la UV Sphere.

  • Vous devriez voir apparaître le shader du UV-Sphere, avec un Node group nommé Paint-Brush.

  • Cliquez sur ce node Group et faire “Tab” aller dedans.

  • Sélectionnez le noeud “Paint-Brush_normal.png node et faire Copier.

  • Sélectionner le corps du chat.

  • Faire Paste. Le noeud normal map devrait apparaître.

  • Connecter le socket Object de Texture Coordinates à Vector du nouveau noeud Normal Map.

  • Insérer un Mapping Node entre les deux. Cela va permettre de contrôler la taille de cette normal map.

  • Drag le socket Scale du Mapping vers la gauche et ajouter un Value Node. Ça va nous permettre de contrôler uniformément le scale.

  • On va utiliser le Normal Map pour contrôler le Voronoi Texture ainsi que la normale du Shader.

  • Sélectionner le Mix Node, faire ⇧ D pour le copier immédiatement à sa droite.

  • Changer le blend mode à Linear Light pour les deux.

  • Connecter le socket Color du normal map à l’entrée B du 2ème Linear Light Node.

  • Essentiellement, on vient de mélanger l’info des normales de l’objet, avec celle du Noise Texture et celle du Paint-Brush normal map.

📌

P.S., j’ai retiré le workspace Asset Browser.

  • Connecter la sortie Color du normal map au socket Color d’un Normal Map node qu’on connecte au socket Normal du Shader.
  • Changer la couleur du Shader à une couleur de votre choix. Je vais rester dans le rose bombom.
  • Changer la projection du noeud Paint-Brush_normal à Box pour avoir une meilleure project UV.
  • Vous devriez voir l’effet du brush stroke.
  • Si vous trouvez que les brush strokes sont trop intenses, augmenter le Blend à 1 dans le Paint-Brush_normal.png node.
  • Augmenter également le Strength du Normal Map à 5.
  • Maintenant, on doit mélanger l’effet du Voronoi Texture à celui du Normal Map texture.
  • Ajoutons Un Mix Color et le laisser purement à Mix et combiner Position du Voronoi (dans A) et la Normal du normal map (dans B).
  • Moi j’aimerai voir plus du Voronoi et moins les brush strokes. Ajustons le Factor de ce Mix Shader pour favoriser son input A.
  • Ajustons Factor à 0.3 environ.
  • Ok, on va aller chercher maintenant la composante Paint-Brush_diffuse du paint brush.
  • Sélectionner la sphère, on devrait se retrouver dans les shader nodes de la sphère.
  • Encore une fois, sélectionner le Node Group et rentrer à l’intérieur avec Tab.
  • Sélectionner le noeud Paint-Brush-diffuse.png, le copier.
  • Sélectionner le corps du chat.
  • Faire Paste
  • Vous devriez voir maintenant la texture Paint-Brush_normal.png apparaître.
  • Connecter la sortie Vector du noeud Mapping à Vector du Paint-Brush_diffuse.
  • Changer la project à Box au lieu de Flat et monter le Blend à 1.
  • On va mélanger la couleur du Paint-Brush_diffuse et la couleur du Voronoi, en mode Multiply. Créer un Mix Color, en mode Multiply. Connecter Color de Paint-Brush_diffuser au Socket B, et Color du Voronoi au socket A. Factor à 0.7, donc 30 % diffuse, 70 % Voronoi.
  • ⌃ ⇧ - Left-click sur le Mix Multiply pour voir l’impact visuellement
  • Pour le Voronoi, on ne veut pas de la couleur, mais un greyscale. Un color ramp par défaut fera l’affaire:
  • Dupliquer le Color Mix Multiply le plus à droite. Connecter Result du premier à Factor cette fois du 2e.
  • Connecter le Result du 2e à Base Color du Principled BSDF Shader
  • Ce que ça va faire, c’est
  • Ajustons maintenant les couleurs A et B. Choisir une couleur chaude pour A et une froide pour B.
  • En gros le Voronoi, à 70 %, et le diffuse Map du paint brush, à raison de 30 %, vont contrôler le mélanger entre la couleur froide et chaude.
  • Vous pouvez paramétrer les couleurs A et B en y connectant des couleurs aux inputs, des textures, des maps, you name it!
  • Ajustons le roughness de notre shader en utilisant le résultat du mix shader entre Paint-Brush_Diffuse et Voronoi
  • Prendre l’output de l’avant-dernier Mix, qu’on passe dans un color ramp standard qui alimentera le roughness du Principled BSDF.
    • Ajuster la caméra (on avait fait scale vous vous souvenez?
    • Déplacer la sphère en dehors du frame.
    • Comme on utilise pas de Shader to RGB ici, l’effet est mieux rendu en Cycles. Passer donc à Cycles et faite play. Vous aurez peut-être à reconfigurer le driver de l’empty (rotation Z = “#frame * (pi/180)”
    • Play the animation!

Glass toon shader en EEVEE

  • File → New → General

  • Passer en mode EEVEE

  • Créer un Circle

  • Passer en Edit mode, Vertex.

  • Select All vertices.

📌

Noubliez pas d’être en mode transparent pour s’assurer de sélectionner les vertices cachées!

  • Extrude vers le haut avec la contrainte Z activé ( E Z et drag vers le haut).
  • Sélectionner les vertices du haut et faire S pour agrandir un peu le haut du verre.
  • Tout sélectionner, faire E puis S et scale-extrude vers l’intérieur. Cela va donner de l’épaisseur à notre objet.
  • Sélectionner les deux loops du haut et fire S Z 0 pour les aligner selon l’axe des Z
  • Faire la même chose avec les deux loops du bas.
  • sélectionner la loop intérieure du bas (⌥ left-click sur l’un des edges de cette loop
  • Faire F pour crèer une face.
  • Faire I pour créer un Inseted loop cut.
  • Élargissons le dessus un peu plus. Sélectionner tous les vertices du haut, faire S pour scale avec Shift-Z pour ne pas créer de déformation en X ou Y.
  • Dans les modifiers, ajouter un Smooth by Angle, avec Ignore Sharpness activé
  • Passer au shader editor, en mode Render
  • En mode Object, faire New pour créer un nouveau Material.
  • Remplacer le Principled BSDF par un Glossy Shader couplé à un Shader to RGB. lui même couplé à un Color Ramp

📌

  • Assurez-vous d’être en mode EEVEE, le noeud Shader to RGB n’existe pas en Cycles
  • Roughness à 0.7, et la position du stop blanc du color ramp à 0.2 environ.
  • Ajoutons un Mix Shader pour pouvoir mélanger le Glossy Shader à un Transparent Shader
  • Ajuster le Factor à 0.2, ainsi il y’aura plus Transparent et moins de Glossy
  • Ajoutons un noeud Fresnel couplé à un color ramp en mode constant. Déplacer le stop blanc à 0.1
  • Ajouter un autre Mix Shader et connecter l’output Color du color ramp du Fresnel au Factor du nouveau Mix Shader; le shader du Mix Shader précédent connecté au premier socket Shader du 2 Mix Shader.
  • Ainsi, Fresnel, qui dépend du point de vue de la caméra, va affecter le mélange des deux autres shaders (Glossy et Transparent).
  • Changer l’IOR du noeud Fresnel pour 1, pour un effet de transparence plus cartoon.
  • Ajoutons un Emission Shader connecter au 2e socket Shader du 2e Mix Shader
  • Aussi, dans les propriétés Material, dans Settings, changer Render Method à Blended au lieu de Dithered. Ça fera un mélange (Blend) plus smooth.
  • Modifier la couleur de l’Emission Shader pour un bleu gris lumineux.
  • Modifier la couleur du premier stop du color ramp du Glossy shader à un gris plus foncé.
  • Pour une réflection moins parfaite, ajoutons un Noise qui alimente le roughness du Glossy Shader.
  • Ajustez les valeurs to your liking (Scale à 3, Roughness à 0.14, Distortion à 0.1 par exemple)
  • Avec deux objets ajouté, voici un exemple de rendu:
  • Pour un effet encore plus cartoon, rajoutons un cartoon avec un Grease Pencil Stroke.
  • N’oubliez pas qu’il faut activer Z Pass dans les propriétés Layers dans la section Data pour que Grease Pencil fonctionne correctement.

  • Wala!
  • Allez, on l’améliore! Ajoutons un teapot avec Toon shading. Aussi, remplaçons l’Emission Shader pour un Transmission Shader. Rajoutons également un sussucre. C’est important les sussucres.

Textured lights - Light Gobos and God Rays

  • Ouvrez le fichier suivant: https://drive.google.com/file/d/1eHs25i6jgItdj7TCt8i87avagug4tAIg/view?usp=sharing

  • On ne voit rien, c’est normal, le HDRI est à 0.

  • Ajoutons un area light, au-dessus de la chambre

  • Placer l’area light à angle, comme si elle provenait du trou à gauche de la chambre. Plus facile si vous êtes en vue orthogonale frontale (Numpad 1).

  • Aussi, changer la puissance de la lampe à 100W.

  • Ajoutons un cube qui va couvrir toute la scène, mais pas la caméra.

  • Avec le cube sélectionné, passer en mode Shader Editor.

  • Faire New, retirer le Principled BSDF et le remplacer par un Principled Volume.

📌

  • Il faut, évidemment, brancher le socket Voilume du shader à Volume et non pas Surface dans le Material Output.
  • Changer la densité à 0.08
  • Sélectionner la area Lamp.
  • Changer le Shape à Disk, et la puissance à 50 W (100 W c’est trop puissant).
  • Orienteer la lampe de manière à ce qu’elle pointe vers le divan simple.
  • Avec la lampe sélectionnée, changer le Spread dans Beam Shape pour la lampe à 1.
  • Modifier Size à 2.36 m environ et ajuster la rotation de manière à bien éclairer le divan.
  • Avec la lampe toujours sélectionnée, activer Use Nodes dans le Shader Editor. On va texturer la lampe!
  • Un Emission Shader va apparaître.
  • Connecter un Wave Texture au socket Color du Shader.
  • ^ T pour ajouter un texture coordinates avec un mapping node. Jouer avec les paramètres pour obtenir un résultat satisfaisant:
    • Mapping Node:
      • Z = 45
    • Voronoi node:
      • Scale = 2
      • Distortion = 5
    • Light Properties:
      • Size 2.2
      • Spread 3 degrés pour un peu plus de blur dans les rayures
    • Résultat:
    • On peut également changer la couleur de la lampe et/ou la couleur du Shader du volume.
    • Devinez quoi, à la place du Voronoi, on peut mettre une image, par exemple le dessin
    • Par exemple, allez chercher cette image: https://drive.google.com/file/d/1eR979Vrh-dvkbB8woLIC1PMBxXB3qvJO/view?usp=sharing
    • Dans le shader editor, retirewr Voronoi et ajouter un Image Texture et ouvrir l’image
    • Jouer avec le mapping pour orienter l’ombre de la feuille.

Devoir

  1. Glass toon shader pour les cylindres afin de voir au travers
  2. Toon shader pour les autres composantes (y compris le plancher!)
  • Ajouter des petites simulations de fluides pour
    1. Intake (entrée des gaz, essence et air)
    2. Compression (compression des gaz, changement de la couleur vers l’orange)
    3. Kaboom (explosion, feu)
    4. Exhaust (sortie fumée noir)
    5. Exemple:
  • Comme d’hab, plus vous êtes créatifs, plus vos points augmentent! Par exemple, vous pourriez ajouter les valves!
  • N’oubliez pas montage vidéo et sonore
  • P.S.: Si vous détestez les moteurs, proposez-moi quelque chose d’équivalent en termes de niveau de difficulté!

Escalier en colimaçon avec Geo Nodes

Charpentes métalliques avec modifiers

Escalier rapide avec Bevel Profile

  • Créer un cube. Faites un Bevel d’une des arrêtes en Edit Mode - mode Edges.

  • Choisir la taille du Bevel et le nombre de segments (déplacement souris et roulette souris puis click-gauche)

  • Choisir Custom Profile Type et choisir Steps dans Presets.

  • En Edit mode toujours, mais en mode Face Select, effacez les faces dont on n’a pas besoin (Select Face → Delete → Delete Faces), pour ne garder que les marches et contre-marches.
  • Ajoutez un Solidify modifier, avec “Even thickness” activé.