2015-09-14 96 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驅動程序測試了這個。

相關問題