查看: 2812|回复: 10

OSG的各种文件形式的模型存放在数据库里加载如何实现

[复制链接]

该用户从未签到

发表于 2012-11-26 16:09:38 | 显示全部楼层 |阅读模式
要用OSG实现模型数据存放在数据库中,需要哪个模型时就加载进场景。听几位大神说通过查看一些osg的read和writenode方法,可以传入一个url来指示文件。哪位大神了解这两个方法呀,实在不懂怎么弄啊

该用户从未签到

发表于 2012-11-27 11:26:15 | 显示全部楼层
url可以,此外osgRecipes里的otl插件也可以实现从ODBC数据库中读取和写入,目前只测试了sqlite

该用户从未签到

 楼主| 发表于 2012-11-27 13:33:21 | 显示全部楼层
哦,谢谢回复!想用AOD方式连接数据库,用哪个好呢?还有想了解osg::readnodefile()和0sg::writenodefile()l两个函数的用法要到哪查呢?

该用户从未签到

 楼主| 发表于 2012-11-28 08:41:50 | 显示全部楼层
错了,是osgDB::readNodeFile()和osgDB::writeNodeFile().已经找到些资料了哦
http://www.openscenegraph.org/do ... fccaee334c31ac35006

该用户从未签到

发表于 2013-3-28 10:54:03 | 显示全部楼层
array 发表于 2012-11-27 11:26
url可以,此外osgRecipes里的otl插件也可以实现从ODBC数据库中读取和写入,目前只测试了sqlite

请问array,可以把ive模型文件放到数据库里?

该用户从未签到

发表于 2013-4-1 09:39:47 | 显示全部楼层
大部分数据库都支持BLOB类型,因此没什么问题

该用户从未签到

发表于 2013-4-2 11:16:25 | 显示全部楼层
1 怎么说呢, 这个问题我以前遇到过,ive格式在包含了模型的纹理的情况下是可以的。

   2 但是如果是其他格式就比较鸡肋了,比如openflight格式,除了包含flt格式的模型,还需要*.rgb的纹理等,
  
因为在模型的文件里已经包含了文件名,所以你存储数据库纹理数据BLOB数据,就找不到文件名,
  
  这样你需要在硬盘上重新生成纹理文件,才能正常载入和渲染,但是这样就得不偿失了。

该用户从未签到

发表于 2013-7-31 10:57:24 | 显示全部楼层
CWorld 发表于 2013-4-2 11:16
1 怎么说呢, 这个问题我以前遇到过,ive格式在包含了模型的纹理的情况下是可以的。

   2 但是如果是其 ...

那再请教个问题,放在数据库里的文件的读取速度,和我直接从硬盘里读取ive文件的速度相比,效率怎么样呢?

该用户从未签到

发表于 2013-7-31 13:47:07 | 显示全部楼层
如果是ive格式,这两种方式我没有测试过。
  如果是其他格式,比如flt格式的模型,直接以BLOB格式放到数据库里,你需要再在硬盘上生成一遍模型和纹理文件,速度显然是比较慢的。

该用户从未签到

发表于 2013-10-30 11:42:34 | 显示全部楼层
CWorld 发表于 2013-7-31 13:47
如果是ive格式,这两种方式我没有测试过。
  如果是其他格式,比如flt格式的模型,直接以BLOB格式放到数据 ...

请问怎么把ive文件存入数据库啊,对数据库有神马有要求呢?
又怎么把他取出来?

该用户从未签到

发表于 2013-11-1 10:07:21 | 显示全部楼层
BLOB方式就可以把二进制数据存入数据库了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

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

联系我们

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