• eng
  • deu
  • esp
  • ita
  • Blender tutorial: material PBR para parede de tijolos
  • Restez à jour avec les dernières nouvelles sur le site avec un lecteur de flux rss
  • Graphiques et Programmation page Facebook
  • Graphics and programming Youtube channel
  • Graphics and programming Twitter page

Tutoriel Blender: matériau PBR pour un mur de briques

Dans ce quatrième tutoriel du mini-cours en français pour Blender "D’une photo à un mur 3D", nous verrons comment créer un matériau PBR pour le mur que nous réalisons, en utilisant les cartes que nous avions précédemment enregistrées.
Un matériau PBR (Physically Based Rendering) est un matériau qui devrait prendre en compte les caractéristiques physiques de l'objet, mais nous sommes dans le monde de la représentation artistique donc nous allons utiliser des "shaders", des composants qui simulent des ombres et des nuances, se rapprochant de ce qui se passe dessus lorsqu'il est frappé par un rayon de lumière dans la réalité.
En particulier, nous utiliserons le shader représenté par le nœud "Principled BSDF", appelé "Principled" car il ne se rapproche pas de la physique de manière rigoureuse, mais suit les principes (quelques paramètres intuitifs qui conduisent à un résultat plausible, plutôt que physique paramètres) initialement formulés par Disney qui a le premier formalisé ce modèle, et "BSDF" (fonction de distribution de diffusion bidirectionnelle) car, à partir d'un faisceau lumineux incident, sont calculées tant la distribution de tous les rayons réfléchis que celle de tous ceux transmis à l'intérieur du matériau.

Dans les tutoriels précédents, nous avions construit la forme approximative des briques en utilisant deux méthodes, celle avec le modificateur de déplacement ("Blender: briques du mur avec le modificateur displace") et celle avec la subdivision adaptative ("Blender: briques avec adaptive subdivision/microdisplacement"), en enregistrant les résultats dans les deux fichiers "displacemodifier.blend" et "adaptive_subdivision_microdisplacement.blend".
Dans ce tutoriel nous utiliserons les cartes créées avec Krita dans ce tutoriel "Tutoriel Krita : comment créer des cartes de déplacement, des hauteurs, des normales", mais les textures téléchargées sur Internet ou créées avec d'autres programmes peuvent également fonctionner (nous en reparlerons plus tard, en bas de page à la fin de ce tutoriel)

 

Matériau de briques PBR avec modificateur displace, "base color":

Nous chargeons le fichier "displacemodifier.blend"

désactivons le modificateur "Displace" pour l'instant,

et sélectionnez l'espace de travail "Shading"

Dans le "Shader Editor" ci-dessous, s'il n'est pas présent, créez le nœud pour la texture (Add > Texture > Image Texture), chargez la texture "diffuse_map.jpg" représentant la photo initiale du mur et connectez le "Image Texture" au nœud "Principled" (pour le moment nous laissons les paramètres par défaut du nœud "Principled" inchangés) dans le port "base color" pour indiquer que cette texture est utilisée pour donner la couleur de base à l'objet associé au matériau

connectez au noeud "Image Texture" le noeud "Texture Coordinate" (Add > Input > Texture Coordinate), qui définit sans équivoque le type de mapping utilisé, et le noeud "Mapping" (Add > Vector > Mapping) qui dans ce tutoriel le n'est pas nécessaire, mais il est toujours utile de redimensionner la texture dans certaines situations (nous l'utiliserons dans une autre leçon pour redimensionner/faire pivoter une écriture sur le mur).

Dans l'aperçu, nous voyons maintenant

comme entrée pour le port "base color" nous avons utilisé une photo non traitée, si nous l'avions plutôt transformée en une texture "albedo" avant d'avoir dû la mélanger (à l'aide d'un nœud Add > Color > MixRGB) avec sa carte "Ambient Occlusion" (AO) supplémentaire, qui force la présence d'ombres en calculant où les volumes arrêtent les rayons de lumière

modifier le facteur "Fac" en fonction des caractéristiques de l'image "albedo", de la photo d'origine à partir de laquelle la carte a été prise et du résultat à obtenir.

En aval de la texture on peut éventuellement ajouter un nœud "Hue/Saturation" (Add > Color > Hue/Saturation) ou un "RGB Curves" (Add > Color > RGB Curves)

s'il est nécessaire d'ajouter ou de supprimer du contraste à l'image, ou de rendre les briques moins rouges

ces modificateurs peuvent être utilisés directement ou pour que le résultat final soit mélangé, via le nœud MixRGB (Add > Color > MixRGB)

dans le nœud "Image Texture", pour que les images soient affichées sur un moniteur, dans "Color Space" vous devez toujours définir l'option sRGB, qui est l'espace colorimétrique encodé RVB optimisé pour l'affichage (donc utilisé pour les moniteurs), en fait, un texture contient des informations qu'un œil humain ne peut pas voir, une conversion est alors effectuée afin que les couleurs et les nuances de gris s'affichent au mieux.

 

Carte de hauteur et carte normale en matériau PBR :

Avec le modificateur "Displace", nous avons défini approximativement la forme des briques, maintenant avec la height map et la normal map, nous ajouterons des détails, tels que les rayures ou la porosité des briques.
Modifions quelques paramètres: dans les "Render properties", nous définissons un nombre de samples 150 pour "Viewport" (pour Blender à partir de la version 3.0, nous définissons cette valeur dans "Max Samples")

et déconnectez les textures de la porte "base color".

Pour ajouter des détails aux briques, nous utilisons les deux cartes que nous avons créées avec Krita: "normal_map.jpg" et "height_map.jpg".

Pour ces cartes et pour les autres que nous verrons plus tard, l'espace colorimétrique "Color Space" doit être défini sur "Non-Color" car les données doivent être lues à partir de la carte telle quelle, toute conversion en sRGB changerait à la place en incorrectement les informations qui y sont contenues.

Pour lire les données de la carte et créer la perturbation dans les normales, ce qui ajoutera des détails "virtuels" (modifiant localement la manière dont les ombres sont créées lorsque l'objet est touché par la lumière), nous utilisons la "Normal Map" node (Add > Vector > Normal Map) qui, comme on peut le voir, reçoit les couleurs de la carte en entrée (par le port "color") et renvoie les "vecteurs" en sortie (par le port "normal")

Dans le nœud "Normal Map", il y a trois paramètres à définir: dans le menu déroulant, vous spécifiez le type de carte normale que nous utilisons ("Tangent Space", "Object Space", "World Space", "Blender Object Space", "Blender World Space")

nous choisissons "Tangent Space", car dans Krita nous avions construit une carte normale de l'espace tangent.
Il faut ensuite choisir l'UVMap à utiliser, généralement c'est celui de l'objet sur lequel la carte doit être appliquée, dans notre cas il n'y en a qu'un qui est "UVMap", celui de notre plan, créé et configuré préalablement par l'addon "Images as Planes" avec lequel nous avions importé la photo du mur.

le dernier paramètre, "Strength", indique à quel point l'effet de la carte normale sera perceptible. Si nous définissons par exemple la valeur Strength:3, nous aurons comme résultat

avec seulement une déformation apparente du maillage, faite à l'aide de lumières et d'ombres, en fait si nous regardons le plan de côté, nous remarquerons qu'aucun relief n'a été créé, contrairement à ce qui s'est passé avec le modificateur "Displace".

Pour ajouter les détails aux briques, nous pouvons utiliser une carte normale ou le "height_map.jpg" (à ajouter avec Color Space:"Non-Color"), que nous avions créé dans l'autre tutoriel pour Krita, en plaçant en aval un noeud Bump (Add > Vector > Bump), ou nous pouvons combiner les effets des deux cartes ensemble, en concaténant les nœuds

Le node Bump est régulé par trois paramètres: une option "Invert" qui permet d'inverser l'interprétation des hauteurs de la map, "Strength" qui détermine la force de l'effet maps (en pratique, visuellement, il colore plus clairement ou plus sombre les ombres ), "Distance" un multiplicateur de la valeur de hauteur d'entrée pour contrôler la distance que nous voulons simuler.
Nous connectons également les nœuds de carte de hauteur et de carte normale au nœud "Mapping"

dans l'aperçu de l'espace de travail "Shading" on voit, avec les valeurs "Strength" définies dans les images précédentes, que les reliefs des briques sont plus définis

vous pouvez faire varier les paramètres selon le type de matériau, la distance de l'objet, l'effet que vous souhaitez obtenir

 

Carte de rugosité dans le matériau PBR:

Le paramètre "Roughness" est utilisé pour indiquer la rugosité de l'objet, qui peut être poussiéreux ou poreux, fragmentant et réfléchissant le rayon de lumière qui le frappe en plusieurs parties.
Avec la carte normale (avec Strength:0.6) et la carte de hauteur connectées au nœud "Principled", via le nœud "Bump", l'effet d'une carte de rugosité ne sera pas très évident, car la carte normale influence déjà les lumières et les ombres sur l'objet.

cependant, si nous déconnectons le nœud "Bump" du nœud "Principled", un reflet du soleil apparaîtra frappant la brique par le haut.

Voyons maintenant comment gérer cette réflexion: dans le nœud "Principled" le paramètre "Specular" est réglé sur 0.5, nous laissons cette valeur inchangée car le matériau est diélectrique, tandis que le paramètre "Roughness" est réglé sur 0.5 par défaut.

Ajoutons maintenant la carte "roughness_map.jpg", créée dans l'autre tutoriel pour Krita avec les autres cartes, en utilisant le nœud "Image Texture" (Add > Texture > Image Texture), également ici avec "Color Space:Non-Color" car c'est une carte qui doit être lue sans filtres ni modifications,

et on verra déjà une amélioration, avec une réflexion au dessus de la brique qui tient compte de la lumière venant du dessus, mais plus diffuse qu'avant

On peut éventuellement mettre un node "ColorRamp" (Add > Converter > ColorRamp) pour diminuer l’influence de la rugosité par la texture, augmentant ainsi la concentration des reflets

ou pour augmenter la rugosité

Compte tenu également du fait que nous devons réinsérer les maps bump/normal, nous choisissons les valeurs qui nous permettront d'obtenir un bon résultat pour notre projet.
Avec cette carte de rugosité, nous avons terminé le tutoriel du matériau PBR de base pour les briques murales. Ci-dessous, vous pouvez cliquer sur l'image pour voir l'intégralité du diagramme de nœud créé.
Avec le modificateur de déplacement

Voici l'exemple après avoir suivi le tutoriel sur la subdivision adaptative

Vous pouvez télécharger les fichiers du projet ici:
diffuse_map.jpg
displacement_map.jpg
height_map.jpg
normal_map.jpg
roughness_map.jpg
blender_wall_pbr_material_adaptive_subdivision.blend
blender_wall_pbr_material_displace_modificator.blend
world hdri

Voyons maintenant quelques suggestions pour accélérer la création de nœuds, effectuer des réglages et déboguer.

 

Comment accélérer le travail:

Dans le didacticiel, nous avons créé les nœuds contenant les cartes à l'aide de la fonction de menu appropriée (Add > Texture > Image Texture), mais nous pouvons accélérer le processus en faisant glisser les textures ou depuis le "file browser" de l'espace de travail "Shading".

ou depuis le navigateur de fichiers de notre système d'exploitation.

Le nœud "Image Texture" sera créé automatiquement, il suffit de sélectionner "Color Space:Non-Color" ou "Color Space:sRGB" et de le connecter aux autres.

 

Le module complémentaire Node Wrangler :

Un addon qui peut nous aider dans la gestion des nœuds est sans aucun doute "Node Wrangler", déjà fourni par défaut à Blender. Nous pouvons l'activer dans "Edit > Preferences" en sélectionnant l'onglet "Add-ons"

Cet addon est important car il fournit des fonctions utiles qui vous permettent d'accélérer votre travail en fait, par exemple, en sélectionnant un nœud "Principled", en appuyant sur les touches "Ctrl+Shift+t", en sélectionnant les différentes cartes avec le bouton "File Browser", seront automatiquement chargées et connectées les cartes "diffuse", "normal map", "roughness map", etc.

ou en appuyant sur les touches "Ctrl+Shift" et en cliquant avec le bouton gauche de la souris sur une texture, on peut en voir un aperçu (utile pour comprendre comment modifier les paramètres de certaines cartes de notre matériau PBR)

Pour en savoir plus sur les autres fonctions, consultez le "Guide de l'addon Node Wrangler pour Blender et raccourcis en pdf"

 

Comment créer des maps/textures:

Nous avons vu dans l'un des tutoriels précédents comment créer des cartes avec Krita et de la même manière nous pouvons les construire avec d'autres logiciels graphiques 2D généralistes, tels que GIMP ou Photoshop.
Cependant, il existe aussi des logiciels dédiés, comme Materialize (open source), ou Crazybump, mais aussi des services en ligne comme NormalMap-Online, où il suffit de charger la texture diffuse pour obtenir automatiquement toutes les autres cartes.

 

Où télécharger les maps/textures:

Si pour une raison quelconque vous ne parvenez pas à construire vos textures à partir d'une photo, vous pouvez les télécharger depuis certains sites dédiés. Par exemple, sur ambientcg.com, polyhaven.com, sharetextures.com, cgbookcase.com, 3dtextures.me sont disponibles des packages gratuits contenant diverses cartes pour représenter divers matériaux tels que les murs, les sols, l'écorce des arbres et bien plus encore. Généralement, dans chaque package, il y a plusieurs fichiers : une texture de couleur qui peut apparaître sous différents noms ("color", "basecolor", "diffuse" etc.), une carte pour l'occlusion ambiante (parfois indiquée par AO), une carte pour déplacement (qui peut être appelé "displacement" ou "height"), une ou plusieurs cartes normales, une carte pour la rugosité et, parfois, une carte spéculaire.
Dans certains cas, des fichiers au format usd peuvent également être mis à disposition, tandis que Polyhaven.com fournit également les fichiers relatifs au format .blend et .gltf pour simplifier certaines opérations.
Parfois, plus de textures sont fournies représentant des cartes normales car elles ont été encodées selon deux normes différentes, DirectX et OpenGL, et les noms des fichiers associés ont des mots comme "normaldirectx" et "normalopengl", ou plus brièvement "normaldx" et "normalgl" qui identifient le format respectif. Ces deux cartes diffèrent en ce que le canal vert de la carte RVB avec laquelle elles ont été encodées a le bit inversé l'un par rapport à l'autre. Par conséquent, en les observant on s'aperçoit que les parties en relief de l'une apparaissent en creux dans l'autre et, inversement, ses parties en creux apparaissent en relief sur la seconde carte, comme lorsque nous avions créé la carte normale avec Krita dans l'un des tutoriels précédents, où nous devions choisir Y- al lieu de Y + pour voir dans quelle direction interpréter les vecteurs pour les lumières et les ombres.
Par conséquent, dans le cas où la carte normale, téléchargée depuis un site, donne un résultat indésirable

il va falloir ajouter un nœud "RGB Curves" (Add > Color > RGB Curves) pour inverser le canal "Green"

obtenant ainsi

Pour ce tutoriel sur la fabrication d'un matériau PBR pour un mur de briques, c'est tout. Dans la suite, nous verrons comment ajouter des imperfections telles que des taches d'humidité (Tutoriel Blender: comment ajouter de la saleté à un mur) et des écritures. Happy blending!

Si vous avez aimé l'article, partagez-le avec un ami:

Articles similaires:

Blender: briques du mur avec le modificateur displace

Dans ce tutoriel pour Blender en français (mis à jour vers Blender 2.93), nous continuons le mini-cours sur la façon ...

Lisez l'article >

Blender : briques avec adaptive subdivision/microdisplacement

Dans ce troisième tutoriel pour Blender (mis à jour en version 2.93) concernant la création d'un mur 3D à partir ...

Lisez l'article >

 

Allez à la liste des tutoriels: > Blender <