如何顯示大場景海量三維模型?

最近因爲項目需要一直在研究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值得一看。

不過終究是開源的東東,研究起來還是困難重重。一步一步來吧。

發佈了40 篇原創文章 · 獲贊 7 · 訪問量 17萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章