查看: 3310|回复: 19

【已解决,不完善】osgearth_viewer打开vpb处理的数据不清晰

[复制链接]

该用户从未签到

发表于 2013-5-20 15:24:05 | 显示全部楼层 |阅读模式
本帖最后由 xiaoping2753 于 2013-5-28 15:59 编辑

用vpbmaster --geocentric -t path -d path -o earth.ive对目标文件夹内的tif数据进行切片,生成结构如下 vpb文件目录.PNG
但是访问的时候,用osgviewer直接打开earth.ive,清晰度还不错
但是用earth文件组织
<image name="earthimage" driver="vpb">
      <url>earth.ive</url>
</image>
然后用osgearth_viewer打开earth文件后,很不清晰了就.
不知道是什么问题啊,求指导
效果可参考http://bbs.osgchina.org/forum.ph ... &extra=page%3D1

【解决方法】
使用命令行
vpbmaster --geocentric --compressed --splits 3 6 -t image.tif -d elevation.tif -0 earth.ive
把生成的L2目录中的L5级别的文件夹拷贝出来到earth.ive同级目录下面,然后在earth文件中
<image name="earth" driver="vpb">
        <url>earth.ive</url>
        <primary_split_level>2</primary_split_level>
        <secondary_split_level>5</secondary_split_level>
</image>
<elevation name="earth" driver="vpb">
        <url>earth.ive</url>
        <primary_split_level>2</primary_split_level>
        <secondary_split_level>5</secondary_split_level>
</elevation>
这样去读取earth文件的时候就发现数据清晰且有高程信息。如果不想同时有L2和L5级别文件夹,可以使用参数--splits 6 6这样就只会在目录下生产L5级别的目录,不会包含二级目录。
不足在于earth.ive目录下面文件夹特别多,不知道是不是因为osgearth搜索文件路径的问题,直接使用osgviewer不管怎么设置文件夹都很清晰。暂时这样吧,能正常使用,如果有更好的解决方式欢迎留言

该用户从未签到

发表于 2013-5-23 22:29:15 | 显示全部楼层
你的split没有设置正确

该用户从未签到

 楼主| 发表于 2013-5-24 09:26:35 | 显示全部楼层
buaalb 发表于 2013-5-23 22:29
你的split没有设置正确

应该怎么设置呢?求指导

该用户从未签到

发表于 2013-5-26 12:45:53 | 显示全部楼层
把生成的第二级目录考到根目录下

该用户从未签到

 楼主| 发表于 2013-5-26 16:48:17 | 显示全部楼层
本帖最后由 xiaoping2753 于 2013-5-26 17:01 编辑
buaalb 发表于 2013-5-26 12:45
把生成的第二级目录考到根目录下


您说的是把subtile_L2_X0_Y0,subtile_L2_X0_Y1等文件夹里面的文件夹和ive文件都拷贝到root_L0_X0_Y0里面么,试过了,清晰度还是很低,而且没有高程信息。
您说的split应该是vpbmaster处理数据的时候的命令参数吧,这个具体该怎么使用呢?
earth2.png
earth1.png

该用户从未签到

发表于 2013-5-27 10:11:58 | 显示全部楼层
你在earth文件中也需要做相应的设置,first split设置为2,secondary 设置为5,应该就没问题了

该用户从未签到

 楼主| 发表于 2013-5-27 12:25:41 | 显示全部楼层
buaalb 发表于 2013-5-27 10:11
你在earth文件中也需要做相应的设置,first split设置为2,secondary 设置为5,应该就没问题了

谢谢,确实清晰了很多,不过遇到新的问题了,加载数据后放大到一定程度osgearth_viewer程序就死掉了,感觉像是数据lod到最大层后再拉近就死了。

该用户从未签到

发表于 2013-5-27 18:34:41 来自手机 | 显示全部楼层
xiaoping2753 发表于 2013-5-27 12:25
谢谢,确实清晰了很多,不过遇到新的问题了,加载数据后放大到一定程度osgearth_viewer程序就死掉了,感觉 ...

这个比较麻烦,需要重新编译geos,它默认不编译debug文件

该用户从未签到

 楼主| 发表于 2013-5-27 19:24:44 | 显示全部楼层
本帖最后由 xiaoping2753 于 2013-5-27 19:25 编辑
buaalb 发表于 2013-5-27 18:34
这个比较麻烦,需要重新编译geos,它默认不编译debug文件


vpbmaster --geocentric --compressed --splits 3 6 -t image.tif -d elevation.tif -0 earth.ive
生成earth_root_L0_X0_Y0和四个earth_subtile_L2_x*_y*,L2里面为L5级别文件夹和L1~L4级别的ive数据,然后使用
<image name="earth" driver="vpb">
        <url>earth.ive</url>
        <primary_split_level>2</primary_split_level>
        <secondary_split_level>5</secondary_split_level>
</image>
<elevation name="earth" driver="vpb">
        <url>earth.ive</url>
        <primary_split_level>2</primary_split_level>
        <secondary_split_level>5</secondary_split_level>
</elevation>
用osgearth_viewer打开earth文件后,清晰度感觉比用osgviewer直接打开earth.ive文件清晰度稍微低一些,而且放大不会出现崩溃,但是没有高程信息啊,<vertical_scale>10</vertical_scale>仍旧没有显示出来高程信息。

该用户从未签到

发表于 2013-5-27 20:54:23 | 显示全部楼层
xiaoping2753 发表于 2013-5-27 19:24
vpbmaster --geocentric --compressed --splits 3 6 -t image.tif -d elevation.tif -0 earth.ive
生成 ...

你把L2里面为L5级别文件夹考到根目录下了吗

该用户从未签到

 楼主| 发表于 2013-5-27 21:21:39 | 显示全部楼层
buaalb 发表于 2013-5-27 20:54
你把L2里面为L5级别文件夹考到根目录下了吗

没有,我觉得上面<primary_split_level>2</primary_split_level>不就是为了索引生成的四个一级目录即L2,然后<secondary_split_level>5</secondary_split_level>是索引生成的二级目录即L5么拷贝的话是不是应该把L2级别都拷贝到root目录里面呢?只是把L5拷贝到root里面怎么找到会

该用户从未签到

 楼主| 发表于 2013-5-27 21:35:03 | 显示全部楼层
xiaoping2753 发表于 2013-5-27 21:21
没有,我觉得上面2不就是为了索引生成的四个一级目录即L2,然后5是索引生成的二级目录即L5么拷贝的话是不 ...

明白了,是要把L5级别的文件夹拷贝到earth.ive同一目录下啊。确实清晰很多,有高程信息了也。不过这样根目录下文件夹好多啊,能不能用split参数替代splits参数,只指定一级生成数据呢?这样参数应该怎样设置呢?

该用户从未签到

 楼主| 发表于 2013-5-27 21:36:38 | 显示全部楼层
buaalb 发表于 2013-5-27 20:54
你把L2里面为L5级别文件夹考到根目录下了吗

明白了,是要把L5级别的文件夹拷贝到earth.ive同一目录下啊。确实清晰很多,有高程信息了也。不过这样根目录下文件夹好多啊,能不能用split参数替代splits参数,只指定一级生成数据呢?这样参数应该怎样设置呢?

该用户从未签到

发表于 2013-5-28 09:31:35 | 显示全部楼层
可以,把两级设置成一样的,比如说都是5, 5,这样就只生成级别为5的文件夹了

该用户从未签到

发表于 2013-5-28 09:33:08 | 显示全部楼层
xiaoping2753 发表于 2013-5-27 21:36
明白了,是要把L5级别的文件夹拷贝到earth.ive同一目录下啊。确实清晰很多,有高程信息了也。不过这样根目 ...

可以,把两级设置成一样的,比如说都是5, 5,这样就只生成级别为5的文件夹了

该用户从未签到

发表于 2013-5-28 09:36:46 | 显示全部楼层
xiaoping2753 发表于 2013-5-27 21:36
明白了,是要把L5级别的文件夹拷贝到earth.ive同一目录下啊。确实清晰很多,有高程信息了也。不过这样根目 ...

这个帖子可能会帮助很多人,你也可以试着去修改一下源代码,我觉得osgearth在查找目录时可能做的不够完善,或者还有其他的方法来设置目录,这个也是我前一段时间和师兄一起试验出来的,你要有其它的想法可以发个帖和大家共享一下

该用户从未签到

 楼主| 发表于 2013-5-28 09:44:55 | 显示全部楼层
buaalb 发表于 2013-5-28 09:36
这个帖子可能会帮助很多人,你也可以试着去修改一下源代码,我觉得osgearth在查找目录时可能做的不够完善 ...

谢谢,去尝试下。

该用户从未签到

 楼主| 发表于 2013-5-28 15:32:47 | 显示全部楼层
buaalb 发表于 2013-5-28 09:36
这个帖子可能会帮助很多人,你也可以试着去修改一下源代码,我觉得osgearth在查找目录时可能做的不够完善 ...

仔细看了一下osgearthdrivers/vpb中的源码,发现对vpb读写的cpp有两个,Copy of ReaderWriterVPB.cpp和ReaderWriterVPB.cpp,其中copy版本比较详细,但是编译生成vpb动态库的时候貌似用的是不带copy版本的,后者精简了一些变量比如primary_split_level,secondary_split_level等,我想这是不是用osgearth直接读取vpbmaster处理的数据的时候不清晰的原因呢?

该用户从未签到

发表于 2014-3-18 10:25:17 | 显示全部楼层
我运行的例子里面的vpb_with_inset.earth文件,把ive模型换成我本地的ive,可是运行没有纹理,求指导~~~

该用户从未签到

发表于 2015-1-23 14:30:32 | 显示全部楼层
本帖最后由 xiaf02 于 2015-1-23 14:39 编辑

根据vpb插件源码的分析,文件搜索方式分为:flat、task、nested三种
1.png
如果不想将L5的文件夹拷贝到根目录的话,可以设置文件路径搜索类型为task
<directory_structure>task</directory_structure>
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

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

联系我们

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