Historique des modifications - Message

Message #5770

Sujet: Problème éclairage, et fumée


Type Date Auteur Contenu
Création du message 18-01-2009 09:57:05 ayboangelus
Bonjour,

Actuellement j'ai 2 problèmes. Le premier est la gestion de mon éclairage je souhaite une lumière ambiante pas trop forte mais suffisement pour que l'on voit bien l'environnement et un éclairage dynamique plus puissant.

Mais en fait j'ai trop de lumière sur la zone éclairé et rien sur la zone d'ombre. J'ai essayé de jouer sur la luminosité de l'ombre mais je dois avoir des soucis de paramétrages. Voici mon code:

// create light
        scenegraph->setAmbientLight(video::SColorf(1.0, 1.0, 1.0,1.0));
        node = smgr->addLightSceneNode(0, core::vector3df(0,0,0),
        video::SColorf(1.0f, 0.6f, 0.7f, 1.0f), 800.0f);
        scene::ISceneNodeAnimator* anim = 0;
        scenegraph -> setShadowColor (video::SColor(200,250,250,250));
        anim = smgr->createFlyStraightAnimator (core::vector3df(-50,150,-50),core::vector3df(450,150,450),36000,true);
        node->addAnimator(anim);
        anim->drop();

        // attach billboard to light
        node = smgr->addBillboardSceneNode(node, core::dimension2d<f32>(50, 50));
        node->setMaterialFlag(video::EMF_LIGHTING, false);
        node->setMaterialType(video::EMT_TRANSPARENT_ADD_COLOR);
        node->setMaterialTexture(0, driver->getTexture("images/particlewhite.bmp"));

et enfin j'essaie de faire de la fumée pour mon volcan mais je dirais que c'est un peu la catastrophe. On m'a conseillé de passer par la gestion des particules, mais le résultat n'est pas là:

particule
        scene::IParticleSystemSceneNode* ps = smgr->addParticleSystemSceneNode(false);
        ps->setPosition(core::vector3df(0,20,0));
        ps->setScale(core::vector3df(1,1,1));
        ps->setParticleSize(core::dimension2d<f32>(20.0f, 20.0f));

        scene::IParticleEmitter* em = ps->createBoxEmitter(
                core::aabbox3d<f32>(0,0,0,0.01f,0.01f,0.01f), // emitter size
                core::vector3df(0.0f,1,0.0f),   // initial direction
                500,1000,                             // emit rate
                video::SColor(255,128,128,128),       // darkest color
                video::SColor(255,192,192,192),       // brightest color
                100,500,15,                         // min and max age, angle
                core::dimension2df(0.1f,0.1f),         // min size
                core::dimension2df(100,100));        // max size

        ps->setEmitter(em); // this grabs the emitter
        em->drop(); // so we can drop it here without deleting it

        scene::IParticleAffector* paf = ps->createFadeOutParticleAffector();

        ps->addAffector(paf); // same goes for the affector
        paf->drop();

        ps->setMaterialFlag(video::EMF_LIGHTING, false);
        ps->setMaterialFlag(video::EMF_ZWRITE_ENABLE, false);
        ps->setMaterialTexture(0, driver->getTexture("images/smoke.png"));
        ps->setMaterialType(video::EMT_TRANSPARENT_V00ERTEX_ALPHA);

Si ça en inspire certain ^^, merci d'avance pour l'aide.

Retour

Options Liens officiels Caractéristiques Statistiques Communauté
Préférences cookies
Corrections
irrlicht
irrklang
irredit
irrxml
Propulsé par Django
xhtml 1.0
css 2.1
884 membres
1440 sujets
11337 messages
Dernier membre inscrit: Saidov17
168 invités en ligne
membre en ligne: -
RSS Feed