Bonjour,
J'ai un problem avec les texture
Il ne les affiche pas, les objet restent noir
voivi le code :
int main(void)
{
IrrlichtDevice* device = createDevice(video::EDT_OPENGL, core::dimension2d<s32>(640,480),32,false,true,false,0);
video::IVideoDriver* driver = device->getVideoDriver ();
scene::ISceneManager *scenegraph = device->getSceneManager ();
//On rend invisible le curseur
device->getCursorControl ()-> setVisible (true);
//On recupere un pointeur vers la gui
IGUIEnvironment *gui = device->getGUIEnvironment();
irr::core::vector3df posCam;
wchar_t titre[100];
scene::IAnimatedMesh* sol;
sol = scenegraph->getMesh("OBJET/sol.3ds");
scene::ImeshSceneNode *Nsol = scenegraph->addMeshSceneNode(sol->getMesh(0));
Nsol->setPosition(irr::core::vector3df(0,0,0));
scene::IAnimatedMesh* cube;
cube = scenegraph->getMesh("OBJET/cube.3ds");
scene::ImeshSceneNode *Ncube = scenegraph->addMeshSceneNode(cube->getMesh(0));
Ncube->setPosition(irr::core::vector3df(0,5,0));
//On modifie les propriétés de Sydney
Ncube->setMaterialTexture( 0, driver->getTexture("IMAGE/sol.jpg") );
//La caméra
ICameraSceneNode *camera;
camera = scenegraph->addCameraSceneNodeFPS (0,100.0f,20.0f, -1, 0, 5, true, 0.4);
camera->setPosition(irr::core::vector3df(4, 1, 4));
//lumiere
irr::scene::ILightSceneNode* lumiere;
lumiere = scenegraph->addLightSceneNode(camera, irr::core::vector3df(0,0,0),
irr::video::SColorf(50.0f, 50.0f, 50.0f, 10.0f), 5.0f);
irr::scene::ITriangleSelector *selectorCube = 0;
if(Ncube)
{
selectorCube = scenegraph->createOctTreeTriangleSelector(cube->getMesh(0), Ncube);
Ncube->setTriangleSelector(selectorCube);
selectorCube->drop();
}
irr::scene::ITriangleSelector *selectorSol = 0;
if(Nsol)
{
selectorSol = scenegraph->createOctTreeTriangleSelector(sol->getMesh(0), Nsol);
Nsol->setTriangleSelector(selectorSol);
selectorSol->drop();
}
IMetaTriangleSelector* metaSelectorSol = scenegraph->createMetaTriangleSelector();
metaSelectorSol->addTriangleSelector(selectorSol);
scene::ISceneNodeAnimatorCollisionResponse* gestionSol = scenegraph->createCollisionResponseAnimator(metaSelectorSol, camera,vector3df(500,500, 500),vector3df(0,-100.0f, 0), vector3df(0,0, 0), 0.0005f);
camera->addAnimator(gestionSol);
//La boucle de rendu
while (device->run())
{
posCam = camera->getPosition();
swprintf(titre, L"FPS : %d (mode debug) | PosCam : "
"X : %f Y : %f Z : %f", driver->getFPS(), posCam.X, posCam.Y, posCam.Z);
device->setWindowCaption(titre);
driver->beginScene(true,true,video::SColor(0,0,0,0));
scenegraph->drawAll ();
driver->endScene ();
}
device->drop ();
return 0;
}
J'ai essayé différent format d'objet et Image mais c'est toujours pareille
help me please
Hors ligne
Des objets noirs c'est typiquement un problème de lumière.
Je vois que tu as ajouté une lumière à ta scène, c'est déjà ça, mais peut être est-elle mal calibrée et n'éclaire en réalité rien.
Hors ligne
J'est testé avec une lumiere qui sui la caméra
j'ai tourné autour des objet mais rien du tou
Hors ligne
T'as essayé de désactiver la lumière sur tes objets ? Histoire qu'on sache si ça vient de là.
Hors ligne
essey avec sa pour ta lumiere ^^
ILightSceneNode* light = smgr->addLightSceneNode(0, core::vector3df(0,0,0),SColorf(255, 255, 255, 255), 1000.0f); /** 1000.0f = distance d'effect pour la lumiere je te conseille entre 80.f et 150.f pour ton truc ^^" **/
SLight ldata = light->getLightData();
ldata.AmbientColor = video::SColorf(0.2,0.2,0.2);
ldata.DiffuseColor = video::SColorf(1,1,1);
ldata.Type = ELT_DIRECTIONAL;
ldata.Position = core::vector3df(-10,5,-5);
light->setLightData(ldata);
Hors ligne
même avec ca ya toujours pas les textures
C'est comme si elle été pas coller sur les objet
Si je prend des fichier BMP il me met des couleur unie qui non rien a voir
#include <irrlicht.h>
#include "Const.h"
#include "CEventReceiver.h"
using namespace irr;
using namespace core;
using namespace scene;
using namespace video;
using namespace io;
using namespace gui;
int main(void)
{
IrrlichtDevice* device = createDevice(video::EDT_OPENGL, core::dimension2d<s32>(640,480),32,false,true,false,0);
video::IVideoDriver* driver = device->getVideoDriver ();
scene::ISceneManager *scenegraph = device->getSceneManager ();
//On rend invisible le curseur
device->getCursorControl ()-> setVisible (true);
//On recupere un pointeur vers la gui
IGUIEnvironment *gui = device->getGUIEnvironment();
irr::core::vector3df posCam;
wchar_t titre[100];
scene::IAnimatedMesh* sol;
sol = scenegraph->getMesh("OBJET/sol.3ds");
scene::ImeshSceneNode *Nsol = scenegraph->addMeshSceneNode(sol->getMesh(0));
Nsol->setPosition(irr::core::vector3df(0,0,0));
Nsol->setMaterialTexture( 0, driver->getTexture("IMAGE/sol2.bmp") );
scene::IAnimatedMesh* cube;
cube = scenegraph->getMesh("OBJET/cube.3ds");
scene::ImeshSceneNode *Ncube = scenegraph->addMeshSceneNode(cube->getMesh(0));
Ncube->setPosition(irr::core::vector3df(0,5,0));
//On modifie les propriétés de Sydney
Ncube->setMaterialTexture( 0, driver->getTexture("IMAGE/face.bmp") );
//La caméra
ICameraSceneNode *camera;
camera = scenegraph->addCameraSceneNodeFPS (0,100.0f,20.0f, -1, 0, 5, true, 0.4);
camera->setPosition(irr::core::vector3df(4, 1, 4));
//lumiere
irr::scene::ILightSceneNode* lumiere;
lumiere = scenegraph->addLightSceneNode(0,irr::core::vector3df(4,3,4),irr::video::SColorf(1.0f, 1.0f, 1.0f), 1000.0f);
irr::scene::ITriangleSelector *selectorCube = 0;
if(Ncube)
{
selectorCube = scenegraph->createOctTreeTriangleSelector(cube->getMesh(0), Ncube);
Ncube->setTriangleSelector(selectorCube);
selectorCube->drop();
}
irr::scene::ITriangleSelector *selectorSol = 0;
if(Nsol)
{
selectorSol = scenegraph->createOctTreeTriangleSelector(sol->getMesh(0), Nsol);
Nsol->setTriangleSelector(selectorSol);
selectorSol->drop();
}
IMetaTriangleSelector* metaSelectorSol = scenegraph->createMetaTriangleSelector();
metaSelectorSol->addTriangleSelector(selectorSol);
scene::ISceneNodeAnimatorCollisionResponse* gestionSol = scenegraph->createCollisionResponseAnimator(metaSelectorSol, camera,vector3df(500,500, 500),vector3df(0,-100.0f, 0), vector3df(0,0, 0), 0.0005f);
camera->addAnimator(gestionSol);
//La boucle de rendu
while (device->run())
{
posCam = camera->getPosition();
swprintf(titre, L"FPS : %d (mode debug) | PosCam : "
"X : %f Y : %f Z : %f", driver->getFPS(), posCam.X, posCam.Y, posCam.Z);
device->setWindowCaption(titre);
driver->beginScene(true,true,video::SColor(0,0,0,0));
scenegraph->drawAll ();
driver->endScene ();
}
device->drop ();
return 0;
}
Hors ligne
Si je prend des fichier BMP il me met des couleur unie qui non rien a voir
Ca doit venir des coordonnées de texture alors, essayes de voir ton modèle dans le MeshViewer d'Irrlicht, pour voir si ça vient de ton code ou du modèle en lui même.
Hors ligne
J'ai deux fichier un vert unie et une texture de sol
ils sont tous les deux dans IMAGE/
si je met le vert sur le cube il s'affiche mais pas la texture
aucun des deux ne s'affiche sur le sol
Hors ligne
Tu pourrais utiliser le BBCode pour tes codes source
Les balises de BBcode.
Hors ligne
C'est bon j'ai trouvé
si ma camera, au démarage est trop proche du au niveau du sol (a moins de 1) le sol ne s'affiche pas
et j'ai pris d'autre texture en JPG
merci pour vos réponses
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 6 invités en ligne Aucun membre connecté RSS Feed |