查看: 2085|回复: 8

addFileExtensionAlias不起作用是什么原因?

[复制链接]

该用户从未签到

发表于 2011-5-9 17:31:35 | 显示全部楼层 |阅读模式
我把cow.ive改成cow.model,然后调用addFileExtensionAlias("model","ive"),不能加载模型,是什么原因?还是这样做本身就不起作用还是缺什么?第一次这么使用,还请赐教

该用户从未签到

发表于 2011-5-10 08:54:39 | 显示全部楼层
这样做没有问题,不知道您的完整代码是怎么样的

该用户从未签到

发表于 2011-5-10 11:45:31 | 显示全部楼层
这个自定义扩展名不错

该用户从未签到

发表于 2011-5-26 13:44:26 | 显示全部楼层
我也遇到同样的问题。
osgDB::Registry::instance()->addFileExtensionAlias("try","ive");

osg::ref_ptr<osg::Node> childNode = osgDB::readNodeFile ("c:\\abc.try");


编译后运行,报错:
Warning: Could not find plugin to read objects from file "c:/abc.try"

这样做不对吗?

该用户从未签到

发表于 2011-5-26 14:55:41 | 显示全部楼层
类似的事情我经常做,似乎没有什么问题

该用户从未签到

发表于 2011-5-26 21:41:12 | 显示全部楼层
array ,你的意思是,这样写


osgDB::Registry::instance()->addFileExtensionAlias("try","ive");

osg::ref_ptr<osg::Node> childNode = osgDB::readNodeFile ("c:\\abc.try");



是对的?是我别的地方有错?


我在网上查了半天没查到怎么解决这个问题:


简单的说就是,让 abc.try == abc.ive ,应该很简单的说。

该用户从未签到

发表于 2011-5-30 10:13:56 | 显示全部楼层
这么写是没有错的,不过我想起了另一个问题,应该就是您不能显示的原因:
每个插件的实现代码内部都有一个acceptsExtension()函数,用来判断传入的文件扩展名是否是可以识别的;可识别的扩展名在构造函数中通过supportsExtension()传入。很显然ive插件可识别的扩展名不包括您的try,因此会自动跳过对该文件的解析,除非您在ive文件的源代码中加入您的格式支持

该用户从未签到

 楼主| 发表于 2011-5-30 10:25:48 | 显示全部楼层
估计就是这个原因,我试试,这样设计稍微有点遗憾,感觉就像是丈母娘同意娶她女儿,可她女儿偏偏不干,也不行,呵呵

该用户从未签到

发表于 2011-5-30 12:37:31 | 显示全部楼层
回复 7# array


    原来如此。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

OSG中国官方论坛-有您OSG在中国才更好

网站简介:osgChina是国内首个三维相关技术开源社区,旨在为国内更多的技术开发人员提供最前沿的技术资讯,为更多的三维从业者提供一个学习、交流的技术平台。

联系我们

  • 工作时间:09:00--18:00
  • 反馈邮箱:1315785073@qq.com
快速回复 返回顶部 返回列表