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

最近因为项目需要一直在研究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)

如何显示大场景海量三维模型?_第1张图片

 

这里还有另外一个网友的介绍(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值得一看。

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

你可能感兴趣的:(session,服务器,图形,编译器,网格)