查看: 3443|回复: 5

如何写新文件格式的插件?

[复制链接]

该用户从未签到

发表于 2008-3-5 22:18:29 | 显示全部楼层 |阅读模式
我现在想写一个文件格式的插件比如说像ive一样的文件格式,怎么办,有没有什么标准和规定,和我说一下!感激不尽!

该用户从未签到

发表于 2008-3-5 23:22:13 | 显示全部楼层
原帖由 zhangyi 于 2008-3-5 22:18 发表
我现在想写一个文件格式的插件比如说像ive一样的文件格式,怎么办,有没有什么标准和规定,和我说一下!感激不尽!


有关文件插件的格式我写过一篇非常浅的文章:
http://wangray84.spaces.live.com ... 4660C1E7E!174.entry
如果有兴趣不妨参考一下
由于OBJ格式插件的实现代码目前比较简单,因此我们可以参考它的格式来书写自己的文件插件
必须的步骤:
1、首先是派生osgDB::ReaderWriter实现自己的文件IO类,其中className,acceptsExtension,readNode和writeNode应该是核心的,文件解析的结果理应体现在这几个函数的内容里,否则文件插件是没有任何实际意义的。
2、然后我们需要在系统中注册这个插件,例如(xxx是扩展名,ReaderWriterXXX是我们自己的派生类):
REGISTER_OSGPLUGIN(xxx, ReaderWriterXXX)
这个宏的实质是调用RegisterReaderWriterProxy模板,并传递扩展名和相应的IO类信息到Registry::instance()中。这样系统在跟踪文件扩展名时,就可以自动从Registry中搜索到相应的读写器,并跳转到执行函数中。有关这个宏的实现可以参考Registry头文件中的内容

该用户从未签到

发表于 2008-3-5 23:37:37 | 显示全部楼层
直接修改OSG读写的源代码也不错~~~~~~~~

该用户从未签到

 楼主| 发表于 2008-3-6 19:13:43 | 显示全部楼层
谢谢两位版主,我试试!

该用户从未签到

发表于 2011-5-24 10:11:24 | 显示全部楼层
array兄,那个链接好像用不了,还有其他说怎么自己编写osg插件的文章链接吗?

该用户从未签到

发表于 2011-5-25 08:33:24 | 显示全部楼层
《OpenSceneGraph三维渲染引擎设计与实践》中有一个最简单的自己编写插件的例子
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

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

联系我们

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