Licence CC BY-NC-SA

Obtenir des matériaux réalistes

Publié :

Pour débuter cette nouvelle partie sur les techniques avancées, nous allons nous attaquer à un sujet ô combien délicat : le réglage des matériaux et des textures.

Un erreur fréquente chez les débutants est qu'ils consacrent peu d'attention au paramétrage des matériaux de leurs scènes, ce qui gâche souvent le travail réalisé sur la modélisation et produit un rendu peu réaliste.

Dans ce chapitre, nous allons donc passer en revue différentes techniques et méthodes qui vous permettront d'ajouter des effets convaincants à vos matériaux.

Shaders

Nous avions rapidement passé en revue les différents shaders dans la seconde partie de ce cours. Il est temps de s'arrêter un peu plus longuement dessus pour percer tous leurs secrets !

Pour commencer, quelques petits rappels ne nous feront pas de mal : les shaders vont définir la couleur diffuse du matériau, sa clarté (c'est le rôle du shader diffus) et également l'intensité et la taille de la tache de lumière reflétée (shader spéculaire).

Vous percevez naturellement toutes ces notions dans la vie quotidienne, et votre cerveau interprète toutes ces données pour vous dire « ce que je regarde ressemble à du bois » ou « ça, c'est du béton ! ». Pour autant, reproduire ces matériaux dans Blender n'est pas une chose facile !

Il faut d'abord que vous preniez conscience de toutes les propriétés qui constituent un matériau pour ensuite savoir les retranscrire dans Blender à l'aide des réglages appropriés.

Voyons ensemble quelques cas concrets :

Sur cette figurine en plastique moulé (voir figure suivante), on remarque des taches spéculaires nettes et assez marquées, notamment sur les rides du front. Si je devais recréer ce matériau dans Blender, il me faudrait élever l'intensité du shader spéculaire et également le paramètre Hardness (pour que la tache spéculaire soit bien nette).

Pour reproduire cette figurine, nous utiliserons le shader spéculaire et le paramètre Hardness

Sur cette balle de tennis (voir figure suivante), on ne distingue au contraire aucune tache de lumière très nette et bien visible. En conséquence, il faudrait baisser Intensity et Hardness dans l'onglet Specular pour avoir une lumière spéculaire discrète et diffuse.

Pour reproduire cette balle, il faudra utiliser Intensity, Hardness et Specular

Ce que je veux vous montrer avec ces exemples, c'est que vous devez, avant toute manipulation dans Blender, bien étudier dans la réalité le matériau que vous allez simuler.

Je dirais que le réglage des matériaux est constitué de 70% d'observation de la réalité et 30% de tests dans Blender.

Pour corser un peu le tout, on a plusieurs choix de shaders diffus ou spéculaires.

Mais quelles sont les différences entre tous ces shaders ? Lequel choisir dans quel cas ?

Eh bien c'est ici que cela se complique : pour obtenir un matériau réaliste, il faut bien souvent essayer plusieurs shaders et réglages avant de trouver celui qui sera le plus convaincant.

Honnêtement, tous les shaders ne sont pas indispensables mais, suivant la matière que vous voulez créer, certains sont plus appropriés que d'autres :

Pour les shaders diffus :

  • Lambert : shader généraliste (activé par défaut) ;
  • Oren-Nayar : permet de définir une rugosité pour le matériau ;
  • Toon : pour un style cartoon ;
  • Minnaert : tissus ;
  • Fresnel : pour les objets transparents ou miroirs.

Et pour les shaders spéculaires :

  • CookTorr : associé au shader diffus Lambert par défaut ;
  • Phong : similaire à CookTorr mais plus adapté aux plastiques ;
  • Blinn : à utiliser avec le shader diffus Oren-Nayar ;
  • Toon : à utiliser avec le shader diffus Toon ;
  • WardIso : certains liquides, plastiques brillants.

Voilà qui devrait constituer une bonne base de réflexion pour le réglage de vos shaders !

Combiner les textures

Bien régler ses shaders, c'est un pas en avant vers le réalisme. Mais sans textures, un matériau restera bien fade !

Dans cette section, vous allez apprendre à tirer le maximum de vos textures, notamment en les utilisant sur différents canaux (couleur, relief et spécularité). Pour vous entraîner, nous allons essayer de construire un matériau représentant du béton de la manière la plus convaincante possible.

Commençons par nous procurer de bonnes textures ! Je vous invite à consulter cette liste de sites proposant des textures.

Mais pour ce mini-TP, nous allons opter pour un pack spécifique, accessible via ce lien.

Ce pack a pour avantage de nous offrir des textures couleur/relief/spécularité avec une résolution raisonnable.

Après avoir extrait l'archive, vous vous retrouvez avec trois images :

  • (…)concrete-12_d100 : la Diffuse Map, c'est-à-dire l'image qui va remplacer la couleur unie de notre matériau ;
  • (…)concrete-12_b010 : la Bump Map qui va gérer le (léger) relief de notre béton ;
  • (…)concrete-12_s100-g100 : la Specular Map pour la spécularité.

Maintenant qu'on a les textures, on peut les charger dans Blender : ajoutez un nouveau matériau et liez-lui trois textures de type Image, en leur donnant des noms clairs pour vous y retrouver (voir figure suivante).

Lier un matériau à des textures

Ensuite, au moyen du bouton Load, chargez les trois images que nous venons de télécharger. On va également baisser la valeur du paramètre Filter de chaque texture au minimum, 0.1 : cela permettra d'avoir les textures les plus nettes possibles au rendu. Par ailleurs, si vous comptez utiliser les textures sur un objet de grande taille, augmentez le nombre de répétitions des textures à l'aide du paramètre Size. Également, n'oubliez pas de choisir une projection de type Cube afin que vos textures ne s'étirent pas dans tous les sens (pour ces réglages, reportez-vous à la figure suivante).

Application des textures

Veillez à avoir le même nombre de Size sur les différentes textures, sinon elles ne se superposeront plus correctement.

Maintenant, on va régler le canal de chaque texture dans l'onglet Map To.

Pour la Diffuse Map, on coche Color pour que la texture remplace la couleur de notre matériau (voir figure suivante).

Régler la Diffuse Map

Pour la Bump Map, c'est le canal Normal qu'on utilise (voir figure suivante).

Régler la Bump Map

Enfin, pour la Specular Map, c'est l'intensité de la spéculaire (voir figure suivante).

Régler la Specular Map

Vous remarquez sans doute, dans la prévisualisation du matériau, que la spécularité est trop élevée après qu'on a activé notre Specular Map (même en ayant baissé Intensity, dans l'onglet Specular, à 0.2). Pour pallier ce petit inconvénient, il faut réduire l'intensité de notre shader spéculaire à 0. Cela permettra de prendre en compte à la fois la texture et la spécularité nulle du matériau : on atténue donc l'effet trop fort de la Specular Map.

Pour les shaders, j'ai choisi de laisser ceux par défaut et d'adoucir légèrement les taches spéculaires avec Hardness (voir figure suivante).

Paramétrage des shaders

Et pour admirer le résultat de notre béton sur le cube et sur Suzanne, je vous invite à consulter les figures suivante et suivante !

Cube en béton

Suzanne en béton

Plutôt convaincant, non ?

Le SubSurface Scattering, alias SSS

Non, ma langue n'a pas fourché, vous avez bien lu « SSS » !

Ces trois lettres sont en fait l'abréviation d'une technique appelée le SubSurface Scattering (dispersion sous la surface) qui permet de simuler l'effet de la lumière qui traverse les objets.

De la lumière qui traverse des objets ?

Eh oui ! Beaucoup de matières sont translucides, et cela se remarque surtout quand l'épaisseur de l'objet est faible.

N'avez-vous jamais mis une lampe derrière vos doigts ? Les contours vont paraître rouges, traversés par la lumière.

C'est donc cet effet que simule le Subsurface Scattering et que vous pourrez utiliser sur beaucoup de matériaux comme la peau humaine, certains plastiques, le marbre, la cire, certains liquides…

Ah d'accord ! Et il se trouve où, ce « SSS » ?

Il a un onglet pour lui tout seul, dans le menu des matériaux, comme vous pouvez le voir sur la figure suivante.

Menu SubSurface Scattering

Eh oui, comme d'habitude dans Blender il y a beaucoup de boutons ! Les développeurs ont quand même pensé à nous en insérant des pré-réglages (voir figure suivante).

Le menu SubSurface Scattering contient des pré-réglages

Comme vous le voyez, on a le choix entre des modèles de lait, de peau, de patate, de marbre, de ketchup… Bien sûr, nous ne sommes pas obligés de nous en tenir à ces propriétés, nous pouvons tout à fait créer notre propre effet de « SSS ». Mais, avant de toucher à tout, faisons le tour des paramètres importants :

  • Subsurface Scattering : ce petit bouton va simplement activer ou désactiver le « SSS » sur le matériau.
  • Scale : pour bien fonctionner, le « SSS » a besoin que vous lui donniez la taille des objets.
  • Scale
  • Radius RGB : ce paramètre définit la couleur de la surface traversée par la lumière. Pour la peau humaine, c'est du rouge, donc Radius R aura une valeur élevée.
  • IOR : angle de dispersion de la lumière dans la surface. Laissez-le à 1.3 ou 1.4 et cela ira très bien.
  • Error : abaissez cette valeur pour avoir un « SSS » plus précis, mais le temps de rendu en sera rallongé.

Lorsqu'on utilise le « SSS », il faut définir une nouvelle couleur de matériau, qui remplacera celle du shader, grâce à la pipette de couleur (voir la figure suivante

Définir une nouvelle couleur

Vous pouvez maintenant tester le Subsurface Scattering tout seuls en changeant ces paramètres mais, bien souvent, les pré-réglages vous seront suffisants.

La figure suivante propose un rendu de Suzanne avec le pré-réglage Skin 2 légèrement modifié et une lampe juste derrière elle pour bien marquer l'effet !

Effet du « SSS » sur Suzanne, avec un Skin 2


En résumé

  • Soignez vos shaders ! Ils déterminent l'aspect de votre matière. Pour cela, pas de recette miracle, il faut tester et encore tester au rendu.
  • Combiner plusieurs textures sur le même matériau est une méthode très efficace : l'une va apporter de la couleur, l'autre un relief, une dernière de la spécularité. Un matériau réaliste s'obtient quasiment tout le temps de cette façon.
  • Le SSS de Blender permet de reproduire le phénomène de pénétration de la lumière dans une matière, comme cela se produit avec la peau, la cire, différents liquides et plastiques, etc.