,,2,,
(1.山東科技大學 測繪科學與工程學院,山東 青島 266590;2.海島(礁)測繪技術國家測繪地理信息局重點實驗室,山東 青島 266590)
多波束測深系統在水深測量中應用廣泛[1-3],如何利用多波束數據實現海底地形的可視化越來越受到關注。自20世紀40年代以來,隨著計算機技術的出現和蓬勃發展,以及計算機圖形學、計算機輔助制圖、現代數學理論等的完善和應用,各種數字地形的表達方式與可視化技術得到迅速發展。地形可視化技術經歷了從簡單到復雜、從低級符號化到高級符號化、從抽象到逼真的過程,其表達方法也從二維可視化向三維可視化轉變[4-5]。在可視化方法中,等高線法能較為科學地反映地形的高程、坡度坡向、山脊山谷等基本形態及其變化,但是缺乏視覺立體感,無法表達等高線之間的微小地貌;分層設色在等高線地形圖的基礎上繪制,用不同的色調和色相只能概略表達地勢起伏狀況,且某些要素符號的顏色易受干擾;明暗等高線法、半色調符號表達法等只能在普通二維地形圖中表達出相對的地勢起伏,上述方法均難以直觀、方便地反映海底地形的真實變化。
海底地形三維可視化可以利用多波束測深系統等獲取的全覆蓋離散數據生成海底數字高程模型,并通過疊加顏色渲染以及光照等方法,建立真實感的三維海底場景[6]。三維地形渲染能夠運用光照與顏色來表達和區分不同的海底水深,選取合適的渲染模型和方法能夠高效地表達海底地形,具有立體感強、形象美觀的特點,在三維可視化領域具有重要作用且被廣泛應用[7-8]。本文分析了計算機數字圖像處理中常用的顏色模型,其中HSL顏色模型能夠直觀、直接地用色調、飽和度、亮度描述彩色物體[9],相對于其他顏色模型而言,HSL顏色模型用來描述顏色更加自然,更具有視覺直觀性,因此基于HSL顏色模型提出了海底地形的多色漸變渲染算法。在創建三維海底場景時,光照具有十分重要的作用,只有疊加上光照場景才會具有真實感,雖然其本身的計算比較復雜,但OpenGL圖形庫的函數簡化了光照計算的算法[10]。因此,基于OpenGL實現真實感光照,并基于MFC與OpenGL開發海底地形三維可視化工具,利用實測數據,比較本文提出方法與其他成圖軟件的渲染效果。
在計算機數字圖像處理中常用的顏色模型包括HSL模型和RGB模型。
HSL顏色模型通過對色相(H)、飽和度(S)、亮度(L)三個顏色通道的變化及其相互之間的疊加得到各式各樣的顏色,HSL模型如圖1所示。
HSL的h(hue)分量代表人眼所能感知的顏色范圍,即是色相,取值范圍為[0,360),如圖2所示。s(saturation)分量代表色彩的飽和度,取值范圍為[0,1],用于描述相同色相、亮度下色彩純度的變化,數值越大顏色越鮮艷。l(lightness)分量代表色彩的亮度,取值范圍為[0,1],用于描述色彩的明暗變化,數值越大色彩越亮越接近白色,數值越小色彩越暗越接近黑色。

圖1 HSL顏色模型[11]Fig.1 HSL color model

圖2 色相取值范圍Fig.2 Value range of hue
RGB顏色模型的顏色空間采用笛卡爾直角坐標系來定義,三個坐標軸分別對應紅、綠、藍三個分量,三個分量的取值范圍均為[0,255]。
由HSL顏色模型的性質可知,固定飽和度與亮度,根據水深對色相H線性插值即可實現按照光譜順序連續變化的多色漸變渲染。而對于RGB顏色模型,通過設定最大水深值與最小水深值的顏色,根據水深值對三個顏色分量分別進行線性插值計算只能獲得兩種顏色漸變的渲染效果。例如,設計色譜首末端的顏色為紅色和藍色,對于南海某海域同一海底數字高程模型,兩種不同顏色模型的渲染效果截然不同,如圖3所示。

圖3 不同顏色模型的渲染效果Fig.3 The rendering map displayed by different color models
RGB顏色模型只有首末端兩種顏色的漸變渲染,而HSL顏色模型則是紅、黃、綠、青、藍按照光譜順序連續變化的多種顏色平滑漸變的渲染。因此,HSL顏色模型渲染方法色彩豐富、顏色漸變平滑,且算法較易實現,能夠達到較好的渲染效果。
針對HSL顏色模型的多色漸變渲染方法,在實際應用中,為了使顏色更加純正,通常飽和度S取值為1.0;由于亮度取值過大顏色接近白色,亮度過小又接近黑色,因此通常亮度l取值為0.5;鑒于海底地形的色譜通常為紅、黃、綠、青、藍,色相h的取值范圍為[0,240]。
當海底最大水深值為Zmax,最小水深值為Zmin時,色相取值范圍為Hmin~Hmax,則水深為Z時的h、l、s的值分別為:
(1)
由于OpenGL不支持HSL顏色模型,因此需要將HSL模型轉換成OpenGL所支持的RGB顏色模型[12]。設HSL模型的色相、飽和度、亮度分別為h、s、l,h的取值范圍為[0,360),s與l取值范圍為[0,1],引入中間變量p、q,計算公式如式(2)、式(3)所示:
(2)
p=2×l-q。
(3)
設r、g、b分別為RGB顏色模型的紅、綠、藍分量,其計算公式如式(4)所示:

(4)
根據式(5)進一步計算r:

(5)
再根據式(6)計算出r最終的真實值:

(6)
同理,計算出g、b的值,即完成了HSL模型到RGB模型的轉換。
HSL模型的多色漸變,可采用分層設色的方法,即需要根據水深劃分區間,每一個水深區間對應一個顏色漸變區間。海底分層設色的原則是:隨著海底高程的變高,色調由冷色調向暖色調漸變。水深越深越接近藍色,水深越淺越接近紅色,如圖4所示,使地形的起伏和形態特征具有一定的立體感,直觀地表達海底的起伏變化。

圖4 色譜Fig.4 Chromatograph
在海底地形渲染中,通常采用的顏色漸變區間為紅到黃、黃到綠、綠到青、青到藍四個區間,因此選取三個高程邊界點,設為Z1、Z2、Z3(Z1>Z2>Z3)。當高程Z>Z1時,顏色漸變區間為紅到黃;當高程Z1>Z>Z2時,顏色漸變區間為黃到綠;當高程Z2>Z>Z3時,顏色漸變區間為綠到青;當高程Z (7) DEM只能反映海底地形的起伏狀況,一般地,對于Z1、Z2、Z3的取值,可根據具體的DEM高程數據以及場景的繪制要求,人工設置三個高程邊界點,因地制宜地設計合理的顏色方案,實現地形多色漸變渲染,使顏色渲染對比顯著、直觀立體。 光照處理是增強圖形真實感最重要的手段,只有疊加上光照才能增強多層次的顏色漸變和明暗過渡的三維視覺效果[13],如圖5所示。 為了獲得更立體直觀的三維暈渲效果,本文運用OpenGL對光照進行設置,OpenGL把現實世界中的光照系統分為光源、材質和光照環境三部分。在RGBA模式下,與此相對應,影響光照效果的因素主要是光源屬性、材質屬性以及光照模型的參數設置。 OpenGL在場景中設置光照的步驟如下: ①計算每一個頂點的法線向量。 法線反映了物體相對于光源的朝向,決定了DEM格網點的光強,進而決定了光照效果。在格網DEM中,將曲面劃分成許多的小三角形面,一個頂點被多個三角形面共享,如圖6所示,因此每個頂點的法向量是所有共享該頂點面的法向量平均值,n為該格網點水深值。 圖6 法線計算示意圖Fig.6 The schematic diagram of normal calculation 計算出向量n2與n3,再計算其叉積,將叉積進行單位化,即為n、n2、n3組成的三角形面的法向量,計算如式(8)所示: (8) 同理計算出6個共享頂點的面的法向量,取其平均值即可得到該頂點的法向量。在OpenGL中,glNormal3f()函數用于指定當前頂點的法向量。 ②創建光源,設置光源的屬性。 光源的屬性包括顏色、位置和方向。OpenGL中,使用glLightfv()函數創建光源、指定光源的全部屬性,設置完畢后通過glEnable()函數啟用光源。 OpenGL將光源分成環境光、漫反射光、鏡面光,通過分別計算這三種類型光的分量,將三種分量疊加形成最終的光照效果。環境光不依賴于光源的方向,漫反射光只依賴于光源的方向和法線的方向,而鏡面光依賴于光源的方向、法線的方向和視角的方向。環境光默認值是{0.0,0.0,0.0,1.0},即光源中沒有環境光;漫反射光與光源的顏色關系最為密切,默認取值為{1.0,1.0,1.0,1.0},即亮白色。取值不同的光源分量生成的地形圖也不同(圖7),只有根據具體的海底數字高程模型適當設置光源的三個分量取值,才能獲得理想的光照效果。 圖7 光源分量取值對地形圖的影響Fig.7 The effect of light value on topographic map 不同的光照方向產生的光照效果也不同,在實際應用中,通常光源方向設置為太陽方位角315°太陽高度角45°時,能夠獲得較好的渲染效果[14]。 ③選擇OpenGL的簡單光照模型。 光照模型是模擬場景中物體表面所顯示的顏色和明暗。OpenGL啟用光源之后,通過glLightModel()函數指定光照模型的參數,包括全局環境光強度、觀察點位置、正反面是否采用相同的光照計算等。 ④設置物體的材質屬性。 物體模型的最終顏色是由場景中的光源和物體本身的材質共同決定的,通過HSL模型多色漸變渲染確定物體的顏色之后,在OpenGL中開啟GL_COLOR_MATERIAL顏色材質模式即可實現著色。 以上參數均可根據具體的DEM,通過交互界面人工調整,合適的光源參數、材質參數、光源模型參數可以使得最后形成的海底地形圖更具有真實感。 本文以VC++6.0為開發平臺,采用OpenGL三維圖形庫開發了海底地形可視化工具。為比較分析本文提出的海底地形渲染方法的效果,利用地形起伏明顯的實測多波束數據進行實驗。實驗數據為南海某海域采用Seabeam3012系統采集的多波束測深數據,平面覆蓋范圍約390 km×280 km,水深范圍約為320~7 200 m。 通過反距離加權插值算法格網化得到規則格網DEM[15],格網文件維數為1 500×1 300,共195萬個水深值點。 圖8 地形圖繪制流程Fig.8 The flow chart of geographical map drawing 本文提出的海底地形渲染方法,詳細流程如圖8所示: 1) 光照參數設置。創建高度角為45°、方位角為315°、位于地形圖西北方向的光源。為了避免光源顏色對海底地形顏色渲染的影響,光源中環境光的RGBA顏色設置為GLfloatlight_Ambient[]={0.5,0.5,0.5,1.0};散射光與光源的顏色關系最為密切,顏色設置為GLfloatlight_Diffuse[]={1.0,1.0,1.0,1.0};鏡面反射光顏色設置為GLfloatlight_Ambient[]={1.0,1.0,1.0,1.0}。 2) 觀察視點位置設置。方位角180°、高度角90°、方位角180°、高度角45°。 3) 繪制圖元。通過三角形圖元繪制地形圖,OpenGL通過glBegin(GL_TRIANGLES)繪制三角形,使用glVertex3f(x,y,z)函數依次指定三角形的三個頂點,三角形相互連接即形成地形圖。在繪制圖元過程中,需要計算每一個點的法線以實現光照效果,計算每一個點的顏色,實現地形多色漸變效果。 通過交互界面調整配色方案,設計合理的顏色渲染方案。根據實驗DEM數據的水深點分布,設置的顏色漸變區間為:>5 600 m以深漸變區間為青到藍;4 200至5 600 m漸變區間為綠到青;2 800至4 200 m漸變區間為黃到綠;<2 80 0m以淺漸變區間為紅到黃。根據各點的水深值,采用本文提出的基于HSL模型的多色漸變渲染算法,得到各點的r、g、b值,使用glColor3f(r,g,b)函數指定該點的顏色。 由本文所提到的法線計算方法獲得每一點的法線,并使用glNormal3f(x,y,z)函數指定法線向量。 經過陰影和顏色渲染處理后,渲染效果如圖9所示。 圖9顯示出本文所提出的方法渲染效果比較平滑,顏色豐富,地形層次變化明顯。結合光照效果,增加了地形圖的立體性、直觀性以及地形顯示的真實感,而且能夠根據具體的海底DEM因地制宜的設計合理美觀的渲染方案。 Surfer是一個功能齊全的三維可視化和表面建模軟件,被廣泛用于地形三維可視化方面,采用Surfer軟件加入太陽方位角為315°、太陽高度角為45°的光照,調整配色方案,經過陰影和顏色渲染處理后,得到海底渲染圖(圖10(a))。ArcMap中的“山體陰影”功能通過考慮光源的角度和陰影,根據DEM創建并顯示暈渲地貌,在創建山體陰影圖時,設置太陽方位角為315°、太陽高度角為45°,ArcMap“山體陰影”的渲染效果(圖10(b))。 圖9 本文方法的渲染效果圖Fig.9 The rendering map displayed by the method presented in this paper 圖10 Surfer與ArcMap與軟件的渲染效果圖Fig.10 The rendering map displayed by Surfer and ArcMap 由上述地形圖可見,本文所提出的渲染方法與兩種商用軟件均能夠真實、準確地表達海底地形的起伏變化,能夠顯示地形細節,顏色渲染過渡平滑,均可以調整配色方案,且本方法和Surfer軟件均可以通過調整視點角度來全方位觀察海底地形。該方法在地形顯示的準確度、渲染效果的美觀度、交互操作的靈活度等方面同上述兩種商用軟件的功能相當。 基于MFC與OpenGL三維圖形庫,實現了真實感海底地形場景的建立。根據實驗分析,得到如下結論: 1) HSL模型多色漸變渲染算法固定飽和度與亮度,只需線性插值色相即可獲得多色漸變效果,能夠采用分層設色設計出合理、美觀的顏色方案,渲染效果較好; 2) OpenGL光照計算使海底地形表達更加立體,獲得更立體直觀的三維渲染效果,保證了地形表達的真實感。 [1]陽凡林,韓李濤,王瑞富,等.多波束聲納水柱影像探測中底層水域目標的研究進展[J].山東科技大學學報(自然科學版),2013,32(6):75-83. YANG Fanlin,HAN Litao,WANG Ruifu,et al.Progress in object detection in middle and bottom-water based on multibeam water column image[J].Journal of Shandong University of Science and Technology (Natural Science),2013,32(6):75-83. [2]DJIKPESSE H,SOBREIRA J F F,HILL A,et al.Recent advances and trends in subsea technologies and seafloor properties characterization[J].The Leading Edge,2013,32(10):1214-1220. [3]ATANU B,SAXENA N K.A review of shallow water mapping systems[J].Marine Geodesy,1999,22(3):249-257. [4]王翠霞.基于OpenGL的三維地形可視化技術理論與方法研究[D].青島:山東科技大學,2009:2-5. [5]韓李濤,范克楠.三維地形顏色漸變渲染的光滑過渡方法研究[J].地球信息科學,2015,17(1):31-36. HAN Litao,FAN Kenan.Research on smooth transition of color rendering for 3D terrain[J].Journal of Geo-information Science,2015,17(1):31-36. [6]魏金桃,方強飛,齊永剛.三維海底暈渲圖繪制方法探究[J].海洋測繪,2013,33(1):60-62. WEI Jintao,FANG Qiangfei,QI Yonggang.Research on methods of drawing three-dimensional submarine shaded relief map[J].Hydrographic Surveying and Mapping,2013,33(1):60-62. [7]胡靜妍,李霖,李雄科.基于DirectX的地貌暈渲實現機制研究[J].測繪科學,2004,29(4):20-22. HU Jingyan,LI Lin,LI Xiongke.Research on computer hillshading based on DirectX[J].Science of Surveying and Mapping,2004,29(4):20-22. [8]范克楠.大規模海底地形可視化關鍵技術研究[D].青島:山東科技大學,2013:27-33. [9]MASTERS B R.Digital image processing,third edition[J].Journal of Biomedical Optics,2009,14(2):029901. [10]黎華,肖偉,黃海峰,等.三維真實感地形生成的關鍵技術研究[J].測繪科學,2006,31(4):57-59. LI Hua,XIAO Wei,HUANG Haifeng,et al.Study on the key technology of generation of 3D realistic terrain[J].Science of Surveying and Mapping,2006,31(4):57-59. [11]冉冉,楊唐文,阮秋琦.結合HSL模型與傅里葉描述子的三維彩色物體識別[J].智能系統學報,2011,6(1):73-78. RAN Ran,YANG Tangwen,RUAN Qiuqi.Recognizing a colored object based on an HSL model and Fourier descriptors[J].CAAI Transactions on Intelligent Systems,2011,6(1):73-78. [12]LIVNY Y,KOGAN Z,EI-SANA J.Seamless patches for GPU-based terrain rendering[J].Visual Computer,2009,25(3):197-208. [13]李治國,郭立.基于OpenGL的光照處理技術及實現[J].計算機仿真,2008,25(3):221-223. LI Zhiguo,GUO Li.Implementation of lighting technique based on OpenGL[J].Computer Simulation,2008,25(3):221-223. [14]江文萍,毋河海,杜清運,等.大型彩色地貌暈渲圖的自動生成技術研究[J].武漢大學學報(信息科學版),2004,29(6):496-499. JIANG Wenping,WU Hehai,DU Qingyun,et al.Automatic generation technology of large-scale colored hill-shading[J].Geomatics and Information Science of Wuhan University,2004,29(6):496-499. [15]AGUILAR F J,AGUERA F,AGUILAR M A,et al.Effects of terrain morphology sampling density and interpolation methods on grid DEM accuracy[J].Photogrammetric Engineering & Remote Sensing,2005,71(7):805-816.1.2 OpenGL光照計算


2 實驗與分析



3 結論