Gérer les matériaux et les lampes pour le jeu vidéo
Différencier l’affichage Multitexture et l’affichage GLSL
Votre application peut être destinée à un smartphone, à un ordinateur portable, à une station de travail ou à une console de jeu. Aujourd’hui, tous ces produits peuvent offrir de bonnes performances graphiques. Les différences sont plutôt entre les produits haut de gamme et ceux d’entrée de gamme ou les récents et les anciens. Vous opterez pour plus ou moins de complexité en fonction de vos moyens et de ceux de votre cible. Vous pouvez distribuer une application utilisant le moteur de jeu de Blender ou un autre. Mais dans les deux cas, vous fabriquerez vos créations dans Blender. Que ce soit pour une exploitation directe de celle-ci ou dans un but de prototypage, vous prévisualiserez votre travail avec un affichage pertinent dans la vue 3D. Par défaut, l’affichage de la vue 3D est en mode Multitexture. Il s’agit d’un affichage temps réel passe-partout qui doit être bien supporté même sur du matériel ancien. L’affichage GLSL exploite les facultés OpenGL de votre machine pour de plus nombreuses fonctionnalités. Avec l’interface Blender Game, un accès plus rapide et détaillé de cette propriété de la vue est présent dans les propriétés de rendu. ...
Paramétrer un matériau en mode Blender Game
1. Choisir les types d’ombrage du matériau
Le panneau suivant Preview affiche la prévisualisation de l’aspect du matériau pour un rendu Blender Internal sur une primitive de base choisie dans la colonne de droite, comme pour Cycles.
Certaines options du rendu Blender Internal restent accessibles avec l’interface Blender Game alors qu’elles n’ont pas d’impact sur le rendu temps réel. Pour un créateur de jeu, l’usage du moteur de rendu est utile pour le rendu en texture. Par conséquent, ne vous fiez pas à la prévisualisation pour paramétrer un matériau destiné au temps réel. Scrutez plutôt la vue 3D.
Les matériaux Volume, Halo et Wire ne sont pas dans la vue 3D. Mais le type Wire est supporté par le moteur de jeu.
Ensuite, viennent les panneaux des réflexions diffuses (Diffuse) et spéculaires (Specular). Vous y définissez les types d’ombrage du matériau.
Lambert est le type d’ombrage courant, rapide. Oren-Nayar ajoute un paramètre de rugosité. Minnaert est plus précis que les autres types d’ombrage et utilise un facteur d’obscurité à la place de la rugosité. Fresnel dévie l’éclairage pour créer des matériaux translucides ; cet effet peut être utilisé pour faire une goutte d’eau. L’ombrage Toon imite le rendu des aplats d’un dessin animé ; cet effet de base peut être adouci et se rapprocher du Lambert par le slider Smooth. Plus la dureté de l’ombrage spéculaire CookTorr par défaut est atténuée, plus l’éclat spéculaire est diffusé sur la surface. Plus la dureté (Hardness) est élevée, plus l’éclat est localisé et puissant. L’ombrage Phong donnant une impression moins plastique est plus utile pour faire des métaux. Blinn offre un paramètre...
Régler les ombres dynamiques des lampes
En temps réel, tous les types de lampes sont supportés, à l’exception du type Area. Mais seulement les projecteurs Spot et les soleils Sun peuvent projeter des ombres. À la différence d’ombres précalculées issues d’un rendu en texture, ces ombres dynamiques s’adaptent en temps réel au déplacement des objets.
Dans la scène par défaut, placez un plan sous le cube et changez la lampe Point en Spot.
Le cube projette une ombre nette sur le plan. Celle-ci est réglée par le panneau Shadow des propriétés de la lampe.
Désactivez le panneau pour supprimer l’ombre.
Cochez l’option This layer Only pour limiter l’action de la lampe au calque sur lequel elle est placée.
Cochez l’option Only Shadow pour limiter l’action de la lampe à la création de cette ombre.
Remplacez la couleur noire par une autre couleur pour colorer l’ombre.
Dans l’encart Quality, vous retrouvez les paramètres de l’image tampon calculée pour créer l’ombre. Elle a par défaut une taille (Size) de 2880x2880 pixels.
Descendez la taille (Size) du tampon à 128.
L’ombre apparaît pixelisée. Mais le tampon Buffer est plus rapide à calculer. Par défaut...
Projeter une vidéo grâce à une lampe
Cette section se concentre sur les graphismes et non sur les interactions possibles dans un jeu. Cependant, il est ici nécessaire d’utiliser un script Python appelant la fonctionnalité VideoTexture et des briques logiques pour attacher ce script à une lampe.
Affichez l’écran Game Logic.
Recopiez le texte suivant, tiré d’un fichier de démonstration du site officiel, dans l’éditeur de texte.
from bge import texture as vt
from bge import logic
obj = logic.getCurrentController().owner
if not hasattr(logic, 'video'):
logic.video = vt.Texture(obj)
movie = logic.expandPath("//votre_fichier_vidéo.mp4")
logic.video.source = vt.VideoFFmpeg(movie)
logic.video.source.play()
logic.video.refresh(True)
Le fichier d’exemple est disponible à cette adresse : http://wiki.blender.org/index.php/Dev:Ref/Release_Notes/2.64/Game_Engine#Lamp_Video_Textures
Les deux premières lignes appellent les fonctions du module BGE interprétant le code. La troisième ligne désigne l’objet portant le script comme objet contrôleur lançant l’action. En dessous, le bloc indique...