I'm able to display the model in other 3D model viewers just fine and it should look like a simple textured building:
Irrlicht seems to be either turning it into a solid object and displaying textures in the wrong places
or
It's only rendering the floor and extruding it up to the height of the entire model.
Viewing the model from the same position within Irrlicht:
To download the file.
https://drive.google.com/open?id=1_kIF4 ... 35ZALEFBU1
I'm using very basic code to render the object:
Code: Select all
#include <irrlicht.h>
#include <iostream>
using namespace irr;
int main()
{
IrrlichtDevice *device = createDevice(video::EDT_OPENGL, core::dimension2d<u32>(640, 480));
if (device == 0)
return 1;
video::IVideoDriver* driver = device->getVideoDriver();
scene::ISceneManager* smgr = device->getSceneManager();
scene::IAnimatedMesh* mesh = smgr->getMesh("BasicBuilding.dae");
scene::ISceneNode* node = 0;
if (mesh)
node = smgr->addMeshSceneNode(mesh->getMesh(0));
node->setMaterialFlag(video::E_MATERIAL_FLAG::EMF_LIGHTING, false);
node->setScale(core::vector3df(10, 10, 10));
smgr->addCameraSceneNodeFPS();
device->getCursorControl()->setVisible(false);
int lastFPS = -1;
while (device->run())
{
if (device->isWindowActive())
{
driver->beginScene(true, true, video::SColor(255, 200, 200, 200));
smgr->drawAll();
driver->endScene();
int fps = driver->getFPS();
if (lastFPS != fps)
{
core::stringw str = L"Irrlicht Engine [";
str += driver->getName();
str += "] FPS:";
str += fps;
device->setWindowCaption(str.c_str());
lastFPS = fps;
}
}
else
device->yield();
}
device->drop();
return 0;
}