bonjour,
voila j'ai un probleme de chargement d'une texture sous forme d'une image (jpg) et l'erreur que j'ai c'est
"could not open file of texture : bata1.jpg"
et voila comment j'ai charge la texture dans mon code source
// projetblend.cpp : définit le point d'entrée pour l'application console.
//
#include "stdafx.h"
#include "irrlicht.h"
int main (void)
{
irr::IrrlichtDevice* device = irr::createDevice(irr::video::EDT_OPENGL,
irr::core::dimension2d<irr::s32>(800,600),32,false,true,false);
irr::video::IVideoDriver* driver = device->getVideoDriver ();
irr::scene::ISceneManager *sceneManager = device->getSceneManager ();
irr::scene::IAnimatedMeshMD2* Bat_base; // chargement du batiment
Bat_base = (irr::scene::IAnimatedMeshMD2*)sceneManager->getMesh("bata1.md2");
irr::scene::IAnimatedMeshSceneNode* NBat_base = // creation du noeud
sceneManager->addAnimatedMeshSceneNode(Bat_base);
NBat_base->setMaterialFlag( // modification des
irr::video::EMF_LIGHTING, true);
irr::video::ITexture *image = driver->getTexture ("bata1.jpg");
irr::scene::ICameraSceneNode *camera = // creation de la camera
sceneManager->addCameraSceneNodeFPS (
0,100.0f,300.0f);
while (device->run()) // la boucle de rendu
{
driver->beginScene(true,true,
irr::video::SColor(0,200,200,200));
driver->draw2DImage(image, // dessin de l'image
irr::core::position2d<irr::s32>(20,20),
irr::core::rect<irr::s32>(0,0,300,300),
0,
irr::video::SColor (255,255,255,255),
true);
sceneManager->drawAll ();
driver->endScene ();
}
device->drop ();
return 0;
}
merci pour votre aide
Hors ligne
Si tu à lancer ton programme à partir de ton IDE sa ne va pas marcher (en tous cas sur code::block, après les autres....), car pour une raison que je ne connais pas encore il ne le trouve pas, alors soit du donne un chemins absolus, soit lance ton programme toi même.
Et aussi je ne comprend pas très bien cette : "Bat_base = (irr::scene::IAnimatedMeshMD2*)sceneManager->getMesh("bata1.md2");"
Pourquoi ne pas faire : irr::scene::IAnimatedMeshMD2* Bat_base = sceneManager->getMesh("bata1.md2");
Et ton image "bata1.jpg" est une texture ? Parce que si c'est une texture tu viens de l'afficher dans le "vide", pour faire plus simple elle ne seras pas charger comme une texture, je te conseil de faire (si bien compris ton code) :
NBat_base->setMaterialTexture(0, driver->getTexture("bata1.jpg"));
En espèrent ne pas avoir écrit de la *****, et en espèrent t'avoir aider.
Hors ligne
Bonsoir à vous.
Alors, en fait je pense que Gille veut afficher une image 2D dans son monde 3D, jusque là tout va bien.
Le "could not open file of texture : bata1.jpg" signifie bien qu'il y a un problème de chemin de texture OU de nom de fichier.
Souvent, il faut mettre l'image dans le même répertoire que la génération de ton "MonProg.exe", par défaut le répertoire d'exécution est le même que celui de la génération de l'exécutable lui même.
Par contre, tu peux avoir d'autres configuration possibles.
Soit il faut que tu vérifies ton répertoire d'exécution configuré dans ton code block ou visual c++ ou encore QtCreator ou encore Eclipse ...
*=*
Dernière modification par Gehogor (11-02-2011 23:49:31)
Hors ligne
Soit il faut que tu vérifies ton répertoire d'exécution configuré dans ton code block ou visual c++ ou encore QtCreator ou encore Eclipse ...
Pour Code Block c'est :
- clique droit sur le projet (sous "Workspace")
-" Proprieties..."
- dans l'onglet "Build Targets"
- pour "Execution working dir"
- mettre bin\Debug\
N'oubliez pas de copier le .dll à coté de du .exe sinon ça fonctionne pas.
Ce n'est pas obligatoire pour le mode Release, car en realease on ne lance pas le .exe dans l'IDE.
PS : Il est très important de connaitre les options de configuration d'un projet, sinon lors d'un projet complexe (plusieurs bibliothèques dans un même projet) on avance pas.
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 25 invités en ligne Aucun membre connecté RSS Feed |