Historique des modifications - Message

Message #6898

Sujet: Bug de Textures sur mes Skydomes, Maps et autres Mesh


Type Date Auteur Contenu
Dernière modification 01-09-2009 07:57:05 Ma77hTheG33k
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
Création du message 01-09-2009 07:54:51 Ma77hTheG33k
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

Retour

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