Un graffiti sur un mur en briques dans Blender
L'objectif de cette aide-mémoire est de parler du modificateur Displacement qui permet de créer un relief à partir d'une image en niveaux de gris, et de continuer sur la lancée des aide-mémoires précédents à propos des textures.
-
Pour faire simple, je pars d'un motif "briques" créé vite fait dans Inkscape et exporté en PNG :
-
Dans Blender, j'ajoute un objet plan Maj A
Mesh > Plane:
-
Je lui crée un matériau dans l'onglet
Material Propertiesavec le boutonNewet je vais dans l'espace de travailShading. Pour l'instant, je n'ai qu'un nœudPrincipled BSDFet leMaterial Output:
-
J'ajoute mon image de "briques" par un simple glisser-déposer et je connecte sa sortie
Colorà l'entréeBase Colordu nœudPrincipled BSDF:

Pour l'instant, c'est bien sûr toujours complètement plat :
-
Pour pouvoir avoir du relief sur mon plan, je dois d'abord le découper en petits carrés avec l'outil
Loop Cutet la molette de souris :
-
Je dois aussi produire une version de mon mur de briques dans Inkscape en noir et blanc, où le noir représentera les creux et le blanc les sommets du relief :
-
Dans Blender, je vais dans l'onglet
Modifier Propertieset je clique surAdd Modifierpour choisirDisplace -
Dans le modificateur Displace, je clique sur
Newpour ajouter une nouvelle texture -
Puis je vais dans l'onglet
Texture, ou bien je clique sur le pictoShow texture in texture tab, ce qui revient au même :
-
Dans l'onglet
Texture, je clique surNewpour vraiment créer la texture, cette fois, et je choisis le typeImage or Movie -
Là, je clique sur
Openpour choisir mon image de mur en noir et blanc :
-
Dès que Blender a ouvert l'image, j'obtiens un résultat un peu "violent" 😅 :
-
Je clique sur l'onglet
Modifier Propertieset je règle la force du modificateur avec le champStrength:
-
Là je commence à entrevoir le résultat que je souhaite mais il y a toujours des joints entre les briques qui n'apparaissent pas en creux, parce que ma grille de petits carreaux ne tombe pas bien en face des joints :
-
Pour affiner, je passe en mode édition, je sélectionne toutes les faces par A et je fais un clic droit
Subdivideautant de fois que nécessaire :
-
Je vois maintenant que les joints entre les briques apparaissent tous en creux comme je le souhaite :

Ici le relief est exagéré. Je pourrais passer la Strength à 0.03 pour quelque chose de plus raisonnable. -
Par contre, les arêtes des briques sont trop vives pour que ça ait l'air naturel :
-
Je pourrais ajouter un modificateur Subdivision Surface sous le modificateur Displace (c'est-à-dire après Displace dans l'ordre d'application des modificateurs). Pour l'exercice, je préfère modifier l'image des briques en noir et blanc dans Inkscape, pour obtenir des transitions moins franches entre le noir et le blanc. Pour ça, j'applique un léger flou sur le contour de mes briques et j'exporte en PNG, ce qui me donne des niveaux de gris :

(c'est du vite fait pour rédiger cet aide-mémoire) -
Dans Blender, je retourne dans l'onglet
Texture(via le picto Show texture in texture tab ou directement) et je clique sur le pictoReload image:
-
Aussitôt, je vois que j'ai quelque chose de plus naturel :
-
Je diminue le paramètre
Strengthà 0.03 pour avoir un relief plus raisonnable :
-
Je crée maintenant mon image de graffiti, vite fait dans Gimp en PNG transparente :
-
Je l'ajoute dans l'espace de travail
Shading. J'ajoute un nœudMixRGB. Je connecte l'image des briques par sa sortieColorà l'entréeColor1du mixeur, l'image du graffiti par sa sortieColorà l'entréeColor2du mixeur, et je connecte la sortieAlphadu graffiti à l'entréeFacdu mixeur :

(Si je me trompe entre la prise Color1 et Color2, je peux intervertir en faisant cliquer-glisser la souris de la prise Color1 à la prise Color2) -
J'obtiens ce résultat où on voit que la peinture du graffiti suit bien le relief des briques :
-
Maintenant, je voudrais que ce graffiti soit plus petit et centré sur le mur. Pour ça, j'ajoute les nœuds
Texture CoordinateetMappingcomme ceci :

(il faut régler l'image surClipau lieu deRepeat)
(il faut régler la taille,Scaledans le Mapping, avec un facteur supérieur à 1, contrairement à ce qu'on pourrait attendre) -
Et voilà le résultat :