Historique des modifications - Message

Message #1090

Sujet: charger un mesh animé


Type Date Auteur Contenu
Création du message 13-01-2007 15:36:57 Astroknight
#include <irrlicht.h>
#include <iostream>

using namespace irr;
#pragma comment(lib, "Irrlicht.lib")


using namespace core;
using namespace scene;
using namespace video;
using namespace io;
using namespace gui;

IrrlichtDevice *Device = 0;

int main()
{
	
	video::E_DRIVER_TYPE driverType;

	printf("Please select the driver you want for this example:\
"\\
		" (a) Direct3D 9.0c\
 (b) Direct3D 8.1\
 (c) OpenGL 1.5\
"\\
		" (d) Software Renderer\
 (e) Apfelbaum Software Renderer\
"\\
		" (f) NullDevice\
 (otherKey) exit\
\
");

	char i;
	std::cin >> i;

	switch(i)
	{
		case 'a': driverType = video::EDT_DIRECT3D9;break;
		case 'b': driverType = video::EDT_DIRECT3D8;break;
		case 'c': driverType = video::EDT_OPENGL;   break;
		case 'd': driverType = video::EDT_SOFTWARE; break;
		case 'e': driverType = video::EDT_SOFTWARE2;break;
		case 'f': driverType = video::EDT_NULL;     break;
		default: return 1;
	}	


	IrrlichtDevice *device =
		createDevice(driverType, core::dimension2d<s32>(640, 480));

	if (device == 0)
		return 1; // could not create selected driver.

	
	video::IVideoDriver* driver = device->getVideoDriver();
	scene::ISceneManager* smgr = device->getSceneManager();


// voila la partie sur laquelle je bosse, le chargement d'un objet 3d animé

	scene::IAnimatedMesh* m = Device->getSceneManager()->getMesh("Anime.MY3D");

	IAnimatedMeshSceneNode* Model = Device->getSceneManager()->addAnimatedMeshSceneNode(m);
	Model->setMaterialFlag(video::EMF_LIGHTING, false);
	Model->setDebugDataVisible(true);
	Model->setAnimationSpeed(30);

//apres ce qui suis provient directement des tuto de irrlicht

	smgr->addCameraSceneNodeFPS();

	
	device->getCursorControl()->setVisible(false);

	int lastFPS = -1;

	while(device->run())
	if (device->isWindowActive())
	{
		driver->beginScene(true, true, video::SColor(0,200,200,200));
		smgr->drawAll();
		driver->endScene();

		int fps = driver->getFPS();

		if (lastFPS != fps)
		{
			core::stringw str = L"Meta le gros boulet [";
			str += driver->getName();
			str += "] FPS:";
			str += fps;

			device->setWindowCaption(str.c_str());
			lastFPS = fps;
		}
	}

	device->drop();
	
	return 0;
}

Voila, je code sous visual C++6 et ma config :

intel M70 (centrino)
Radeon X600 64M dédiées
512 DDR2


Pour info j'arrive a compiler et executer les exemples de irrlicht, donc ma config doit suffir largement (surtout pour charger un MY3D de moins d' 1Mo), de plus le debogueur de VC6 trouve l'endroit où il y a erreur (cité plus haut) mais je ne vois pas ce qui provoque ce bug

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