Pages: 1
Bonjour, bonjour !
J'ai un petit problème au niveau des Textures...
Quand j'affiche un skydome, une map(.bsp) ou un mesh(md2, 3ds, obj) et que je leur assigne une texture, ma texture bug.
Comme un screen vaut mieux que 2000 mots
Le deuxieme, vous pouvez pas le rater !
J'attends votre aide, parce que pour faire un jeu réaliste, et bah il en prend un coup....
Merci pour votre (future) aide.
Hors ligne
C'est pas un problème de porté de la camera des fois ? Bien que l'artefact de texture que l'on voit au dessus peut laisser penser
que c'est plus subtile comme soucis.
As-tu un code à poster, c'est toujours beaucoup plus facile pour dégoter les erreurs
Hors ligne
Ma classe Window (Instanciée dans le main)
Window.cpp
#include <irr/irrlicht.h> #include "Window.h" #include "AnimatedMesh.h" #include "StaticMesh.h" #include "CameraFPS.h" #include "Spot.h" #include "gui.h" #include "Light.h" #include "ImprEcran.h" #include "Skybox.h" using namespace irr; Window::Window(){} Window::Window(int x1, int y1, int color1, bool fullscreen1){ x = x1; y = y1; color = color1; fullscreen = fullscreen1; //On crée la fenetre, le driver, le scene manager et le gui device = createDevice(video::EDT_OPENGL, core::dimension2d<irr::s32>(x,y),color,fullscreen,true,false,0); driver = device->getVideoDriver(); smgr = device->getSceneManager(); gui = device->getGUIEnvironment(); //Ensuite, on crée le Heros, le soleil, puis la camera AnimatedMesh heros("sydney.md2", "sydney.bmp", smgr, driver, true); Light soleil(1.0, 1.0, 1.0, 0, smgr); CameraFPS camera(true, smgr); //Le mesh suit la camera //heros.Nmodele->setParent(camera.camera); camera.camera->setFOV(70); /*//On crée la map device->getFileSystem()->addZipFileArchive("map-20kdm2.pk3"); irr::scene::IAnimatedMesh* mesh = smgr->getMesh("20kdm2.bsp"); irr::scene::ISceneNode* node = 0; if (mesh) node = smgr->addOctTreeSceneNode(mesh->getMesh(0)); if (node) node->setPosition(irr::core::vector3df(-1300,-144,-1249)); gui::setCursorLook(device, false); *camera.camera->setFarValue(camera.camera->getFarValue() + 4000); anim->drop(); */ scene::IAnimatedMesh * mesh = smgr->addTerrainMesh("MeshTerrain.obj", driver->createImageFromFile("rockwall.bmp"), driver->createImageFromFile("HeightmapTerrain.png")); smgr->addAnimatedMeshSceneNode(mesh); //Ajoute un Nom au dessus de Sydney gui::IGUIFont* font = gui->getFont("fontlucida.png"); smgr->addBillboardTextSceneNode(font, L"Sydney", heros.Nmodele, core::dimension2d< f32 >(15.0f, 5.0f), heros.Nmodele->getPosition()+ core::vector3df(0, 40, 0)); smgr->addSkyDomeSceneNode(driver->getTexture("sky.jpg"), 50, 2, 2, 100); //On fait les captures ImprEcran receiver(driver); device->setEventReceiver(&receiver); //Boucle de rendu while(device->run()) { core::vector3df posCam = camera.getCamLocate(); core::stringw titre = driver->getFPS(); titre += " FPS - X = "; titre += posCam.X; titre += " Y = "; titre += posCam.Y; titre += " Z = "; titre += posCam.Z; gui::setWindowCaption(titre.c_str(), device); driver->beginScene(true, true, video::SColor(255,0,163,255)); smgr->drawAll(); gui->drawAll(); driver->endScene(); } device->drop (); exit(0); } Window::~Window(){ delete device; delete driver; delete smgr; }
Window.h
#ifndef DEF_WINDOW #define DEF_WINDOW #include <irr/irrlicht.h> #include "Event.h" class Window{ //Attributs private: int x; int y; int color; bool fullscreen; irr::f32 fovy; irr::IrrlichtDevice *device; irr::video::IVideoDriver* driver; irr::scene::ISceneManager *smgr; irr::gui::IGUIEnvironment *gui; irr::scene::ITriangleSelector *selector; //Constructeurs & Destructeur public: Window(); Window(int x1, int y1, int color1, bool fullscreen1); ~Window(); }; #endif
Ma classe camera (Peut etre tu en as besoin)
CameraFPS.h
#ifndef DEF_CAMERAFPS #define DEF_CAMERAFPS #include <irr/irrlicht.h> class CameraFPS{ //Attributs private: bool canFly; public: irr::scene::ICameraSceneNode *camera; //Constructeur public: CameraFPS(); CameraFPS(bool canFly1, irr::scene::ISceneManager * smgr); ~CameraFPS(); //Methodes public: void cameraCanFly(bool canFly1 = false); irr::core::vector3df getCamLocate(); }; #endif
CameraFPS.cpp
#include <irr/irrlicht.h> #include "CameraFPS.h" using namespace irr; CameraFPS::CameraFPS(){} CameraFPS::CameraFPS(bool canFly1, irr::scene::ISceneManager * smgr){ canFly = canFly1; irr::SKeyMap keyMap[5]; //avancer keyMap[0].Action = irr::EKA_MOVE_FORWARD; keyMap[0].KeyCode = irr::KEY_KEY_Z; //reculer keyMap[1].Action = irr::EKA_MOVE_BACKWARD; keyMap[1].KeyCode = irr::KEY_KEY_S; //a gauche keyMap[2].Action = irr::EKA_STRAFE_LEFT; keyMap[2].KeyCode = irr::KEY_KEY_Q; //a droite keyMap[3].Action = irr::EKA_STRAFE_RIGHT; keyMap[3].KeyCode = irr::KEY_KEY_D; //saut keyMap[4].Action = irr::EKA_JUMP_UP; keyMap[4].KeyCode = irr::KEY_SPACE; camera = smgr->addCameraSceneNodeFPS (0, 100.0f, 300.0f, 0, keyMap, 5, canFly1, 0.4); camera->setPosition(core::vector3df(-95.560890, 99.983185, 66.212875)); } CameraFPS::~CameraFPS(){ delete camera; } core::vector3df CameraFPS::getCamLocate(){ return camera->getPosition(); }
Bon, enfait il y a d'autres classes, mais je te les passe quand tu les veux
Dernière modification par Ma77hTheG33k (01-09-2009 09:57:05)
Hors ligne
Bon, à la lumière de ton code vite fait, je ne vois pas ce qui cloche à la base.
Ceci dit, pourquoi ce camera.camera->setFOV(70); ?
As-tu sinon vérifié la validité de tes media (chemin, etc...)...
Hors ligne
Pages: 1
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 43 invités en ligne Aucun membre connecté RSS Feed |