osg文件讀寫之-ProxyNode的存儲

通過查看osgProxyNode.cpp源文件,我們找到了保存節點時會影響該類型節點保存方式的幾個Option String,如下:

 

配置參數及說明

配置字符串

說明

inlineExternalReferencesInIVEFile

 

嵌入外部引用項到文件中,採用該種模式時,已load進來的模型會直接替換掉其代理節點,這樣保存出來的模型將會是一個不再依賴已經load進來得外部引用項的大模型文件

noWriteExternalReferenceFiles

generated external reference ive files

在保存過程中如果遇到外部引用節點,比如PageLOD/ProxyNode時,將其保存爲同目錄下,原文件名的ive格式模型,並將引用路徑設置爲新文件的路徑

useOriginalExternalReferences

used original external reference files

使用原外部引用路徑,對其不作任何修改,原樣保存,需要注意的是,採用該種方式時導出模型後,需要將其原來的引用依賴模型按照之前的路徑一併打包

OutputTextureFiles

export texture files during write

保存時導出紋理,有時候我們需要保存模型文件中的紋理到文件,比如IVE文件中嵌入的紋理,這時我們可以加入該配置字符串,保存文件時,osg就會幫我們把模型中的所有紋理圖片保存到相應目錄

 


 

 

auto opt = new osgDB::Options;

 
opt->setOptionString("useOriginalExternalReferences");

setIncludeExternalReferences(optionsString.find("inlineExternalReferencesInIVEFile")!=std::string::npos);
setWriteExternalReferenceFiles(optionsString.find("noWriteExternalReferenceFiles")==std::string::npos);
setUseOriginalExternalReferences(optionsString.find("useOriginalExternalReferences")!=std::string::npos);
setOutputTextureFiles(optionsString.find("OutputTextureFiles")!=std::string::npos);

 
// 調用帶配置參數保存函數,就可以靈活的根據我們設置的參數保存場景了

 
osgDB::writeNodeFile(*nodePtr,"xxx.osgt",opt);

 


 

 


 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章