Sites


Blender pour le jeu video

Matériaux et textures avancés

Dans ce chapitre, nous verrons quelques effets avancés liés aux matériaux et textures. Il s'agit principalement de jouer sur des effets de relief, de transparence ou de brillance de nos objets afin de donner plus de réalisme ou de corps à notre environnement. Ces effets sont généralement utilisés pour palier à la simplification de la géométrie due à notre besoin de performance. C'est aussi un des canaux importants de l'expression du style graphique du jeu.

Nous verrons 3 aspects importants combinant propriétés des matériaux et usage avancés des textures : les effets de brillance, de relief et de transparence.

Vous devez avoir compris le chapitre précédent, Introduction aux matériaux et textures, pour pouvoir suivre celui-ci.

Gérer la brillance ou les reflets de lumière sur notre matériau

Le canal spéculaire décrit la brillance. Il peut s'agir d'une couleur uniforme (pour un matériau à la surface régulière, plus ou moins brillante), ou d'une image en niveaux de gris servant à distinguer les zones mates (caoutchouc, tissu…) des zones brillantes (métal, verre, graisse…), avec toutes les nuances intermédiaires (caoutchouc mouillé, métal sale…).

On peut l'obtenir généralement en se basant sur la texture de couleur, que l'on modifie dans un éditeur d'images comme Gimp ou Krita.

Dans l'exemple suivant, une texture agit sur le canal spéculaire pour que le cube brille uniquement dans certaines zones.

En méthode Blender Internal(pas d'utilisation de nodes), il faut définir dans l'ongletTexture de notre matériau, ajouter une texture dans notre liste qui n'a d'influence que sur les options sous Specular dans le panneau Influence.

En mode node, ajoutez un nœud Texture qui se connectera uniquement à notre entrée Specular de notre nœudMaterial.

Donner du relief

Comme nous travaillons sur une application temps réel, les performances sont une question cruciale. Nous utiliserons donc des maillages composés de peu de faces (low poly), et par conséquent peu détaillés. Pour pallier ceci, nous pouvons simuler un faible relief à l'aide d'une texture de relief. C'est un effet très intéressant, car il utilise peu de ressources, pour un résultat qui peut être saisissant s'il est bien utilisé.

Une texture de relief (Bump map) est une image en niveau de gris qui contient des informations de profondeur : si les pixels sombres sont des "creux", les pixels clairs sont des "bosses". L'effet convient bien à des reliefs peu prononcés et dont la précision n'est pas fondamentale (une route goudronnée, du tissu...).

On l'obtient généralement en se basant sur la texture de couleur, que l'on modifie dans un éditeur d'image comme Gimp.

A gauche, la texture Bump. Elle est utilisée dans le menhir de gauche et est absente dans le cas du menhir de droite.

Une Normal Map est un peu plus complexe. Elle décrit de manière très précise le relief de l’objet, elle permet vraiment de donner l'illusion d'un maillage dense. On l'obtient généralement en comparant un modèle low poly et un modèle high poly (cette technique est traitée dans le chapitre Optimisation de la texture et de la lumière : Baking), ou à défaut, à partir d'une bump map et d'un outil comme Insane Bump (plugin Gimp).

Dans le BGE, elles s'utilisent de la même manière que pour un matériau de rendu, soit en utilisant un node texture nourrissant une entrée Normals d'un matériau, soit de manière traditionnelle en cochant la case Normal (panneau Textures / Influence / Geometry) et en réglant la puissance de l'effet. Pour une normal map, il faudra également, dans Textures / Image Sampling, cocher Normal Map.


La Normal Map est ici récupérée par baking de plusieurs objets sur l'objet actif (le plan) grâce l'option Selected to Active du panneau Baking dans l'onglet Render.

L'utilisation de la transparence

Outre l'usage évident de transparence pour imiter des matériaux de type eau, verre, etc., la transparence est utilisée dans les jeux vidéo pour simplifier la géométrie. On peut par exemple simuler une forme complexe plane par un plan carré et une texture partiellement transparente.

C'est une façon d'éluder la création de géométrie pour définir une forme. Dans un décor naturel, les arbres, les feuilles, les grillages, par exemple impliqueraient de créer une géométrie très lourde, mais ramenés à des plans texturés avec de la transparence, un projet d'un décor familier devient réalisable avec beaucoup moins de faces.



Le terme Alpha (en référence à la couche ou au canal Alpha d'une image) où qu'il soit mentionné dans l'interface de Blender est relatif à de la transparence. Dans l'UV/Image Editor, vous pouvez afficher une image avec sa transparence, sans sa transparence ou uniquement sa couche Alpha. Vous pouvez la modifier avec les outils de peinture. Plutôt que de dédier une image en noir et blanc à la transparence, l'usage le plus fréquent est d'utiliser la couche Alpha de l'image. Le réglage de la transparence de façon traditionnelle n'est pas évident car les options par défaut n'aident pas ou sont disséminées dans différents recoins de l'interface. Pour information, la méthode traditionnelle implique de cocher la case du panneau Transparency dans l'onglet des matériaux. Les boutons pour les différents types de transparence sont relatifs au Blender Internal. Seule, la glissière Alpha a une importance sur la transparence globale du matériau. Passez sa valeur à 0.

Dans l'onglet des textures, pour qu'une texture modifie la transparence, il faudra activer également une glissière Alpha dans le panneau Influence. Par défaut, le blend mode de ce panneau est Mix. La valeur de la glissière Alpha du matériau est à adapter au blend mode utilisé. Avec un blend mode Mix, la valeur à indiquer est zéro car les valeurs de la couche alpha de l'image vont s'ajouter à la valeur Alpha nulle du matériau. Mais pour un blend mode Multiply, il faudra cocher l'option RGB to Intensity et utiliser une valeur Alpha du matériau égale à 1. (Si vous ouvrez de très vieux fichiers créés avant l'apparition du blend mode Mix, il est probable que le blend mode utilisé soit Multiply). La méthode nodale permet de faire abstraction du blend mode et d'une activation du panneau de la transparence dans l'onglet du matériau. Il suffit simplement d'utiliser un nœud Extended Material possédant un socket d'entrée Alpha au lieu du nœud Material par défaut qui ne comprend qu'une sortie Alpha.

Pour créer un nouveau matériau pour ce nœud, cliquez sur le bouton New du noeud Extended Material. Déterminez les coordonnées de la texture en connectant la sortie UV d'un noeud Geometry à l'entrée Vector du noeud Texture. Faites agir la texture sur la transparence du matériau. Dans le cas où vous souhaitez utiliser la couche alpha d'une image, connectez la sortie Value du nœud Texture à l'entrée alpha du nœud  Extended Material. Dans le cas où vous utilisez la texture comme un masque noir et blanc à partir d'un image sans couche alpha, connectez la sortie Color du nœud Texture à l'entrée alpha du nœud Extended Material.

Attention : pour que la transparence du matériau soit effective, il faut absolument que la sortie alpha du nœud Extended Material soit connectée à l'entrée alpha du nœud Output.

Bien que l'effet de transparence soit effectif dans la prévisualisation (preview) du matériau, il n'est pas flagrant dans le viewport. C'est à cause du réglage par défaut de l'option alpha blend du panneau Game Settings sur le choix Opaque (ignorant volontairement la transparence pour garder toutes les faces du mesh opaques).

Dans l'onglet du matériau, ce panneau Game Settings possède un paramètre Alpha blend mode à modifier pour adapter la superposition d'objets semi-transparents.

Passez ce réglage sur le choix Alpha Blend pour avoir une transparence correspondante à la texture.
Ce choix respecte les transitions douces. Contrairement à celui-ci, le choix Alpha Clip n'accepte pas les valeurs intermédiaires et force une transition abrupte entre une partie totalement transparente ou totalement opaque. Lorsque des surfaces se chevauchent, le choix Alpha Sort donnera un effet de profondeur, d'épaisseur en éclairant plus fortement les éléments les plus proches. Pour générer des effets lumineux comme du feu, des sprites lumineux peuvent se superposer et alors le choix Add permettra d'augmenter l'intensité lumineuse d'après la transparence aussi appelée de la transparence additive.

A présent, il reste une différence entre le résultat visible dans la vue 3D et le résultat dans le viewport du jeu. La surface n'est visible que d'un côté pour accélérer l'affichage. Par défaut, l'option Backface Culling du matériau est activée. Il faudra alors la désactiver pour créer un élément de décor fixe visible des deux côtés comme un grillage. Pour accorder la vue 3D au choix fait pour un matériau, la même option Backface Culling est accessible dans le panneau Shading des propriétés de la vue 3D.

Les autres paramêtres de ce panneau ne sont pas directement en relation avec la transparence. Cependant lorsque l'on créé un plan texturé, c'est soit pour faire un sprite soit un billboard toujours dirigé dans la même direction (souvent vers la caméra). Le menu Face Orientations offre plusieurs choix de direction automatique.

Il y a une erreur de communication avec le serveur Booktype. Nous ne savons pas actuellement où est le problème.

Vous devriez rafraîchir la page.