一種海量地形影像數據的快速漫游算法

馬柳青,宋關福,郭會,周芹

( 1 中國科學院地理科學與資源研究所, 北京 100101; 2 中國科學院研究生院, 北京 100039; 3 北京超圖地理信息技術公司, 北京 100085)

論文來源:地球信息科學學報

摘要:海量地形影像數據的快速瀏覽是 G IS、虛擬現(xiàn)實、數字地球等領域應用的關鍵技術與難點之一。計算機硬件技術的發(fā)展特別是 G PU技術的發(fā)展, 使得當前 LOD技術朝著硬件友好的方向發(fā)展; 海量影像數據的不斷出現(xiàn),使得 LOD 技術越來越多地考慮紋理數據的顯示效果。本文結合 LOD 和計…

關鍵詞: 海量數據; 硬件友好; 異步加載; LOD; skirt

1 引言

隨著航空攝影測量與衛(wèi)星遙感技術的發(fā)展,海量地形影像數據的三維瀏覽已經成為研究的熱點。然而, 受計算機內存和操作系統(tǒng)管理能力的限制, 把所有的數據放入內存直接渲染顯然是行不通的。LOD 技術根據一定的規(guī)則來簡化物體的細節(jié), 選擇不同細節(jié)程度的物體表達方式, 是解決大規(guī)模地形影像數據快速渲染的有效手段。如離觀察者近的選擇較高的細節(jié)程度, 反之選擇較低的細節(jié)程度。在地形渲染中, 也稱為多分辨率地形(M uti-Resolution T errain)渲染技術。

LOD據其網格生成的方法和針對數據結構的不同, 可以分為規(guī)整網格 ( RSG, Regular Square Grid)的算法和不規(guī)則三角網的算法( T IN, T riangular Irregu lar Netw orks)兩大類[ 1 - 2 ] 。T IN 的渲染算法以更少的三角形來描述地物, 但由于 T IN 的數據結構比較復雜, 并且每調整一次分辨率都要涉及到大量的三角剖分工作, 計算量較大。RSG 算法與 T IN 的算法相比有以下特點[ 3 ] : 更加緊縮的數據表示; 高效的數據訪問; 快速的 LOD 三角剖分和渲染和更容易實現(xiàn)。

RSG 的算法大致上可以分為 P re-GPU 方法、 Post-GPU 方法兩類[ 4] 。為了解決顯卡沒有足夠的能力對大量的三角形進行矩陣變換和光影的計算, P re-GPU 利用 CPU 的計算能力逐個對三角形進行處理, 并逐個送到渲染管道中利用較弱的渲染硬件實現(xiàn)對大型數據的處理。P re-GPU 方法中有較著名的連續(xù)層次細節(jié)技術 CLOD ( C ontinuous Leve l of Deta ils) [ 5] , ROAM ( Real- tim e optim a lly adapting m e-shes) , 漸進格網[ 7] 等, 其中, ROAM 算法應用最為廣泛。隨著計算機硬件的發(fā)展, 特別是 GPU技術的發(fā)展, 渲染通道的吞吐量得到了極大地提高, 渲染更多的三角形所致效率的損失大大低于CPU 嚴格計算刪除三角形帶來的損失, 為了平衡GPU 和 CPU 的負載, 進一步提高渲染的效率, 出現(xiàn)了 Post-GPU 方法, 也稱為硬件友好的方法(H ardw are- friendly m ethods)。Post-GPU 方法中, SOAR[ 8] 方法、Chunked-LOD[ 4] 方法都是常用的方法, 特別是 ChunkedLOD方法, 近年來越來越受到人們的關注。Chunked-LOD方法旨在盡可能地提高三角形的吞吐量而降低 CPU 的負載。渲染過程中, 層次細節(jié)不需要像其他 LOD算法那樣精確, 屬于離散層次細節(jié), 視點的優(yōu)化是針對某一數據塊進行, 而不是像 CLOD中對每一個點進行處理。

伴隨著 Post-GPU 方法成為 LOD技術的發(fā)展趨勢, 紋理數據的展示也成為當前 LOD 技術研究的熱點。以往 LOD 算法只重視地形數據的展示, 而對紋理數據沒有足夠的討論, 很多試驗針對大規(guī)模的地形數據展開, 而地形上匹配的紋理只是一張很小的沒有真實地理意義的圖片。隨著遙感和攝影測量技術的發(fā)展, 海量影像數據不斷出現(xiàn),影像提供的信息豐富直觀, 人們甚至更關注這部分信息, 而地形此時只起到輔助顯示的作用。針對這種狀況, 考慮紋理數據的 LOD 不斷出現(xiàn)[ 4, 9- 10 ] , ChunkedLOD就是其中比較著名的算法,

它考慮了幾何數據和紋理數據的 LOD, 提出了綜合評價因子, 但在預處理中, 紋理數據與地形數據要求嚴格匹配, 而且其評價因子也比較復雜。本文在研究以往 LOD 技術, 特別是 ChunkedLOD算法的基礎上, 遵循 Post-GPU 方法的思想, 以高效展示大規(guī)模影像數據為主要目的, 提出一種快速漫游海量地形影像數據的算法。

2 模型實現(xiàn)原理與方法

對于海量的影像和地形數據, 目前, 比較流行的方法是分塊加載[ 11] 。所以, 本文首先根據影像、地形數據的地理范圍和分辨率, 將它們按照四叉樹的方式分層、分塊, 構建金字塔。接著,系統(tǒng)開辟兩個線程: 更新線程和渲染線程。采用異步加載的思路, 隨著視點的移動, 更新線程由LOD算法計算出需要合并和分裂的四叉樹節(jié)點進行數據更新, 并將結果提交給渲染線程渲染。通過合理的數據劃分和數據調度策略, 使得內存中待渲染的數據只與視點位置和當前渲染細節(jié)層次有關, 而與整體數據量無關, 從而大大提高漫游速度。為了更加有效地展示紋理數據, 本文提出了用紋理分辨率來控制 LOD的方法, 給出了一種簡單有效的評價因子。另外, 本文借鑒了 Chunked-LOD的裂縫處理方法, 通過添加 skirt來填充裂縫,節(jié)省了 CPU 的計算時間, 提高了顯示效率。

更多內容請查看pdf