馮傳勇 張振軍
摘要:針對大規(guī)模水下地形海量數據與有限的計算機內存空間及顯卡繪圖效率之間的矛盾,提出了一種基于DEM瓦片金字塔模型與Oracle數據庫的海量地形數據組織與儲存方法,以及一種基于透視投影的四叉樹調度方法,實現LOD地形實時高效渲染。針對水下地形起伏小、立體效應差的問題,提出一種基于高程分布概率密度的自適應分層設色法,增強了水下地形渲染的立體感。典型應用結果表明:該方法可突破計算機硬件性能限制,在普通PC機環(huán)境實現大規(guī)模水下地形的實時、交互式三維可視化,并取得較高的效率和良好的視覺效果。
關鍵詞:水下地形; 三維可視化; 層次細節(jié)模型; 數字高程模型; 自適應分層設色
中圖法分類號: TV221.1
文獻標志碼: A
DOI:10.16232/j.cnki.1001-4179.2021.11.019
0引 言
隨著互聯網、大數據、空間地理信息技術的不斷進步,我國測繪現代化和信息化發(fā)展進入了一個新的階段,即從以地圖生產為主的數字化階段轉向以地理信息服務為主的信息化階段。在水下地形測繪領域,傳統(tǒng)DLG(數字線劃圖)無法滿足豐富、多樣、廣泛、便捷的地理信息服務需求,水下地形三維可視化正成為該領域的重要關注點之一[1-2],其在防洪減災、水資源調查、水域導航、涉水工程建設、水域河道航運等領域有著廣泛的應用價值[3-5]。
隨著計算機硬件水平的不斷提高,水下地形三維可視化技術也得到了很大的改善。與此同時,隨著測繪技術的不斷進步,水下地形可視化需要處理的數據量也在飛速增長。面對TB級甚至PB級的大規(guī)模地形數據,水下地形三維可視化技術面臨著巨大挑戰(zhàn)。如何突破當前計算機軟硬件水平的限制,實現大規(guī)模水下地形場景實時、交互式三維可視化,一直都是該領域研究的重點與難點[6-7]。目前,國內外學者對海量地形數據的合理組織[8]、分區(qū)調度等方面進行了大量研究[9-10]。針對海量數據存儲與計算機內存不足的問題,提出了四叉樹、八叉樹、瓦片金字塔等數據組織模型[11-13];針對顯卡渲染效率有限的問題,提出了基于LOD(層次細節(jié)模型)的動態(tài)調度方法[14-15]。存在的主要不足包括兩方面:一是普遍采用文件方式組織和存儲模型數據,不利于數據安全、遠程共享;二是普遍針對陸地地形三維可視化,與陸地地形相比,水下地形通常起伏變化較小,且缺乏真實影像紋理數據,采用常規(guī)方法立體效果較差。
為此,本文針對水下地形數據的特點,研究水下地形三維建模與可視化技術,結合數據庫與LOD技術,實現大規(guī)模水下地形數據合理組織、存儲與高效調度;通過自適應分層設色,增強水下地形立體效果。并在此基礎上,基于OpenGL開發(fā)了一套水下地形三維可視化系統(tǒng)。
1水下地形三維建模
1.1DEM瓦片金字塔生成
水下地形三維模型常用規(guī)則格網DEM(數字高程模型)或TIN(不規(guī)則三角網)表示。其中,規(guī)則格網DEM具有數據量小、計算分析高效、易于更新等優(yōu)勢,是三維數字地球等大規(guī)模地形場景三維可視化普遍采用的模型。本文結合瓦片金字塔數據組織模型,將多波束測量得到的離散三維點云插值生成規(guī)則格網DEM,設瓦片大小為256行×256列,技術流程如下。
(1) 統(tǒng)計離散點云平面分布范圍,按照設定的DEM格網間隔和瓦片大小,將測區(qū)進行分塊,并為離散點建立規(guī)則格網索引。
(4) 鑒于多波束等測深數據受慣導定位定姿精度、聲速效應、測船姿態(tài)變化等多種因素影響,相對地面測量誤差較大,兼顧水下地形相對較平滑,采用高斯濾波器對DEM進行濾波處理。高斯濾波核函數如式(3)所示,能較好地顧及光滑性,適合水下地形濾波;為加快運算速度,二維卷積可由2次一維卷積運算替代,可將算法復雜度由O(n2)降至O(2n),其中n為卷積窗口大小。
(5) 開展DEM瓦片金字塔構建。對DEM瓦片按0.5倍大小降采樣,即將256×256大小的瓦片降采樣為128×128,并將相鄰行列的4個降采樣瓦片合并成一個新的256×256瓦片。
(6) 按照步驟(5),逐級降采樣與合并,得到一個多分辨DEM瓦片金字塔,層數如公式(4)所示。
(7) 從金字塔底層到頂層進行DEM瓦片數據冗余檢測。對于相鄰兩層金字塔瓦片,若上一層瓦片的覆蓋范圍內,下層瓦片DEM高差方差均小于設定閾值,則刪除下層瓦片。
(8) 水下地形通常缺少真實影像紋理,為渲染得到立體感、光滑的三維地形,需逐網格點計算平均法向量,使模型面片獲得正確的光照,產生陰影與立體效應。格網點平均法向量的計算方法如圖1所示,取格網8鄰域點,與當前點0連線,建立8個空間向量,將兩兩相鄰向量進行叉乘計算法向量,取8組歸一化法向量的均值,如式(5)所示。為保證瓦片接邊處法向量的一致性,在瓦片接邊處取該瓦片與相鄰瓦片鄰域點計算平均法向量。
1.2DEM瓦片數據存儲管理
目前,大部分的三維可視化系統(tǒng)采用基于文件系統(tǒng)的存儲管理方式實現大數據量地形數據的調度和漸進繪制,該方式需要建立大量的文件或文件夾,并且其數據保密與數據更新困難。而基于數據庫系統(tǒng)的存儲管理模式可有效解決這些問題。鑒于在現有數據庫中Oracle數據庫在穩(wěn)定性和性能方面更勝一籌,本文采用Oracle數據庫存儲DEM數據。每級(level)金字塔的基本信息對應一條記錄,存儲在DEM信息數據表中,如表1所列。金字塔各級瓦片數據則存儲在如表2所列DEM瓦片數據表中,每個瓦片對應一條記錄。為便于快速調度,將瓦片DEM高程數據及法向量數據以二進制方式存儲。其中,高程數據采用float數據類型存儲,每個高程數據占用4字節(jié)存儲空間;將法向量數據歸一化后,映射到(0~255)區(qū)間,并采用uchar數據類型存儲,每個三維法向量僅占3字節(jié)存儲空間,可大大減少數據量,從而提高查詢調度效率。為保證數據安全,為數據庫設計不同權限的用戶,各用戶通過有效用戶名與密碼登錄。
2水下地形三維可視化
2.1模型自適應分層設色
與陸地地形相比,水下地形通常起伏變化較小,僅僅依靠法向量與光照模型,立體感較差;而多波束等現有測量系統(tǒng)無法采集得到水下地形的真實紋理數據。因此,通過合理的高程分層設色方法,結合法向量與光照模型可增強水下地形立體效果。分層設色法是以一定次序的顏色或色調變化來顯示質量特征和數量逐級變化的方法。常規(guī)的分層設色方法需要人為設定各關鍵高程點的顏色,較為繁瑣;或采用等高差自動均勻分層設色的方法,難以表現局部地形的微小變化。為此,本文借鑒直方圖規(guī)定化數字圖像增強的思想,設計了一種自適應分層設色的方法,流程如下:
(1) 設定n種(通常5~10種)不同RGB顏色。
(2) 逐瓦片統(tǒng)計DEM高程,得到整個測區(qū)的高程最小與最大值(Zmin,Zmax),并按設定高程間距(如0.5 m)將Zmin~Zmax區(qū)間劃分為m個子區(qū)間,統(tǒng)計每個高程子區(qū)間高程點的數量,即得到測區(qū)高程直方圖。
(3) 按式(6)計算高程直方圖的縮小倍率λ,將直方圖中每組數據縱坐標值縮小λ倍并取整。
(4) 按直方圖縱坐標值為m個子區(qū)間逐個分配不同數量的顏色(色階),并采用分段線性插值法,根據區(qū)間高程插值出每種顏色的RGB值。
(5) 將插值后顏色按高程次序排列,得到一組包含高程值與RGB顏色的漸變色卡。按色卡為DEM瓦片進行著色。
顯然,該方法的本質是根據水下地形高程分布密度進行自適應設色,給高程變化區(qū)間小、分布范圍大的區(qū)域分配數量更多的色階,使得該區(qū)域的自動設色對高程變化更加敏感,從而能顯著地表現出局部地形的微小變化。
2.2DEM數據調度與渲染
采用金字塔模型僅解決了海量數據的組織與存儲問題,然而計算機顯卡繪圖能力有限與三維可視化渲染質量、效率之間的矛盾還需要采用LOD(Level of Detail,層次細節(jié)模型)技術來消除。LOD的思想是指對同一個場景的物體使用具有不同細節(jié)的描述方法得到一組模型,供繪制時選擇合適的細節(jié)模型使用。層次細節(jié)簡化技術在不影響畫面視覺效果的條件下通過逐次簡化景物的表面細節(jié)來減少場景的幾何復雜性,從而提高繪制算法的效率。該技術通常對每一原始多面體模型建立幾個不同逼近精度的幾何模型,與原模型相比,每個模型均保留了一定層次細節(jié)。 當從近處觀察物體時,采用精細模型;而當從遠處觀察物體時,則采用較為粗糙的模型。因此,DEM瓦片數據的動態(tài)調度與實時渲染是實現LOD的關鍵,即以地形數據預處理后形成的瓦片層次數據組織結構為前提,在地形場景繪制過程中采用自適應層次組織結構的數據。
本文采用四叉樹算法實現DEM瓦片的動態(tài)調度,具體實現方法如下:
(1) 對于0級(金字塔最頂層)DEM瓦片,分別連接兩對邊中點,使之分裂成4 個大小相同的子級瓦片。
(2) 對于每一個子級瓦片,取其4個角點,采用三維投影的模型矩陣、投影矩陣、視圖矩陣,計算瓦片在屏幕上的投影位置。
(3) 根據子瓦片投影位置,判斷該瓦片是否在窗口顯示范圍內。
(4) 如果子瓦片在顯示范圍內,則進一步估算其投影面積和顯示分辨率。
(5) 如果該瓦片的細節(jié)層次尚未達到顯示分辨率要求,則按步驟(1)~(4)對該子瓦片繼續(xù)分裂。
(6) 依此遞歸,直至劃分至滿足要求的細節(jié)層次,則從數據庫中調度對應層級的DEM瓦片進行三維渲染。
按照上述方法,動態(tài)加載的LOD地形由很多不同分辨率的DEM瓦片組成,若相鄰兩個瓦片具有不同的剖分層次,其邊界拼接處的高程值不完全相等,從而產生裂縫或孔洞。為了消除三維場景的裂縫,將DEM瓦片的每個格網剖分為兩個三角形來繪制,并在不同分辨率瓦片接邊處將兩兩相鄰的三角形合并成一個三角形來繪制,繪制方法如圖2所示。
采用四叉樹模型對水下地形進行LOD處理后,可在保證地形渲染質量的同時,大幅減少實時渲染的DEM網格數量。此時,大規(guī)模場景三維地形渲染效率還取決于從數據庫中實時調度DEM瓦片數據的速度。應用程序對數據庫的訪問通常采用ADO等中間件來實現,讀取大量數據時效率較低,難以滿足地形實時渲染對數據快速調度的要求。為此,本文采用OCI(Oracle Call Interface)直接與Oracle連接,以解決DEM瓦片數據實時調度的效率問題。OCI是由Oracle提供的用于開發(fā)前端應用程序及中間件的C/C++開發(fā)類型庫,是Oracle 數據庫的底層訪問接口,相較于 ADO(ActiveX Data Objects)、ODBC(Open Database Connectivity)等中間件技術,ICO雖然很復雜,但擁有最高的效率和最全的功能。
3試驗分析
本文采用VC++編程環(huán)境、OpenGL圖形庫開發(fā)了水下地形三維可視化系統(tǒng)。系統(tǒng)主要功能包括:水下三維地形點云導入、金字塔多分辨率DEM瓦片建模、DEM瓦片數據入庫、DEM自適應分層設色、LOD地形三維可視化、三維場景漫游、三維動畫、空間量測與定位等。以杭州灣海底管道三維可視化為例,介紹本文研究成果的應用。海底管道是最快捷、最安全和經濟可靠的海上油氣運輸方式,也是海上油(氣)田開發(fā)生產系統(tǒng)的主要組成部分,由于長期受到海流的沖刷、海洋地質災害以及人類活動等因素的影響,易發(fā)生斷裂,造成巨大的經濟損失和嚴重的環(huán)境污染。通過海底三維可視化技術,可直觀、全面再現和定量分析海底管道的掩埋、裸露、懸空狀態(tài),為海底輸油管道安全監(jiān)管提供強有力的技術支持。
測區(qū)范圍約為24 km×18 km,多波束三維點云數據文件大小為9.7 GB,平均點距約1.0 m。將離散點云插值成規(guī)則格網DEM,最高分辨率DEM的格網大小為0.5 m×0.5 m,金字塔共分為9層,DEM總數據量約為9.3 GB,高程分布范圍為-3 ~ -20 m。三維可視化渲染效果如圖3所示。其中,三維管道模型和樁號注記由現有BIM(Building Information Modeling)模型轉換為3ds三維模型交換格式后直接導入,系統(tǒng)通過解析3ds數據文件中的材質與紋理數據、三維頂點坐標、三角網頂點索引與面信息,將BIM模型加載到三維地形場景。采用普通電腦測試(內存:4 GB;顯卡:NVIDIA Quadro 2000;CPU:Core i7-4790 @3.60 GHz),內存消耗約130 M,三維可視化渲染速度約為50FPS(Frames Per Second,幀/s),三維場景漫游與互操作流暢,有效克服了大規(guī)模地形三維可視化對超高計算機硬件配置的依賴問題。通過自適應分層設色,使得海底高程變化較小的區(qū)域有顯著的著色差異,結合法向量與光照模型,對水下地形的三維可視化表達有了良好的立體效應和視覺效果。
4結 語
本文從海量地形數據組織與儲存、LOD地形調度、三維地形渲染三方面入手,研究了大規(guī)模水下地形三維可視化技術。采用規(guī)則格網DEM與瓦片金字塔模型,設計了oracle數據庫,實現了對大規(guī)模水下地形數據的組織與存儲;提出一種基于高程分布密度的自適應分層設色法,增強了水下地形立體感;研究了一種基于四叉樹和OCI的LOD地形調度與無縫渲染方法,實現了大規(guī)模水下地形的實時三維可視化。典型應用結果表明,本文研究方法能取得較高的效率和良好的視覺效果,可突破計算機硬件性能限制,可在普通PC機上實現大規(guī)模水下地形的實時、交互式三維可視化。
參考文獻:
[1]WILSON D S,LEIFER I,MAILLARD E.Megaplume bubble process visualization by 3Dmultibeam sonar mapping[J].Marine and Petroleum Geology,2015,68:753-765.
[2]王楠,徐永臣,陶常飛.多波束海底地形三維虛擬仿真研究[J].海岸工程,2019,38(3):203-209.
[3]江玉玲,彭國均.海底地形的三維可視化建模研究[J].重慶理工大學學報(自然科學版),2015,29(10):139-142.
[4]李四海.三維可視化技術在海底環(huán)境探測中的應用[J].海洋測繪2003,23(4),:29-32.
[5]李軍,滕惠忠.海底三維可視化技術及應用[J].海洋測繪,2004,24(4):44-47.
[6]林鐘揚,金翔龍,顧明光,等.基于MapGIS-TDE三維平臺的地質模型構建[J].人民長江,2019,50(增2):85-88.
[7]尹長林,詹慶明,許文強,等.大規(guī)模三維地形實時繪制的簡化技術研究[J].武漢大學學報(信息科學版),2012,37(5):555-559.
[8]FU Z L,ZHANG W Y.Data block partition and database based large scale terrain 3D visualization[C]∥International Conference on Computational Intelligence and Software Engineering,IEEE,2009:1-4.
[9]劉小飛,羅功林,嚴勇.基于3D Max和CryENGINE 3的水電工程三維可視化[J].人民長江,2020,51(11):219-223.
[10]ZHOU D,LIU Q,ZHANG WH.Key technology with large-scale three-dimensional terrain management[C]∥2nd International Conference on Computer Engineering and Technology,IEEE,2010:443-447.
[11]王響,雷小永,戴樹嶺.基于視點預測的大規(guī)模地形的實時渲染[J].系統(tǒng)仿真學報,2013(6):1202-1206.
[12]任宏萍,靳彪.基于4叉樹的LOD地形實時渲染技術[J].華中科技大學學報(自然科學版),2011(2):6-10.
[13]董有福,孟順時,和嫻.DEM徑向基插值搜索方式優(yōu)選分析[J].人民長江,2019,50(10):131-135.
[14]JAMES C.Hierarchical geometric models for visible surface algorithms[J].Communication of the ACM,1976,19(10):547-554.
[15]周建紅,楊彪,王華,等.海量低空機載LiDAR點云的地形斷面快速生成算法[J].測繪科學技術學報,2018,35(2):170-174.
(編輯:劉 媛)
Abstract:In view of the contradiction between massive data of large-scale underwater terrain and limited computer memory space and graphics card drawing efficiency,we propose a method of massive terrain data organization and storage based on DEM tile pyramid model and Oracle database,and a quadtree scheduling method based on perspective projection to achieve real-time and efficient rendering of level of detail (LOD) terrain.Moreover,considering the small undulation and poor stereo effect of underwater terrain,an adaptive hierarchical coloring method based on elevation distribution probability density is proposed to enhance the stereo effect.Typical application results show that the proposed method can realize real-time and interactive 3D visualization of large-scale underwater topography on ordinary PC,and achieve high efficiency and fine visual effect.
Key words:underwater topography;3D visualization;level of detail (LOD);DEM;adaptive hypsometric layer