Tengo el siguiente código:¿Por qué se recortan triángulos en esta malla?
#include <irrlicht.h>
using namespace irr;
using namespace core;
using namespace scene;
using namespace video;
using namespace io;
using namespace gui;
int main(int argc, char** argv)
{
IrrlichtDevice *device =
createDevice(EDT_SOFTWARE, dimension2d<unsigned int>(640, 480), 16,
false, false, false, 0);
device->setWindowCaption(L"Train Simulator Demo");
IVideoDriver* driver = device->getVideoDriver();
ISceneManager* smgr = device->getSceneManager();
IGUIEnvironment* guienv = device->getGUIEnvironment();
IAnimatedMesh* mesh1 = smgr->getMesh("media/simple_engine.b3d");
IAnimatedMesh* mesh2 = smgr->getMesh("media/simple_track.b3d");
IAnimatedMeshSceneNode* node1 = smgr->addAnimatedMeshSceneNode(mesh1);
IAnimatedMeshSceneNode* node2 = smgr->addAnimatedMeshSceneNode(mesh2);
if (node1)
node1->setMaterialFlag(EMF_LIGHTING, false);
if (node2)
{
node2->setMaterialFlag(EMF_LIGHTING, false);
node2->setMaterialTexture(0, driver->getTexture("media/grass.jpg"));
}
ICameraSceneNode * pCamera = smgr->addCameraSceneNode(0, vector3df(5,0,5), vector3df(0,0,0));
pCamera->setNearValue(0.5f);
pCamera->setFarValue(40.0f);
while(device->run())
{
driver->beginScene(true, true, SColor(0,0,0,0));
u32 cur_time = device->getTimer()->getTime();
float f_time = (float)cur_time/1000.0f;
// Change the camera
pCamera->setPosition(vector3df(sinf(f_time) * 8.0f ,3.0f ,cosf(f_time) * 8.0f));
smgr->drawAll();
guienv->drawAll();
driver->endScene();
}
device->drop();
return 0;
}
... que cuando el funcionamiento produce lo siguiente:
... lo cual está bien, excepto que la hierba se supone que es una cuadrícula de 16x16 cuadrados y parece que algunos de los triángulos están siendo recortados por alguna razón. También parece que esto tiene algo que ver con que los triángulos solo se muestren parcialmente en la pantalla, ya que solo se muestran los triángulos que están completamente dentro de la ventana de la ventana. ¿Cómo puedo arreglar esto?
adicional:
OS: Ubuntu 10.04 64 bits
Irrlicht Versión: 1.7 beta
hmm buena cosa para recordar. – RolandiXor