2015-09-14 57 views
-2

我正在使用getMesh函数来加载.obj和.mtl文件。 当我运行程序时,我看到没有mtl文件纹理的对象。Irrlicht obj和mtl文件

scene::IAnimatedMeshSceneNode* n = 
    smgr->addAnimatedMeshSceneNode(smgr->getMesh("object.obj")); 
n->setMaterialFlag(video::EMF_LIGHTING, false); 

我注意到,当我使用EDT_SOFTWARE驱动程序类型(而不是EDT_OPENGL)时,我可以看到纹理。

+2

这里的问题究竟是什么? – BDL

+0

为什么我看到没有纹理的对象,我该如何修复它 –

回答

0

OBJ格式存储纹理信息像UV坐标而不是整个纹理数据,所以在Irrlicht的,你需要明确地加载纹理文件这样的:

N-> setMaterialTexture(驱动程序 - > getTexture(“your_texture.png “);

如果您使用DirectX文件格式(* .x)而不是Obj导出模型,则纹理将自动插入,假定纹理位于同一模型目录中(如果您希望写入更少代码)

想了想,我使用OpenGl驱动程序测试了这个。

相关问题