#1 

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 wink



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


#2 

31-08-2009 17:21:25

tmyke
Administrateurs
Avatar de tmyke
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 wink


Force et sagesse...

Hors ligne


#3 

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();

};

#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


Hors ligne


#4 

02-09-2009 18:06:08

tmyke
Administrateurs
Avatar de tmyke
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


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
167 invités en ligne
membre en ligne: -
RSS Feed