曹 柱, 蘇天赟, 王國宇
(1.中國海洋大學信息科學與工程學院,山東 青島 266100; 2.國家海洋局第一海洋研究所,山東 青島266061)
研究簡報
大規(guī)模海洋水文環(huán)境多維可視化技術(shù)研究*
曹 柱1, 蘇天赟2, 王國宇1
(1.中國海洋大學信息科學與工程學院,山東 青島 266100; 2.國家海洋局第一海洋研究所,山東 青島266061)
隨著三維可視化技術(shù)在海洋環(huán)境仿真和信息表達方面的研究不斷深入,在應(yīng)用領(lǐng)域?qū)Q髷?shù)據(jù)可視化結(jié)果的真實感、可視化過程中的實時交互性要求越來越高?;贕PU技術(shù)和OSG(Open Scene Graph)三維渲染引擎,研究OSG三維交互關(guān)鍵技術(shù)和體繪制渲染技術(shù),開發(fā)一套面向大規(guī)模海洋水文環(huán)境數(shù)據(jù)的可視化軟件,實現(xiàn)海洋要素場填色圖、等值線繪制、等值面繪制、要素場體繪制和海流場動態(tài)模擬。為了更好的表達海量海洋水文環(huán)境數(shù)據(jù)的空間特性和實時性,在場景中建立節(jié)點對幾何對象進行管理,引入回調(diào)機制實現(xiàn)動態(tài)渲染,加入CUDA(Computing Unified Device Architecture)并行計算提高計算速率,采用NetCDF(Network Common Data Form)文件格式對數(shù)據(jù)進行存取,應(yīng)用GPU編程技術(shù)實現(xiàn)海洋水體環(huán)境要素快速體繪制。通過實踐,開發(fā)實現(xiàn)的海洋水文環(huán)境可視化軟件能夠?qū)Q笏w環(huán)境要素的屬性和變化過程進行高效、直觀的模擬和顯示。
海洋環(huán)境; GPU; OSG; NetCDF; 多維可視化
如今海洋與人們的生活息息相關(guān),隨著海洋資源不斷的開發(fā)利用,針對海洋的科研活動日益增多,海洋環(huán)境信息迅猛增加,海洋信息的可視化研究扮演著越來越重要的角色。同時,伴隨海洋信息技術(shù)的發(fā)展,大規(guī)模海洋水文環(huán)境數(shù)據(jù)的多維動態(tài)可視化成為海洋研究的熱點,主要體現(xiàn)在對海溫、海流、鹽度、海水密度等水體環(huán)境要素信息的模擬和仿真。其中,Thomas Butkiewicz和Colin Ware對海洋流模型的多點觸控3D探索性分析[1]。Yinlong Sun、Erich Ess等通過Streamline Splatting算法可視化洋流和大氣流[2]。何亞文[3]等實現(xiàn)了海洋環(huán)境數(shù)據(jù)時空特性的可視化分析。為了適應(yīng)海洋科研和開發(fā)需求,海洋環(huán)境可視化系統(tǒng)相繼開發(fā)并應(yīng)用。Google Ocean可以針對全球海底地形實現(xiàn)三維展現(xiàn),但在海洋水體要素的三維可視化方面有所欠缺;IDV針對海洋水體要素的處理,主要是通過二維平面、截面和剖面顯示價值信息;美國大氣氣象局的Vapor雖然對海洋水體環(huán)境實現(xiàn)了三維顯示,但針對海量數(shù)據(jù)的渲染效率和渲染質(zhì)量有待提高;國家海洋信息中心開發(fā)的中國數(shù)字海洋系統(tǒng),實現(xiàn)了中國海域海底、水體等多種海洋自然要素、海洋現(xiàn)象及其變化過程的數(shù)字化重現(xiàn)和立體展示[4],但其主要是依賴于數(shù)字球體平臺對海洋環(huán)境信息進行2維或2.5維展示,缺少在立體環(huán)境下對海洋水文環(huán)境要素的分析和展示。
本文針對基于大規(guī)模海洋水文環(huán)境數(shù)據(jù)的特點,通過點模式、線模式、面模式、體模式分析,對等值線追蹤、等值面生成、剖面繪制、體繪制等關(guān)鍵技術(shù)進行研究。同時,在應(yīng)用OSG渲染引擎的基礎(chǔ)上,基于GPU技術(shù)和NetCDF數(shù)據(jù)存儲技術(shù),實現(xiàn)大規(guī)模的海洋水文環(huán)境數(shù)據(jù)的三維仿真,并提高其繪制效率。
系統(tǒng)框架主要由數(shù)據(jù)管理、數(shù)據(jù)渲染、應(yīng)用顯示三部分組成,系統(tǒng)框架見圖1。
數(shù)據(jù)管理模塊主要應(yīng)用NetCDF數(shù)據(jù)存取方式實現(xiàn)多維海洋水文環(huán)境數(shù)據(jù)的解讀、存取及管理。NetCDF作為一種通用的數(shù)據(jù)存取方式,可對網(wǎng)格數(shù)據(jù)進行高效地存儲、管理、獲取和分發(fā)等操作,由于其存儲量小、讀取速度快、自描述及讀取方式靈活等優(yōu)點,被廣泛用作大氣科學、水文、海洋學等領(lǐng)域的數(shù)據(jù)存儲標準[5]。NetCDF為應(yīng)用提供了公用的C接口并且支持基本的數(shù)據(jù)類型,主要包括:byte、char、short、long、float和double[6]。針對于海洋數(shù)據(jù)的動態(tài)、多維、海量等數(shù)據(jù)特點,應(yīng)用NetCDF數(shù)據(jù)格式存儲,可以根據(jù)海洋三維場景渲染的需要,方便、快速地獲取目標數(shù)據(jù)。NetCDF應(yīng)用變量、維數(shù)、屬性構(gòu)成數(shù)據(jù)存儲,并且提供查詢功能,因此能夠較好的實現(xiàn)海洋數(shù)據(jù)的統(tǒng)一管理與共享,實現(xiàn)海洋水體要素數(shù)據(jù)的動態(tài)表達與分析。
數(shù)據(jù)渲染模塊采用多線程,集成MFC和OSG完成多維海洋水體要素數(shù)據(jù)的可視化渲染與分析。OSG三維渲染引擎由一系列圖形學相關(guān)的模塊組成,主要為圖形圖像應(yīng)用程序的開發(fā)提供場景管理和圖形渲染優(yōu)化的功能,并且使用已成為工業(yè)標準的OpenGL底層渲染的API[7-8]。為方便實現(xiàn)數(shù)據(jù)庫的組織和管理、對場景圖形的操作以及對外部數(shù)據(jù)庫的導入提供接口,OSG三維引擎利用樹狀結(jié)構(gòu)對場景數(shù)據(jù)進行組織管理,采用節(jié)點訪問、回調(diào)機制、場景交互控制等關(guān)鍵技術(shù)為使用者提供一個實時、動態(tài)、可交互的三維環(huán)境。
應(yīng)用顯示主要是響應(yīng)用戶不同操作,結(jié)合數(shù)據(jù)渲染模塊實現(xiàn)自由交互并展示可視化結(jié)果。
2.1 Delaunay繪制技術(shù)
針對海洋水文環(huán)境數(shù)據(jù)的二維填充圖的繪制,主要應(yīng)用OSG的幾何體繪制[9]技術(shù)和Delaunay算法相結(jié)合來實現(xiàn)。通過NetCDF文件操作獲取相應(yīng)的數(shù)據(jù)值(環(huán)境要素值即頂點高程值),應(yīng)用Delaunay算法,獲得的三角形數(shù)組并遍歷優(yōu)化去掉無效三角形。OSG繪制使用頂點索引機制來高效的對數(shù)據(jù)解析,使用繪圖基元構(gòu)建三角面對象(GL_TRIANGLES類型)。三角形頂點的顏色根據(jù)高程值及分層色帶進行內(nèi)插計算,用戶可通過界面設(shè)置分層色帶。實現(xiàn)流程見圖2。
繪制效果見圖3。
2.2 等值線繪制
在基于Delaunay構(gòu)建海洋水文環(huán)境數(shù)據(jù)網(wǎng)格的基礎(chǔ)上,針對高程值進行等值線的繪制能提高繪制效率和應(yīng)用的便捷性。海洋水體環(huán)境等值線繪制流程如下:首先在上文中Delaunay繪制的基礎(chǔ)上獲取建立的TIN三角網(wǎng)模型及其鄰接關(guān)系。其TIN數(shù)據(jù)結(jié)構(gòu)如下所示:
(a)三角形數(shù)組int **m_Tri; //存儲三角形頂點編號,m_Tri[i][j]中i表示三角形編號,j值0、1、2表示對應(yīng)頂點的編號,j值4、5、6表示三個鄰接三角形編號。
(b)數(shù)據(jù)點數(shù)組double **m_Points;//m_Points[i][j]中i表示頂點序號,j取值0、1、2,表示頂點的x、y、z(可以用高程值代替)值。
(c)三角形標識位數(shù)組bool *pTinMark;// pTinMark[i]中i表示對應(yīng)的三角形標識。
根據(jù)三角形的數(shù)據(jù)結(jié)構(gòu)和要素頂點的高程值計算出等值線。實現(xiàn)流程如圖4。
由于構(gòu)建等值線的相關(guān)算法已經(jīng)比較成熟,本文主要針對提高等值線的繪制效果進行闡述,包括奇異點的處理、等值線圓滑、等值線抗鋸齒等方面。針對等值線奇異點的處理,對于有奇異的三角網(wǎng)特征值加上(或減去)一個微小正數(shù)β>0,β的數(shù)量級根據(jù)要素的含量值確定,這樣可以極大提高光滑曲線與等值線的擬合程度,并且在編程實現(xiàn)過程中方便快捷。通過線性內(nèi)插方法保證等值線的光滑[10]。針對在三維場景中出現(xiàn)的等值線鋸齒現(xiàn)象通過OSG中的像素采樣率設(shè)置和osg::Multisample類應(yīng)用實現(xiàn)抗鋸齒效果。像素采樣率有2、4、8、16不同的級數(shù),用戶可以根據(jù)自己的繪制需求選擇不同的數(shù)值。繪制效果見圖5。
2.3 等值面的繪制
等值面繪制的相關(guān)算法應(yīng)用較多,其中針對大規(guī)模數(shù)據(jù)的等值面提取算法有“需要時細分”的八叉樹組織方法(Branch-On-Need Octree, BONO)和近似最優(yōu)等值面提取算法(Near-Optimal Isosurface Extraction, NOISE)等[6]。本文主要是在MC(Marching Cubes)[11]算法的基礎(chǔ)上,應(yīng)用OSG技術(shù),針對提高對等值面的繪制效率和繪制質(zhì)量問題進行闡述。由于海洋和陸地相互交叉,采集的海洋水文環(huán)境的規(guī)則數(shù)據(jù)中存在大量無效值。對于繪制效率問題,主要是改進MC算法,通過標識位剔除含有無效數(shù)據(jù)的三角網(wǎng)格,繪制方式通過設(shè)置頂點坐標數(shù)組、顏色數(shù)組、法線數(shù)組、綁定方式和數(shù)據(jù)解析改善幀速[7]。為提高繪制質(zhì)量,則基于梯度法向量的估計方法獲得等值面中的三角網(wǎng)格的頂點法向量,實現(xiàn)等值面的光滑。等值點的法向量計算公式如下:
(Ⅰ)體素頂點(i,j,k)上的灰度梯度
(1)
(Ⅱ)等值面的法向量計算
(2)
其中:v0代表等值點法向量;v1、v2代表2個端點的法向量;g1、g2代表2個端點的灰度值;isovalue代表閾值。
最后等值面采用顏色映射可視化方法對閥值變量進行著色。繪制效果見圖6。
2.4 流場繪制
海洋流場的實時繪制的主要問題在于提高海量數(shù)據(jù)流場矢量的計算和繪制速度。由于OSG主要依據(jù)場景圖來管理場景中的每個節(jié)點,這對于固定不變的節(jié)點來說是高效的,但是,對于像海流場中的海流隨時間變化的動態(tài)節(jié)點來說,計算和繪制每個節(jié)點所花費的時間較長,成為流場實時繪制的主要問題。繪制動態(tài)海流有2種不同技術(shù)。一種是通過OSG葉節(jié)點建立幾何節(jié)點,使用VBO的繪制方式,并應(yīng)用節(jié)點回調(diào)實現(xiàn)動態(tài)顯示。在其自定義畫法中,指定繪圖基元為LINES。箭頭繪制的大小、方向依據(jù)格點海流的經(jīng)緯度矢量值來確定;另一種通過使用OSG的第三方庫osgCompute[12]和CUDA[13]并行計算來實現(xiàn),實現(xiàn)流程如圖7。
場景中添加計算節(jié)點(Computation node)作為模塊(My module)和資源(My resource)的容器,應(yīng)用模塊進行并行計算,通過map()函數(shù)把頂點數(shù)組資源映射到設(shè)備內(nèi)存。在Launch()中調(diào)用cudaMemcpy(),通過cudaMemcpy HostToDevice的方式把海流數(shù)據(jù)傳輸?shù)紾PU進行并行計算,更新映射頂點數(shù)組。
實驗對比兩種方法的繪制效率如表1所示,結(jié)果表明第二種方法明顯優(yōu)于第一種。
繪制效果如圖8所示。
2.5 體繪制
體繪制一直是三維仿真領(lǐng)域的研究前沿,本文應(yīng)用光線投射算法[10](Ray Casting),結(jié)合GPGPU技術(shù),實現(xiàn)在海洋水文環(huán)境大規(guī)模數(shù)據(jù)的體繪制。使用光線投射算法主要有三點考慮:其一,該算法在解決方案上基于射線掃描過程,符合人類生活常識,容易理解;其二,該算法可以達到最高的繪制精度和最好的圖像質(zhì)量[14];其三,該算法可以較為輕松的移植到GPU上進行實現(xiàn),可以達到快速實時繪制的要求?;贕PU的光線投射體繪制在OSG場景中實現(xiàn)方法的流程圖如圖9所示。
繪制過程主要分三部分:(1)OSG的三維體紋理和空間體模型(規(guī)則的立方體)相互結(jié)合,確定立方體8個頂點的體紋理坐標;(2)利用OSG的FBO背向深度渲染場景到二維紋理,二維紋理上的每個像素的顏色值都代表“某個方向上離視點最遠的點的距離”;(3)在主渲染場景中的片段著色器中實現(xiàn)光線投射算法[15-16],主要包括透明度合成和沿射線進行采樣。透明物體的渲染,本質(zhì)上是將透明物體的顏色和其后物體的顏色進行混合,這被稱為alpha混合(Alpha blending)技術(shù)。Alpha混合技術(shù)的公式如下所示:
c0=ascs+(1-cs)cd,
(3)
其中:as表示透明物體的透明度;cs表示透明物體的原本顏色;cd表示目標物體的原本顏色;c0則是通過透明物體觀察目標物體所得到的顏色值。
在光線投射算法中,射線穿越體紋理的同時也就是透明度的排序過程。所以這里存在一個合成的順序問題。也可以將射線穿越紋理的過程作為采樣合成過程,本文采用從前面到背面進行排序。排序公式如下:
(4)
(5)
t=tstart+d×delta,
(6)
其中:tstart表示立方體表面被投射點的體紋理坐標;d表示投射方向;delta表示采樣間隔;t為求得的采樣紋理坐標。
為了達到更好的繪制效果,紋理的濾波方式設(shè)置為GL_LINEAR,無效數(shù)據(jù)點則通過添加判斷標識設(shè)置其透明度為0。為了實現(xiàn)動態(tài)渲染,可對三維紋理里的數(shù)據(jù)實時更新。通過實驗應(yīng)用上述方法進行體繪制。可以在不影響繪制效率的情況下實現(xiàn)千萬級數(shù)據(jù)的繪制。繪制效果如圖10所示。
同時,為了獲取更精確的數(shù)據(jù)體內(nèi)部信息,用戶可以通過設(shè)置體繪制參數(shù)繪制體的內(nèi)部剖面圖。繪制效果如圖11。
3.1 開發(fā)平臺
海洋水文環(huán)境多維動態(tài)可視化軟件采用Visual Studio 2008開發(fā)環(huán)境和Open Scene Graph 3.0[7]三維渲染引擎進行開發(fā)。
3.2 軟件功能
海洋水文環(huán)境多維動態(tài)可視化軟件主要包括數(shù)據(jù)初始化、二維標量、二維矢量、三維標量、其它選項等,如圖12所示。
數(shù)據(jù)初始化主要完成繪制海洋水文環(huán)境數(shù)據(jù)的選擇;要素顯示主要完成海洋水體溫度、海洋水體鹽度、海洋水體渦度、海流等顯示:其中,標量繪制主要完成二維下的深度平面、經(jīng)緯度剖面、水平剖面顏色填充色設(shè)置、水平剖面等值線設(shè)置、經(jīng)向垂直剖面的可見性設(shè)置、緯向垂直剖面的可見性設(shè)置,三維下的等值面繪制、體繪制;矢量繪制主要完成二維下的海流等矢量的動態(tài)顯示;視頻輸出主要完成窗口內(nèi)的三維場景內(nèi)容輸出到靜態(tài)圖像文件以及AVI動畫文件中,包括保存圖像、錄制開始、錄制暫停、錄制停止等操作;其它選項主要包括背景色設(shè)置、工具欄控制、窗口控制功能、坐標系建立、圖例顯示等。界面采用Office2007樣式。開發(fā)實現(xiàn)的系統(tǒng)主界面如圖13所示,圖14~16是系統(tǒng)參數(shù)初始化和動態(tài)交互的部分界面。
海洋水文環(huán)境多維動態(tài)可視化軟件的實現(xiàn)為用戶提供了一個實時、動態(tài)、可交互的海洋水文環(huán)境的三維可視化仿真工具,能夠針對大規(guī)模海洋水體環(huán)境數(shù)據(jù)實現(xiàn)高效的數(shù)據(jù)幾何分析和動態(tài)繪制,直觀地展現(xiàn)海洋水體環(huán)境特征和動態(tài)過程,具有較好的應(yīng)用前景。
[1] Butkiewicz T, Ware C. Multi-touch 3D exploratory analysis of ocean flow models[C]//. Oceans. IEEE, 2011: 1-10.
[2] Sun Y, Ess E, Sapirstein D, et al. Visualizing Oceanic and atmospheric flows with streamline splatting[C]//. Electronic Imaging 2006. International Society for Optics and Photonics, 2006: 2-12.
[3] He Y W, Su F Z, Du Y Y, et al. Web-based spatiotemporal visualization of marine environment data[J]. Chinese Journal of Oceanology and Limnology, 2010, 28(5): 1086-1094.
[4] 國家海洋信息中心. iOcean 中國數(shù)字海洋公眾版[EB/OL]. [2013-12-18](2014-11-12). http://www.iocean.net.cn/.
[5] 王紅想, 劉紀平, 等. 基于 NetCDF 數(shù)據(jù)模型的海洋環(huán)境數(shù)據(jù)三維可視化研究[J]. 測繪科學, 2013, 38(2): 5-10. Wang X H, Liu J P, Xu S, et al. Visualization of marine environment data based on NetCDF data model[J]. Science of Surveying & Mapping, 2013, 38(2):5-10.
[6] 李思坤, 蔡勛, 王文柯. 大規(guī)模流場科學計算可視化[M]. 北京: 國防工業(yè)出版社, 2013: 102-144. Li S K, Cai X, Wang W K. Large-Scale Flow Field Scientific Visualization[M]. Beijing: National Defense Industry Press, 2013: 102-144.
[7] OpenSceneGraph 官方網(wǎng)站[EB/OL].[2013-12-16](2014-11-12). http://www.openscenegraph.org.
[8] OpenSceneGraph 中國官方網(wǎng)站[EB/OL].[2014-3-16](2014-11-12). http://www.osgchina.org.
[9] 肖鵬, 劉更代, 徐明亮. OpenSceneGraph三維渲染引擎編程指南[M].北京: 清華大學出版社, 2010. Xiao P, Liu G D, Xu M L. OpenSceneGraph 3D Rendering Engine Programming Guide[M]. Beijing: Tsinghua University Press, 2010.
[10] 胡德鵬, 黃曉萍, 任年海. 基于不規(guī)則三角網(wǎng)(TIN)的追蹤等值線算法及對等值線光滑算法的研究[J]. 計算機與信息技術(shù), 2006(3): 27-32. Hu D P, Huang X P, Ren N H. Research on the algorithm of tracing contours based on Irregular Triangulation Network(TIN) and contours smoothing algorithm[J]. Computer and Information Technology, 2006(3): 27-32.
[11] Lorensen B W, Cline H. Marching Cubes: A High Resolution-3D Surface Reconstruction Algorithm[J]. Computer Graphics, 1987, 21(4): 5-20.
[12] osgCompute 官方網(wǎng)站[EB/OL]. [2014-3-5](2014-11-10). http://www.basementmaik.com/doc/ osgcom-pute/html/
[13] 仇德元. GPGPU編程技術(shù)-從GLSL、CUDA到OpenCL[M]. 北京: 機械工業(yè)出版社, 2011: 156-170. Qiu D Y. GPGPU Programming Technology-From GLSL,CUDA And OpenGL[M]. Beijing: China Machine Press, 2011: 156-170.
[14] Levoy M. Display of surfaces from volume data[J]. IEEE Computer Graphics Application, 1988, 8(3): 29-37.
[15] Noon C J. A Volume Rendering Engine for Desktops, Laptops, Mobile Devices and Immersive Virtual Reality Systems using GPU-Based Volume Raycasting[D]: Iowa: Iowa State University, 2012: 23-55.
[16] Hadwiger M, Ljung P, Salama C R, et al. Advanced illumination techniques for GPU volume raycasting[C]. Singapore: ACM SIGGRAPH ASIA 2008 courses. ACM, 2008: 36-45.
責任編輯 陳呈超
Multidimensional Visualization Technology Research About the Large-Scale Oceanographic Environment
CAO Zhu1, SU Tian-Yun2, WANG Guo-Yu1
(1.College of Information Science and Engineering, Ocean University of China, Qingdao 266100, China; 2.The First Institute of Oceanography, SOA, Qingdao 266061, China)
Currently, ocean has been closely linked with the life of people. With the rapid development and utilization of marine resources, the research on visualization of marine information plays a more and more important role, which is very helpful for displaying internal laws and different relationships in the data. The features of marine environment can be reflected from many kinds of factors such as sea temperature, sea salinity, sea density, ocean current and so on. These data are time series, multi-dimensional, heterogeneous in structure and huge amount. The complexity of marine data and the requirements of scientific research necessitate a specific tool that can provide dynamic visualization and analysis of marine information interactively and intuitively in 3D environment. It should be generic for marine data sets and have high efficiency for mass data. So, multi-dimensional dynamic visualization of large-scale marine hydrological environmental data has become a hot topic of ocean research with the development of marine information technology. This paper tackle the challenge of key technology of three-dimensional interaction and volume rendering technology based on GPU technology, develops large scale marine hydrological environmental data-oriented visualization software and realizes oceanographic planar graph, contour line rendering, isosurface rendering, factor field volume rendering and dynamic simulation of current field. To express the spatial characteristics and real-time update of massive marine hydrological environmental data better, this study establishes nodes in the scene for the management of geometric objects to realize high-performance dynamic rendering. The system employs CUDA (Computing United Device Architecture) parallel computing for the improvement of computation rate, uses NetCDF (Network Common Data Form) le format for data access and applies GPU programming technology to realize fast volume rendering of marine water environmental factors. The interactive framework of the system can allow users to realize stereo real-time dynamic observation of marine water information through plane, contour line, isosurface and volume information, display single spatial point of ocean consecutively and realize stereo display of spatial scope region extended from single spatial point or section line of ocean. It provides intuitive and comprehensive for the research on marine water environment.
marine environment; OSG; GPU; NetCDF; multidimensional visualization
中央級公益性科研院所基本科研業(yè)務(wù)費專項(2015P12);中央級公益性科研院所基本科研業(yè)務(wù)費專項(2015G18)資助
2014-09-15;
2015-08-21
曹 柱(1988-),男,碩士生。E-mail:sutiany@fio.org.cn
P714.+2;P715
A
1672-5174(2017)04-132-07
10.16441/j.cnki.hdxb.20140312
曹柱, 蘇天赟, 王國宇. 大規(guī)模海洋水文環(huán)境多維可視化技術(shù)研究[J]. 中國海洋大學學報(自然科學版), 2017, 47(4): 132-138.
CAO Zhu, SU Tian-Yun, WANG Guo-Yu. Multidimensional visualization technology research about the large-scale oceanographic environment[J]. Periodical of Ocean University of China, 2017, 47(4): 132-138.
Supported by Basic Scientific Fund for National Public Research Institutes of China(2015P12);Basic Scientific Fund for National Public Research Institutes of China(2015G18)