0
我有一个flt模型,它引用了* tga纹理文件。我使用Nvidia纹理使用工具(nvdxt.exe)将这些* .tga文件转换为* .dds文件。如何将纹理应用于openscenegraph中的模型?
我知道如何阅读和纹理文件申请单的.dds到我的模型(terrain.flt): -
osg::ref_ptr<osg::Node> terrainModel (osgDB::readNodeFile("c:/my_folder/terrain.flt"));
osg::ref_ptr<osg::Texture2D> tex (new osg::Texture2D);
osg::ref_ptr<osg::Image> image (osgDB::readImageFile("c:/my_folder/road.dds "));
tex->setImage(image.get());
osg::ref_ptr<osg::StateSet> state=terrainModel->getOrCreateStateSet();
state->setTextureAttributeAndModes(0,tex.get(),osg::StateAttribute::ON);
,但我不知道如何阅读和应用所有这些纹理*的.dds到我的模型(terrain.flt)。
我尝试: -
osg::ref_ptr<osg::Node> terrainModel (osgDB::readNodeFile("c:/my_folder/terrain.flt"));
osg::ref_ptr<osg::Texture2DArray> texArray (new osg::Texture2DArray);
for(int i=0;i<my_folder_files.size();i++)
{
osg::ref_ptr<osg::Image> image (osgDB::readImageFile("c:/my_folder/"+file(i)));
texArray->setImage(i,image);
}
osg::ref_ptr<osg::StateSet> state=terrainModel->getOrCreateStateSet();
state->setTextureAttributeAndModes(0,texArray.get(),osg::StateAttribute::ON);
,但是,它不工作。帮我。