martes, 7 de abril de 2015

Manipulando la mesh en Irrlicht


#include <irrlicht.h>

//los namespace para definir funciones de irrlicht
using namespace irr;
using namespace core;
using namespace video;
using namespace scene;

#if defined(_MSC_VER)
#pragma comment(lib, "Irrlicht.lib")
#endif

int main()
{
 //define un device para la pantalla
 IrrlichtDevice *device = createDevice(EDT_OPENGL, dimension2d<u32>(640, 480), 16, false,
  false, false, 0);

 //en caso de error
 if (!device)
  return 1;

 //Creo un driver de video
 IVideoDriver *driver = device->getVideoDriver();

 //Creo una manejador de escena
 ISceneManager *scene = device->getSceneManager();

 //creo mi mesh y le paso mi mesh de tipo obj, collada, md2 , md3
 IMesh *mesh = scene->getMesh("sydney.md2");

 //Creo un nodo
 IMeshSceneNode *node = scene->addMeshSceneNode(mesh);

 if (node)
 {
  //Agrego mi textura e iluminacion
  node->setMaterialFlag(EMF_LIGHTING, false);
  node->setMaterialTexture(0, driver->getTexture("sydney.bmp"));

  //Manejo la transformacion de mi mesh que son rotar, escalar y mover
  node->setRotation(vector3df(0.f , -70.f , 0.f));
  node->setPosition(vector3df(10.f , -10.f , 0.f));
  node->setScale(vector3df(0.5f, 1.4f, 1.f));
 }

 //agrego una vista o camara
 scene->addCameraSceneNode(0, vector3df(0, 30, -40) , vector3df( 0 , 5 , 0));

 //Gameloop
 while (device->run())
 {
  driver->beginScene(true, true, SColor(255,255,255,255));
  scene->drawAll();
  driver->endScene();
 }

 //cerrar device
 device->drop();

 return 0;
}



No hay comentarios:

Publicar un comentario