如何显示大场景海量三维模型?

最近因为项目需要一直在研究world wind,之前总算把world wind wms 的服务器搭建完毕,算是迈出了第一步。紧接着就开始考虑加载三维模型的问题,world wind通过配置文件用ModelFeature实现了.x, .xml, .dae文件格式的加载。

 

但是ww对于大场景海量三维数据的加载、显示并没有实现。在网上、期刊网上调研了许久,发现基本上是采用分层、分块加lod的策略,遗憾的是,这些文章并没有涉及到具体的实现细节,这对于我这个第一次真枪实弹地做gis的人来说,真是蛋疼。

 

今天在网上瞎逛,偶遇OSGGIS,它是基于OpenSceneGraph的。OpenSceneGraph是一款高性能的3D图形开发库,貌似很牛。随后看了OSGGIS的一些资料,它能够做到:

1. 用3D模型来替换点要素;

2. 将大数据量的图层按网格组织;同时构建平行的单元格。

此外下图为网友的实现效果图,cool。(http://hi.baidu.com/lorin_hill/blog/item/225a2bf39b79971ab07ec5e8.html

 

这里还有另外一个网友的介绍(http://blog.csdn.net/zhuliangxiong/archive/2009/04/21/4096189.aspx

 

 

“图层编译器引导来自一个或者多个图层的要素穿过一个或者多个过滤器图.然后将来自于不同过滤器图的输出组合成为一个OSG场景图.osgGIS有三种内置的图层编译器:

   1.简单编译器:将要素编译生成内存中的多LOD的场景图;

   2.网格化编译器:将要素分成网格,然后将每个网格分别编译生成分页的多LOD场景图;

   3.四叉树编译器:编译生成分页的多LOD场景图,同时每一个LOD是其上级节点的四叉树子节点;

网格化编译器和四叉树编译器可以实现增量编译和局部更新.由于每一个网格都是无关的,所以这些网格可以同时编译.这种机制使得OsgGIS具很强的伸缩性.因为使用这种增量编译和局部更新技术,OsgGIS就可以处理任意规模的数据.

   OsgGIS将整个图层分解为许多小块后分别独立编译,同时OsgGIS使用Session将各个编译过程连接在一起.Session用于管理公共的资源(例如:纹理..)和对外部数据模型的引用。Session还记录有整个图层编译过程中产生的统计数据。”

 

 

呵呵,看到这些,一阵窃喜。OSGGIS值得一看。

不过终究是开源的东东,研究起来还是困难重重。一步一步来吧。

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值