查看: 1800|回复: 5

osgplugins中gdal插件的源码疑问

[复制链接]

该用户从未签到

发表于 2011-4-15 22:55:50 | 显示全部楼层 |阅读模式
ReaderWriterGDAL.cpp中的  int destWidth = osg::minimum(dataWidth,4096);  int destHeight = osg::minimum(dataHeight,4096);将图片列数和行数限制在4096内,然后再 osg::HeightField* hf = new osg::HeightField;                hf->allocate(destWidth,destHeight);  读取文件中的高程信息。

问题是如果图片的行数和列数大于4096,那么是不是只能读取4096*4096部分的高程信息,其余的部分都被舍弃了 。。。。。

菜鸟 求解



望高手解答

该用户从未签到

发表于 2011-4-18 08:38:35 | 显示全部楼层
osg::minimum是取得最小值,因此这里是限制宽高不要低于4096……

该用户从未签到

 楼主| 发表于 2011-4-24 22:55:23 | 显示全部楼层
可是高于4096的部分 就被舍弃了?   该怎么办啊?

该用户从未签到

发表于 2011-4-25 09:12:23 | 显示全部楼层
谁说他们被舍弃了?您试验过?

该用户从未签到

 楼主| 发表于 2011-4-25 22:38:27 | 显示全部楼层
假设我有一张图片 ,行数超过4096 假设为5000,我用gdal读取该文件,输出行数为5000,但是用osgDB::ReaderWriter* readerWriter = osgDB::Registry::instance()->getReaderWriterForExtension("gdal");
if (!readerWriter)
        {
                std::cout<<"Error: GDAL plugin not available, cannot preceed with database creation"<<std::endl;
                //return false;
        }


        osg::ref_ptr<osg::HeightField> hfSrcOld = osgDB::readHeightFieldFile("CE1_BMYK_CCD_G003_07N135W_A.03");

  读取该文件  ,然后输出行数 却为4096,  我查了一下源码 就是用osg::minimum作了限制。。, 说明其他的部分被舍弃了。。。。
:)

该用户从未签到

发表于 2011-4-26 09:08:43 | 显示全部楼层
那我不太清楚原作者的考虑了,反正我们读取高程数据时从来不直接使用gdal插件
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

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

联系我们

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