#1 

12-03-2009 18:03:40

Kaworu
Membres
Date d'inscription:
Messages: 6
IP: 90.6.117.65
Courriel

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 :

	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 :
	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


Hors ligne


#2 

12-03-2009 21:19:41

Aranoth
Membres
Avatar de Aranoth
Date d'inscription:
Messages: 242
IP: 90.55.110.109
Courriel  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é
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
571 invités en ligne
membre en ligne: -
RSS Feed