#0 

12-03-2009 19:03:40

Kaworu
Petit nouveau
Date d'inscription: 12-05-2008
Messages: 6

Bonjour,

Je fais des essais depuis pas mal de temps, mais je persiste a avoir des problèmes avec les ILightSceneNode.
Je voudrais créer une source lumineuse qui projette des ombres.

Voila le code qui ajoute une source lumineuse :

Code:

    SLight light;
    light.Type = video::ELT_POINT;
    light.Radius= 850.0f;
    light.AmbientColor = video::SColorf(1.0f,1.0f,1.0f,1);
    light.SpecularColor= video::SColorf(0.4f,0.0f,0.0f,1);
    light.DiffuseColor = video::SColorf(1.0f,1.0f,1.0f,1);
    light.CastShadows = true;
    lumiere = smgr->addLightSceneNode(0, vector3df(0, 600, 0), SColorf(1, 1, 1), 1500);
    lumiere->setLightData(light);
    lumiere->enableCastShadow(true);

Le code du mesh :

Code:

    mesh = Interface::getSmgr()->getMesh(cheminMesh.c_str());
    node = Interface::getSmgr()->addAnimatedMeshSceneNode(mesh, 0, -1, vector3df(x*20, 0, y*20));
    node->setMaterialTexture(0, Interface::getDriver()->getTexture(cheminTexture.c_str()));
    node->addShadowVolumeSceneNode();

il y a un sol composé de plusieurs mesh plats sous ce dernier, c'est sur celui ci que les ombres devraient être visible.
Lorsque j'enlève la ligne "lumiere->setLightData(light);" le rendu est meilleur, les ombres ne sont pas projetées mais le mesh est noir sur la partie qui n'est pas éclairée.
Dans le cas contraire le mesh prends juste la couleur de la teinte, pas uniformément, mais il est entièrement éclairé.

Autre chose : la lumière semble éclairer les cotés qui devraient être sombres, en changeant la valeur de la lumière ambiante par light.AmbientColor = video::SColorf(1.0f,1.0f,1.0f,1);
j'obtiens :

(Je suis certain des coordonnées, le sol est constitué de IAnimatedMeshSceneNode)

Auriez vous des astuces pour pouvoir projeter les ombres correctement ? wink

Dernière modification par Kaworu (12-03-2009 19:51:31)

Hors ligne


#1 

12-03-2009 22:19:41

Aranoth
Abonné
Lieu: Toulouse
Date d'inscription: 25-09-2006
Messages: 242
Site web

La lumière ne projette pas d'ombre

Il existe plusieurs techniques pour ça, l'une d'elles utilise le Stencil buffer : http://irrlicht.sourceforge.net/docu/example008.html

Hors ligne


Options Liens officiels Caractéristiques Statistiques Communauté
Corrections
irrlicht
irrklang
irredit
irrxml
xhtml 1.0
css 2.1
Propulsé par FluxBB
Traduit par FluxBB.fr
883 membres
1429 sujets
11121 messages
Dernier membre inscrit: Saidov17
124 invités en ligne
Aucun membre connecté
RSS Feed