Partage
  • Partager sur Facebook
  • Partager sur Twitter

[IRRLICHT] Lumière ambiante

2 janvier 2009 à 12:56:59

Bonjour à tous,

Je suis en train de suivre le tutoriel du site écrit par Kevin Leonhart , à propos d'irrlicht, j'en suis au chapitre sur les lumière, donc je test le code source pour la lumière ambiante, le compilateur me renvoit une erreur, comme quoi irr::scene::ISceneManager n'a aucun membre nommée setAmbientLight.

J'ai vérifier dans la doc officiel, et sa y est bien, donc je comprend pas d'où vient l'erreur, je vous donne les sources :

#include <iostream>
#include <IRR/irrlicht.h>

using namespace irr;

int main(void)
{

    IrrlichtDevice* device = createDevice(video::EDT_OPENGL, core::dimension2d<s32>(640,480),32,false,false,false);
    video::IVideoDriver* driver = device->getVideoDriver ();
    scene::ISceneManager *scenegraph = device->getSceneManager (); 

    device->getCursorControl ()-> setVisible (false);

    scene::IAnimatedMesh* modele = scenegraph->getMesh("sydney.md2"); 
    scene::IAnimatedMeshSceneNode* Nmodele = scenegraph->addAnimatedMeshSceneNode(modele);

    //texturage de sydney
    Nmodele->setMaterialFlag(video::EMF_LIGHTING, true); 
    Nmodele->setMaterialTexture( 0, driver->getTexture("sydney.bmp") ); 


    Nmodele->setMaterialFlag(video::EMF_WIREFRAME, false); 
    Nmodele->setMaterialFlag(video::EMF_POINTCLOUD, false);
    Nmodele->setMaterialFlag(video::EMF_FOG_ENABLE, false);

    scene::IAnimatedMesh *room = scenegraph->getMesh("room.3ds");
    scene::IMeshSceneNode *Nroom = scenegraph->addMeshSceneNode(room->getMesh(0));


    Nroom->setMaterialFlag(video::EMF_LIGHTING, true);
    scenegraph->getMeshManipulator()->makePlanarTextureMapping(room->getMesh(0), 0.004f);
    Nroom->setMaterialTexture( 0, driver->getTexture("rockwall.bmp") );



    driver->setFog(video::SColor(0,255,0,0), false, 2.0,40.0,0.01, false);
                                                                        

    scene::ICameraSceneNode *camera = scenegraph->addCameraSceneNodeFPS (0,80.0f,100.0f);
    camera->setPosition(core::vector3df(10.0, 50.0, -50.0));

    //L'ERREUR EST ICI
    scenegraph->setAmbientLight(video::SColorf(1.0, 1.0, 1.0,0.0));

    while (device->run())
    {
        driver->beginScene(true,true,video::SColor(255,255,255,255));
        scenegraph->drawAll ();
        driver->endScene ();
    }

    device->drop ();
    return 0;
}


Merci beaucoup d'avance !
  • Partager sur Facebook
  • Partager sur Twitter
2 janvier 2009 à 13:56:56

quellle version de irrlicht possede tu?
  • Partager sur Facebook
  • Partager sur Twitter
2 janvier 2009 à 14:22:10

Hello,

la version 1.2, mais je vais mettre la 1.5 tout à l'heure
  • Partager sur Facebook
  • Partager sur Twitter
2 janvier 2009 à 16:29:06

Sinon essaye de mettre une simple lumiere et de mettre un rayon suffisement grand pour englober tout ton jeu (un jour où tu programmera tes propres truc).

Bonne chance pour ton apprentissage.
  • Partager sur Facebook
  • Partager sur Twitter
3 janvier 2009 à 11:34:16

merci à tous,

J'ai mi la 1.5 d'Irrlicht, et effectivement c'était la version ^^ .

@chem : Je préfère passer à la 1.5, merci quand même !
  • Partager sur Facebook
  • Partager sur Twitter
4 janvier 2009 à 8:33:47

:colere: Te fous pas de moi !! J'ai toujours utilisé la 1.2 je vais pas changer maintenant.
  • Partager sur Facebook
  • Partager sur Twitter
Anonyme
4 janvier 2009 à 11:16:43

Citation : Chem

:colere: Te fous pas de moi !! J'ai toujours utilisé la 1.2 je vais pas changer maintenant.


Pourrais-tu être un peu plus aimable ?
Je ne vois pas pourquoi tu agresses les gens comme ça.

Au passage, je ferme ce topic dont thealone semble satisfait.
  • Partager sur Facebook
  • Partager sur Twitter