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);
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值