1

*tga テクスチャ ファイルへの参照を持つ flt モデルがあります。Nvidia テクスチャ ユーティリティ ツール (nvdxt.exe) を使用して、これらの *.tga ファイルを *.dds ファイルに変換しました。

単一の .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);

しかし、それは機能していません。助けて。

4

1 に答える 1