Les matériaux et leurs textures sont les futures couleurs du monde de notre jeu ! Et, puisque nous devons limiter le nombre de polygones pour des raisons de performance du moteur de jeu, les matériaux et textures seront donc très importants pour habiller nos objets et personnages. Nous allons voir dans ce chapitre deux approches pour donner à nos surfaces des aspects variés et enrichir l'aspect global de notre environnement.
De manière générale, matériaux et textures sont intimement liés. Il est possible d'avoir des matériaux sans textures, mais cela limite fortement les effets visuels possibles. Par contre, il n'existe pas de texture visible sans qu'elle soit au moins attachée à un matériau.
Il est important de noter aussi que la gestion des matériaux et textures pour le Game Engine se fait différemment qu'en mode de rendu Blender classique. Les différences sont tant dans la gestion des nodes, pour ceux qui ont l'habitude d'aborder cette pratique sous cet angle, que dans les possibilités offertes par le mode de texture plus ancien, sans utilisation de nodes.
Les matériaux dans le Game Engine peuvent être définis de deux manières différentes, qui se complètent d'une certaine façon. Ceci est dû à l'historique du logiciel.
Nous allons décrire dans cette partie les différents panneaux présents dans l'onglet Material de la fenêtre Properties.
Les options Diffuse, Specularet Shading sont a priori connues. Rien de mystérieux concernant leurs utilisations, car elles ne diffèrent pas de Blender Internal ou de Blender Cycle.
Une des spécificités du mode Game Engine, c'est que nous avons maintenant un panneau Game Settings avec quelques options importantes.
Le Backface Cullingsert uniquement à calculer les faces dont la normale pointe vers la caméra. Techniquement, si l'on coche cette option, si une normale est dans le même sens que la caméra elle n'est pas affichée et donc l'objet devient transparent. On peut utiliser cette méthode pour le cas où la caméra entre dans un objet afin de ne pas avoir un écran noir.
Le paramètre Invisible, quant à lui, fait disparaître totalement le matériau en jeu et tous les objets auxquels il est appliqué.
Le bouton Textsert uniquement à afficher le matériau sur un objet texte, mais seuls les objets textes sont concernés.
Les modes d'Alpha Blend indiquent de quelle manière gérer la transparence :
Comme nous le disions plus haut, il est très rare d'avoir un matériau qui n'est pas lié à une texture. De manière générale, une texture donnera toujours au minimum une couleur plus complexe à notre objet, que simplement la présence de l'option Diffuse dans l'onglet Material.
Notez que les textures procédurales ne sont pas supportées par le Game Engine. Si vous les avez utilisées pour modifier l'apparence de votre objet, il vous faudra passer une technique nommée baking qui permet de faire la conversion de ces textures en images bitmap. Cette technique est d'ailleurs décrite au chapitre Pre-calcul des textures et de la lumière de la section Travailler sur le rendu.
Vous l'aurez compris, le travail se fera donc uniquement avec des textures image ou par une programmation plus complexe en GLSL.
Concernant les images et pour des raisons de performance, il sera toujours préférable de limiter le nombre de textures utilisées ainsi que leur taille. Par défaut, une image dans Blender est un carré de 1024 pixels de côté. Le Game Engine n'est cependant pas restreint à l'affichage d'images carrées pour les textures. Mais il est recommandé de prendre cette habitude pour faciliter les calculs liés à leur affichage. Une texture idéale sera donc un carré dont la longueur de côté, en pixel, sera une puissance de 2 (exemple: 128x128, 256x256, 512x512,…).La création des textures de type Image liées à un matériau pour le Game Engine est identique au Blender Internal, mais nécessite la connaissance de quelques subtilités pour qu'elle s'affiche correctement dans le jeu.
Pour les utilisateurs de Cycles, une petite explication s'impose. Par défaut, les matériaux du Blender Internal et du Game Engine n'utilisent pas de nodes. Donc, contrairement à Cycles, il n'y a pas un système nodal commun aux textures et aux matériaux. Dans le Node Editor, les nœuds des textures et les nœuds de matériaux sont donc différents. Ils ont chacun leur propre onglet. Le nœud Texture permet d'introduire une texture créée de façon traditionnelle et de la lier avec un nœud matériau. Il est donc impératif d'initialiser une texture à la manière de Blender Internal(avec l'onglet Texturede la fenêtreProperties) avant de pouvoir l'utiliser dans les nodes de matériaux.
De façon traditionnelle (à la manière de Blender Internal), les textures sont donc disposées dans une liste où l'ordre détermine la priorité d'une texture par rapport à une autre. Ci-dessous, voici la méthode pour ajouter une texture à cette liste :
Le panneau Mappingest configuré par défaut en mode coordonnées automatiques Generated pour mapper la texture selon une projection plane (Flat), mais une bonne pratique est d'utiliser systématiquement des coordonnées UV pour tout mesh (volume ou plan). Seule la projection de type Flat fonctionne dans le Game Engine, les autres types de projections ne sont pas supportées.
Le panneau Influence indique comment la texture va influencer les paramètres du matériau. Ce panneau ne s'affiche que si on n'utilise pas le mode node pour gérer la texture de notre matériau.
Dans notre capture d'écran, nous avons activé le slider Color et Alpha. Ce qui veut dire que notre image de texture influence l'apparence colorée de notre objet et joue aussi sur sa transparence. Nous aurions pu activer uniquement l'influence Alpha. La couleur n'aurait alors pas été affectée, juste la transparence de l'objet. Il est ainsi possible d'activer ou de désactiver un seul ou tous les réglages du panneau. Il n'est pas rare aussi d'affecter la géométrie de manière à utiliser les variations de luminosité de notre image pour simuler du relief et rendre le résultat plus réaliste.
Les autres panneaux de l'ongletTexture sont des notions supposées connues.
Depuis la version 2.72 de Blender, le mode de peinture ou Texture Paint Mode est devenu très intéressant et vous serez peut-être plus tenté de l'utiliser plutôt que de passer par un logiciel tiers pour créer vos textures.
Dans ce cas vous pourrez directement y créer vos textures.
Dans l'onglet Tools de la nouvelle colonne d'outils de ce mode, il y a un premier bouton Add simple UVs qui créera automatiquement des coordonnées UVs faisant se répéter l'image peinte sur chaque face du mesh.
Le dépliage UVs du maillage en Edit Mode sera donc toujours une phase indispensable si vous souhaitez texturer un objet plus complexe qu'un plan ou un cube.
En dessous, le menu déroulant Add Paint Slot est plus intéressant.
Il crée, paramêtre et nomme directement une texture Image avec un mapping UVs agissant sur le paramètre d'Influence choisi comme expliqué précédemment.
Dès qu'une texture est correctement paramêtrée pour être peinte; l''onglet Tool change d'aspect et n'affiche plus que le brush actif.
Pour créer une seconde texture, il faut afficher l'onglet Slots de la colonne d'outils.
Vous pouvez alors préciser l'UV Map et le Blend Type de l'influence de la future texutre, puis désormais utiliser le menu nommé Add Texture Paint Slot.
Le Painting Mode Material permet donc de peindre les textures en pensant à leur influence sur le matériau.
Cette démarche d'une texture par paramêtre sied mieux à un rendu Blender Render qu'à un jeu. Cependant, cela reste pertinent si l'on envisage d'en faire une seule texture issu d'un baking ou rendu en texture. Vous êtes toujours libre de modifier le panneau Influence après coup. La création automatique d'une texture vous facilitera le travail même si vous souhaitez l'exploiter avec les nodes. Il vous suffira de la supprimer du matériau standard avant de le changer utilisant des noeuds et de la réutiliser en tant que noeud Texture.
Si vous souhaitez peindre une image sans l'intégrer immédiatement au matériau, il faudra alors utiliser le Painting Mode Image. Dans ce cas, il faudra ensuite faire le paramêtrage de la texture vous-même comme indiqué précédemment.
Alors au lieu de charger la texture en cliquant sur le bouton Open, il suffira de la récupérer depuis la liste des images présentes dans le fichier .blend à côté du bouton New.
Pour gérer nos matériaux et textures, nous pouvons aussi utiliser les nodes: une pratique qui tend à se généralise peu à peu dans l'ensemble de Blender. Nous vous encourageons d'ailleurs à utiliser cette méthode parce que nous pensons que les nœuds de matériaux exposent une arborescence de matériau et textures plus simple à comprendre que les relations établies par l'ordre de la liste et les panneaux Influencede chaque texture (méthode plus attachée à une pratique de Blender 2.4x).
Nous tenons à rappeler que cette façon de travailler ne fonctionne que si vous avez GLSL activé.Voici un exemple simple de matériel fait avec les nodes.
Ici, un nodeRGB envoie une donnée de couleur vers l'entrée couleur du matériau, dont la sortie nourrit un nodeOutput qui donnera le résultat sur l'objet.
Voici, en détail, la procédure pour créer des nodes de matériaux et les lier avec des textures :
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.