Pages: 1
- Accueil forums
- » Textures/Images
- » Bug de Textures sur mes Skydomes, Maps et autres Mesh
31-08-2009 08:28:08
- Ma77hTheG33k
- Membres
- Date d'inscription:
- Messages: 13
- IP: 90.61.46.103
- Courriel
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
31-08-2009 17:21:25
- tmyke
- Administrateurs

- Date d'inscription:
- Messages: 1025
- IP: 86.218.190.71
- Courriel
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 ![]()
Force et sagesse...
Hors ligne
01-09-2009 07:54:51
- Ma77hTheG33k
- Membres
- Date d'inscription:
- Messages: 13
- IP: 90.61.40.140
- Courriel
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();
};
#endifMa 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();
};
#endifCameraFPS.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
Hors ligne
02-09-2009 18:06:08
- tmyke
- Administrateurs

- Date d'inscription:
- Messages: 1025
- IP: 90.56.66.180
- Courriel
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...)...
Force et sagesse...
Hors ligne



