xiaoping2753 发表于 2013-5-20 15:24:05

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

本帖最后由 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.php?mod=viewthread&tid=10806&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不管怎么设置文件夹都很清晰。暂时这样吧,能正常使用,如果有更好的解决方式欢迎留言

buaalb 发表于 2013-5-23 22:29:15

你的split没有设置正确

xiaoping2753 发表于 2013-5-24 09:26:35

buaalb 发表于 2013-5-23 22:29 static/image/common/back.gif
你的split没有设置正确

应该怎么设置呢?求指导

buaalb 发表于 2013-5-26 12:45:53

把生成的第二级目录考到根目录下

xiaoping2753 发表于 2013-5-26 16:48:17

本帖最后由 xiaoping2753 于 2013-5-26 17:01 编辑

buaalb 发表于 2013-5-26 12:45 static/image/common/back.gif
把生成的第二级目录考到根目录下

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

buaalb 发表于 2013-5-27 10:11:58

你在earth文件中也需要做相应的设置,first split设置为2,secondary 设置为5,应该就没问题了

xiaoping2753 发表于 2013-5-27 12:25:41

buaalb 发表于 2013-5-27 10:11 static/image/common/back.gif
你在earth文件中也需要做相应的设置,first split设置为2,secondary 设置为5,应该就没问题了

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

buaalb 发表于 2013-5-27 18:34:41

xiaoping2753 发表于 2013-5-27 12:25
谢谢,确实清晰了很多,不过遇到新的问题了,加载数据后放大到一定程度osgearth_viewer程序就死掉了,感觉 ...

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

xiaoping2753 发表于 2013-5-27 19:24:44

本帖最后由 xiaoping2753 于 2013-5-27 19:25 编辑

buaalb 发表于 2013-5-27 18:34 static/image/common/back.gif
这个比较麻烦,需要重新编译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>仍旧没有显示出来高程信息。

buaalb 发表于 2013-5-27 20:54:23

xiaoping2753 发表于 2013-5-27 19:24 static/image/common/back.gif
vpbmaster --geocentric --compressed --splits 3 6 -t image.tif -d elevation.tif -0 earth.ive
生成 ...

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

xiaoping2753 发表于 2013-5-27 21:21:39

buaalb 发表于 2013-5-27 20:54 static/image/common/back.gif
你把L2里面为L5级别文件夹考到根目录下了吗

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

xiaoping2753 发表于 2013-5-27 21:35:03

xiaoping2753 发表于 2013-5-27 21:21 static/image/common/back.gif
没有,我觉得上面2不就是为了索引生成的四个一级目录即L2,然后5是索引生成的二级目录即L5么拷贝的话是不 ...

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

xiaoping2753 发表于 2013-5-27 21:36:38

buaalb 发表于 2013-5-27 20:54 static/image/common/back.gif
你把L2里面为L5级别文件夹考到根目录下了吗

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

buaalb 发表于 2013-5-28 09:31:35

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

buaalb 发表于 2013-5-28 09:33:08

xiaoping2753 发表于 2013-5-27 21:36 static/image/common/back.gif
明白了,是要把L5级别的文件夹拷贝到earth.ive同一目录下啊。确实清晰很多,有高程信息了也。不过这样根目 ...

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

buaalb 发表于 2013-5-28 09:36:46

xiaoping2753 发表于 2013-5-27 21:36 static/image/common/back.gif
明白了,是要把L5级别的文件夹拷贝到earth.ive同一目录下啊。确实清晰很多,有高程信息了也。不过这样根目 ...

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

xiaoping2753 发表于 2013-5-28 09:44:55

buaalb 发表于 2013-5-28 09:36 static/image/common/back.gif
这个帖子可能会帮助很多人,你也可以试着去修改一下源代码,我觉得osgearth在查找目录时可能做的不够完善 ...

谢谢,去尝试下。:handshake

xiaoping2753 发表于 2013-5-28 15:32:47

buaalb 发表于 2013-5-28 09:36 static/image/common/back.gif
这个帖子可能会帮助很多人,你也可以试着去修改一下源代码,我觉得osgearth在查找目录时可能做的不够完善 ...

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

tietingting 发表于 2014-3-18 10:25:17

我运行的例子里面的vpb_with_inset.earth文件,把ive模型换成我本地的ive,可是运行没有纹理,求指导~~~

xiaf02 发表于 2015-1-23 14:30:32

本帖最后由 xiaf02 于 2015-1-23 14:39 编辑

根据vpb插件源码的分析,文件搜索方式分为:flat、task、nested三种

如果不想将L5的文件夹拷贝到根目录的话,可以设置文件路径搜索类型为task
<directory_structure>task</directory_structure>
页: [1]
查看完整版本: 【已解决,不完善】osgearth_viewer打开vpb处理的数据不清晰