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.
Hors ligne
Un conseil : n'utilise pas scenegraph->setAmbienteLight().
Utilise plutot les SLight :
// Le soleil
ILightSceneNode * Soleil = smgr->addLightSceneNode(0, vector3df(-1000,1000,0), SColorf(1.0f,1.0f,1.0f,1.0f), 10000.0f, -1);
SLight soleil_data;
soleil_data = Soleil->getLightData();
soleil_data.AmbientColor = SColor(0,25,25,25); // couleur ambiente
Soleil->setLightData(soleil_data);
refere toi a la doc pour plus de proprietes de SLight.
Hors ligne
Merci je regarde cela de suite.
Hors ligne
Merci Johnplayer pour le tuyau ca fonctionne maintenant. En fait j'avais un autre soucis c'était l'exportation de mon perso qui merdait.
Maya > obj mal géré. transformé en .b3d nickel. C'est validé je reste sur ce format.
Bonne soirée @ tous.
Hors ligne
Options | Liens officiels | Caractéristiques | Statistiques | Communauté |
---|---|---|---|---|
Corrections |
|
xhtml 1.0 css 2.1 Propulsé par FluxBB Traduit par FluxBB.fr |
882 membres 1429 sujets 11119 messages |
Dernier membre inscrit: LiseBuisson96 70 invités en ligne Aucun membre connecté RSS Feed |