查看: 1680|回复: 9

osgDB::writeHeightFieldFile

[复制链接]

该用户从未签到

发表于 2011-4-9 21:46:31 | 显示全部楼层 |阅读模式
有没有成功使用了osgDB::writeHeightFieldFile  的

osg::ref_ptr<osg::HeightField> hf = new osg::HeightField();
。。。。。。
osgDB::writeHeightFieldFile(&hf,"d:\\moonData\\heightfield.osg");

讲解下,error C2665: “osgDB::writeHeightFieldFile”: 2 个重载中没有一个可以转换所有参数类型

还有这个函数能可以写成什么格式

:)

该用户从未签到

 楼主| 发表于 2011-4-10 11:23:52 | 显示全部楼层

该用户从未签到

 楼主| 发表于 2011-4-10 21:21:18 | 显示全部楼层
osgDB::writeHeightFieldFile(*hf,"d:\\moonData\\heightfield.osg");

为什么不成功呢

该用户从未签到

发表于 2011-4-11 09:02:59 | 显示全部楼层
writeHeightFieldFile  (
    const osg::HeightField &  hf,  
    const std::string &  filename,  
    const Options *  options   
)
我认为这个简单的问题不应该困扰您两天的时间……

该用户从未签到

发表于 2011-7-21 13:20:40 | 显示全部楼层
osgDB::writeHeightFieldFile的函数定义中指明了 hf是对象,而 filename是引用。
如下写:
osg::ref<osg::HeightField> hf = new osg::HeightField;
std::string strPath = "d:\\moonData\\heightfield.osg";
osgDB::writeHeightField(*hf, strPath);

该用户从未签到

发表于 2011-7-21 14:17:47 | 显示全部楼层
osgDB::writeHeightFieldFile(*(hf.get()),"d:\\moonData\\heightfield.osg");
第一个参数是对象引用

该用户从未签到

发表于 2011-7-21 16:37:16 | 显示全部楼层
osgDB::writeHeightFieldFile(*(hf.get()),"d:\\moonData\\heightfield.osg");
写不成功

这种写的格式是对的,但是无法将高程数据写出
osgDB::writeHeightFieldFile返回的值为0 不成功
如何才能将高程数据正确的写出呢

该用户从未签到

 楼主| 发表于 2011-7-22 14:57:33 | 显示全部楼层
我也没写成功 自己写了一个txt,将hf的信息写到txt中,下次用的时候在读取txt创建hf

该用户从未签到

发表于 2011-7-25 23:13:09 | 显示全部楼层
我刚刚明白您这里遇到的是运行时的问题(没有写出文件),而不是编译问题

我查了一下,目前还没有哪个osg插件实现了writeHeightField()方法,只有实现了这个方法的插件才能写出这种文件

该用户从未签到

 楼主| 发表于 2011-7-26 15:19:47 | 显示全部楼层
呵呵,其实HeightField里面的东西不多,写到txt中挺好用的
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

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

联系我们

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