Téléchargez la démo et le code source
Retour à la index du tutoriel
Dans le dernier tutoriel, nous avons ajouté un modèle 3D à l'écran. Cependant, parce qu'il n'y avait pas de lumière mis en place, nous avons dû désactiver l'éclairage sur le modèle tout à fait, sinon il aurait paru noir. Dans ce tutoriel, nous allons ajouter une lumière à la scène
ApplicationManager.h /ApplicationManager.cpp
Le ApplicationManager gagne deux nouvelles variables:. Lumineuse 1 et panneau d'affichage.
La lumière est un point dans la scène qui est une source de lumière. Il est lui-même pas directement visible - la lumière est visible sur la surface d'un modèle 3D. Donc, nous pouvons voir où la lumière est dans la scène que nous allons créer un panneau d'affichage, qui est un rectangle plat qui fait toujours face à la caméra, et attachons la lumière comme un enfant du panneau d'affichage.
En fixant la lumière, comme un enfant du panneau d'affichage la lumière se déplace où jamais les mouvements Billboard.
Ce type de pièce jointe parent /enfant est assez fréquent dans les moteurs 3D, car il permet à un groupe d'objets à être modifié à la fois. Vous pouvez utiliser ceci pour joindre une épée à une main de joueurs par exemple, puis l'épée souhaitez coller avec le joueur comme il se déplaçait.
Dans la fonction de démarrage nous faire une petite modification à l'appel aux addCameraSceneNodeFPS fonction. Le ninja modèle 3D est assez petite, et la caméra se déplace trop vite par rapport au modèle.
Nous avons donc ici de substitution certains des paramètres par défaut pour ralentir la caméra vers le bas.
Nous ajouter le modèle 3D de ninja pour la scène en utilisant le même code que dans le dernier tutoriel. La seule différence est que nous maintenant plus désactiver l'éclairage.
Nous créons alors un nouveau panneau d'affichage en appelant la fonction ISceneManager addBillboardSceneNode. Encore une fois nous forcer certains des paramètres par défaut pour rendre le panneau d'affichage un peu plus petit et plus en ligne avec la taille du ninja modèle 3D.
Nous appelons la fonction setMaterialType et fournissons le drapeau de EMT_TRANSPARENT_ADD_COLOR pour indiquer que les couleurs dans la texture affectée à la panneau sera ajouté à la scène, ce qui rend efficacement les parties noires de la texture transparente.
La fonction de setMaterialTexture est ensuite utilisée pour affecter une texture. Le