Bonjour à tous,
J'ecris ce sujet car j'ai un souci avec mon programme. J'utilise une image .3ds deja texturé et éclairé (je crois). Mais toutes les formes en noir avec ma lumière ambiante. Et lorsque je tente une lumière diffuse les formes s'affichent en bleu pour celles qui sont à la lumiere, voici mon code:
#include "Graphics_engine.h"
using namespace irr;
Graphics_engine::Graphics_engine(){
//Cette ligne va créer un contexte d'affichage OpenGL
IrrlichtDevice *device = createDevice (video::EDT_OPENGL, core::dimension2d<s32>(800,600),32,true,true,false,0);
//On associe un driver à la fenêtre
video::IVideoDriver* driver = device->getVideoDriver ();
//Et on crée un gestionnaire de scène (scenegraph)
scene::ISceneManager *scenegraph = device->getSceneManager ();
device->getCursorControl()->setVisible(false);
// // // // La caméra // // // //
scene::ICameraSceneNode *camera = scenegraph->addCameraSceneNodeFPS (0,80.0f,100.0f);
camera->setPosition(core::vector3df(10.0, 50.0, -50.0));
// // // // la salle // // // //
scene::IAnimatedMesh *room = scenegraph->getMesh("florence.3ds");
scene::IMeshSceneNode *Nroom = scenegraph->addMeshSceneNode(room->getMesh(0));
Nroom->setMaterialFlag(video::EMF_LIGHTING, true);
// On applique une texture à la salle.
scenegraph->getMeshManipulator()->makePlanarTextureMapping(
room->getMesh(0), 0.004f);
Nroom->setMaterialTexture( 0, driver->getTexture("rockwall.bmp") );
// // // // la lumière // // // //
scenegraph->setAmbientLight(video::SColorf(1.0, 1.0, 1.0,30.0));
// scenegraph->addLightSceneNode (0, core::vector3df(0,0,0), video::SColorf(0.4f,0.4f,0.6f,0.0f), 100000.0f);
//}
//void Graphics_engine::run(){
isrun=true;
while (device->run ())
{
//On indique qu'on démarre la scène
driver->beginScene (true, true, video::SColor (255,255,255,255));
//On calcule le rendu
scenegraph->drawAll ();
//On affiche le rendu à l'écran
driver->endScene ();
}
}
merci d'avance j'ai au préalable cherché un sujet deja édité qui puisse m'aider mais je n'ai rien trouvé