樂(lè)世華,董 靜,張 煦,劉衛(wèi)林,田春思,李亦凡,吳志明,劉德龍
(1.北京中水科水電科技開(kāi)發(fā)有限公司,北京 100038;2.中國(guó)水利水電科學(xué)研究院自動(dòng)化所,北京 100038;3.南昌工程學(xué)院江西省水文水資源與水環(huán)境重點(diǎn)實(shí)驗(yàn)室,江西 南昌 330099)
隨著科學(xué)技術(shù)的發(fā)展,數(shù)值模擬、計(jì)算機(jī)圖形學(xué)、計(jì)算機(jī)視覺(jué)、虛擬現(xiàn)實(shí)等技術(shù)手段的不斷提升,傳統(tǒng)的靜態(tài)展示已無(wú)法滿足各個(gè)領(lǐng)域?qū)茖W(xué)可視化的視覺(jué)需求??茖W(xué)可視化是20世紀(jì)80年代興起的一門(mén)技術(shù),廣泛運(yùn)用于醫(yī)學(xué)、氣象、空氣動(dòng)力學(xué)、地球物理勘探等領(lǐng)域,運(yùn)用此技術(shù)可通過(guò)對(duì)海量數(shù)據(jù)的提取分析來(lái)洞察物理現(xiàn)象、發(fā)現(xiàn)事物的規(guī)律,因而也成為制約科學(xué)計(jì)算質(zhì)量和效率關(guān)鍵因素之一[1]。典型的可視化軟件包括Vis5D、EVS、LYNX、AVS、apE、DX等[2],通過(guò)這些可視化軟件可有效展示可視化數(shù)據(jù),但無(wú)法集成到已有的三維平臺(tái),造成一套數(shù)據(jù)需要多套軟件或平臺(tái)進(jìn)行展示現(xiàn)象,與水利部“一張圖”號(hào)召相違背,因而,有必要對(duì)相關(guān)可視化技術(shù)進(jìn)行研究,并將其集成到現(xiàn)在系統(tǒng)。劉成堃等[3]在Open Scene Graph中實(shí)現(xiàn)了真實(shí)的三維地形地貌環(huán)境下進(jìn)行洪水過(guò)程的動(dòng)態(tài)推演分析;Zhi Guozheng等[4]通過(guò)將城市排水模型、洪水模擬模型和3D可視化相結(jié)合,以3D動(dòng)態(tài)可視化的形式分析了洪水變化過(guò)程方法;耿敬等[5]基于GIS構(gòu)建了三維場(chǎng)景,結(jié)合Mike21二維洪水?dāng)?shù)學(xué)模型,實(shí)現(xiàn)了依蘭航電樞紐區(qū)段洪水淹沒(méi)三維動(dòng)態(tài)可視化;康子非等[6]在Google earth完成虛擬場(chǎng)景的搭建,并對(duì)二維水動(dòng)力數(shù)值計(jì)算進(jìn)行仿真,實(shí)現(xiàn)了流場(chǎng)的實(shí)景可視化;許小華等[7]采用3D Max結(jié)合CityEngine規(guī)則建模的方式進(jìn)行三維場(chǎng)景的搭建,實(shí)現(xiàn)了鄱陽(yáng)湖在不同水位下的三維地形信息展示,再現(xiàn)了鄱陽(yáng)湖水利信息虛擬場(chǎng)景;高學(xué)平等[8]研制了大型景觀湖仿真演示系統(tǒng),實(shí)現(xiàn)了景觀仿真和水利設(shè)施的仿真;周正印等[9]在GIS系統(tǒng)中對(duì)潰壩洪水水情信息進(jìn)行分析,評(píng)估了潰壩洪水預(yù)警的管理效果;張?jiān)絒10]構(gòu)建了一種地下巷道中流體三維可視化模擬系統(tǒng),有效展示巷道內(nèi)流體流動(dòng)細(xì)節(jié)。以上系統(tǒng)均能有效實(shí)現(xiàn)數(shù)據(jù)三維可視化,但多數(shù)基于單機(jī)版平臺(tái)構(gòu)建,而面對(duì)全球化分布式協(xié)同合作的趨勢(shì),單機(jī)版平臺(tái)極大地限制了以這種Web端進(jìn)行數(shù)據(jù)可視化展示方式的發(fā)展,終端的Web化將更加有利于解決遠(yuǎn)程協(xié)作可視化的問(wèn)題。因而,有必要在B/S端對(duì)進(jìn)行數(shù)據(jù)可視化方面的研究,以滿足遠(yuǎn)程多用戶對(duì)數(shù)據(jù)信息訪問(wèn)及科學(xué)數(shù)據(jù)可視化的需求。
本文以Cesium為基礎(chǔ),并在其上進(jìn)行多種可視化技術(shù)的有機(jī)融合和集成應(yīng)用。Cesium是用于創(chuàng)建3D虛擬地球和2D地圖的開(kāi)源JavaScript庫(kù),它利用WebGL進(jìn)行硬件加速且無(wú)插件,并提供跨平臺(tái)和跨瀏覽器的功能[11]。當(dāng)前已有多人基于Cesium實(shí)現(xiàn)了對(duì)不同場(chǎng)景、不同數(shù)據(jù)的展現(xiàn),實(shí)現(xiàn)了Web化的數(shù)據(jù)可視化。畢碩本等[12]基于Cesium進(jìn)行了熱帶氣旋災(zāi)害信息可視化研究;連芳等[13]基于Cesium對(duì)大氣環(huán)境信息可視化進(jìn)行了系統(tǒng)設(shè)計(jì),實(shí)現(xiàn)了河南省全境全覆蓋的大氣環(huán)境網(wǎng)格面源數(shù)據(jù)三維可視化的應(yīng)用;樂(lè)世華等[14]基于Cesium搭建了虛擬流域場(chǎng)景,并完成了流場(chǎng)可視化研究[15]。蘇昊翔等[16]基于Cesium對(duì)衛(wèi)星載荷可視化仿真分析平臺(tái)進(jìn)行了研究,使用B/S架構(gòu)及WebGL技術(shù),實(shí)現(xiàn)了數(shù)據(jù)計(jì)算與實(shí)時(shí)渲染分離,完成了仿真結(jié)果同步共享;本文通過(guò)對(duì)熱力圖、紋理投影映射、等值線實(shí)時(shí)繪制等可視化技術(shù)的研究,并對(duì)其進(jìn)行有效融合和集成,實(shí)現(xiàn)水電站傳感器、視頻、監(jiān)控、統(tǒng)計(jì)等觀測(cè)和計(jì)算預(yù)警數(shù)據(jù)的三維化、動(dòng)態(tài)化、實(shí)時(shí)化、可交互化,豐富了平臺(tái)展示效果,滿足平臺(tái)的通用性,可集成性的要求,為三維平臺(tái)更廣泛應(yīng)用奠定基礎(chǔ)。
水利業(yè)務(wù)數(shù)據(jù)動(dòng)態(tài)可視化大多涉及空間信息內(nèi)容,如流域內(nèi)河道、水庫(kù)等的空間分布,本文基于Cesium三維引擎構(gòu)建Web三維系統(tǒng),可實(shí)現(xiàn)地理空間上水利數(shù)據(jù)的三維可視化。具體架構(gòu)見(jiàn)圖1,系統(tǒng)架構(gòu)分平臺(tái)數(shù)據(jù)層、渲染引擎層及終端表現(xiàn)層,見(jiàn)圖1右半部分;其中數(shù)據(jù)層為構(gòu)建三維場(chǎng)景所需地形、影像、水利業(yè)務(wù)數(shù)據(jù)等,終端表現(xiàn)層為用戶提供直接交互展示界面,實(shí)現(xiàn)遠(yuǎn)程Web端跨平臺(tái)展示,渲染引擎層采用Cesium作為渲染引擎。渲染引擎見(jiàn)圖1左半部分,引擎內(nèi)核部分包括支撐引擎的線性代數(shù)、坐標(biāo)系統(tǒng)、矩陣、時(shí)鐘等部件;基于引擎內(nèi)核可構(gòu)建視圖Viewer,Viewer包括Scene、Camera、InfoBox、CesiumWidget、Entity、DataSourceCollection等;Scene用于構(gòu)建地球與地圖組件,包括Globe、SceneMode、FrameState、MapProjection、PrimitiveCollection、相機(jī)、圖層等;PrimitiveCollection中的基元(Primitives)是Cesium圖形渲染棧最頂層,通過(guò)它可構(gòu)建真實(shí)世界對(duì)象。借鑒threejs里Mesh、Geometry、Matherial的渲染方式[17],本文在Primitives上進(jìn)行封裝,構(gòu)建新的Mesh、Geometry、MeshMatherial,見(jiàn)圖1虛線框部分,并通過(guò)Uniforms、頂點(diǎn)與片元著色器,可靈活展現(xiàn)各種材質(zhì),同時(shí)也可實(shí)現(xiàn)并行計(jì)算[15],此方式較Cesium原生Primitive結(jié)構(gòu)更加清晰,使用更加便捷。本文所構(gòu)建河道水體水面、熱力圖網(wǎng)格、衛(wèi)星云圖網(wǎng)格等均使用封裝后的Geometry、MeshMatherial,實(shí)現(xiàn)水利數(shù)據(jù)靈活呈現(xiàn)。
圖1 系統(tǒng)架構(gòu)設(shè)計(jì)示意
對(duì)水利業(yè)務(wù)數(shù)據(jù)(水情、雨情、氣象、水力要素、水利工程、經(jīng)濟(jì)社會(huì)用水信息等)進(jìn)行可視化,有助于水利從業(yè)者直觀形象理解其含義。本文擬結(jié)合標(biāo)量視化、投影紋理映射、衛(wèi)星云圖數(shù)據(jù)可視化、實(shí)時(shí)等高線與等值面繪制、電力生產(chǎn)數(shù)據(jù)統(tǒng)合展示等對(duì)幾項(xiàng)常用水利業(yè)務(wù)相關(guān)的可視化技術(shù)展開(kāi)可視技術(shù)與仿真平臺(tái)集成研究。標(biāo)量可視化以顏色對(duì)不同指標(biāo)進(jìn)行表達(dá),衛(wèi)星云圖以圖像對(duì)衛(wèi)星數(shù)據(jù)進(jìn)行展示,實(shí)時(shí)等高線(等值面)可直觀反映水深大小,綜合展示系統(tǒng)對(duì)各種生產(chǎn)數(shù)據(jù)進(jìn)行二三維圖表化表示;各技術(shù)組合有效構(gòu)成了Web三維可視化平臺(tái)各個(gè)組件,形成有效的水利科學(xué)可視化工具。
隨著科技的快速發(fā)展,傳統(tǒng)的靜態(tài)展示及散點(diǎn)展示已無(wú)法滿足各個(gè)領(lǐng)域?qū)梢暬囊曈X(jué)需求。為了更好地觀察設(shè)備的趨向,利用傳感器、視頻、監(jiān)控、統(tǒng)計(jì)的方式實(shí)現(xiàn)動(dòng)態(tài)監(jiān)測(cè)。以標(biāo)量圖來(lái)實(shí)現(xiàn)動(dòng)態(tài)監(jiān)測(cè)結(jié)果可清晰明了表達(dá)空間數(shù)據(jù)變化趨勢(shì),為決策者分析做出更好的決策方案提供支撐,有效應(yīng)用于河湖的水深、濃度、溫度等指標(biāo)的展示。
2.1.1熱力圖
通過(guò)熱力圖簡(jiǎn)單聚合大量數(shù)據(jù),并采用一種漸變色帶的優(yōu)雅表現(xiàn)形式,可以直觀地展現(xiàn)空間數(shù)據(jù)的疏密程度或頻率高低。其生成的原理可概括為以下4步[18-19]:①創(chuàng)建緩沖區(qū),以監(jiān)測(cè)數(shù)據(jù)點(diǎn)為圓心,設(shè)定一半徑值,并創(chuàng)建緩沖區(qū);②設(shè)置灰度值,對(duì)每個(gè)監(jiān)測(cè)點(diǎn)的緩沖區(qū),使用漸變的灰度色帶從內(nèi)而外,由淺至深地填充;③緩沖區(qū)疊加,對(duì)于有交叉的緩沖區(qū)區(qū)域,進(jìn)行灰度值疊加,因而緩沖區(qū)交叉的越多,灰度值越大,但值域仍保持在0~255;④顏色映射,以疊加后的灰度值為索引,從彩虹色帶中映射顏色,并對(duì)圖像重新著色,從而生成熱力圖,結(jié)果見(jiàn)圖2。
圖2 生成的熱力圖
2.1.2水深(水溫)圖
對(duì)于水庫(kù)、河道的屬性數(shù)據(jù)如水深的大小(或水溫高低、污染物濃度的高低),通過(guò)不同顏色的可視化表達(dá),可更清晰展示其效果。汪金城等[20]已實(shí)現(xiàn)對(duì)河流污染物擴(kuò)散可視化模擬,詳細(xì)介紹了模擬網(wǎng)格進(jìn)行劃分,顏色的填充,逼真地展現(xiàn)了污染的擴(kuò)散過(guò)程。本文將在Web端進(jìn)一步完成水深渲染可視化工作,具體原理過(guò)程見(jiàn)圖3a,通過(guò)離散點(diǎn),經(jīng)過(guò)頂點(diǎn)變換、圖元裝配生成水體網(wǎng)格,最終結(jié)果見(jiàn)圖3b。
a)水體網(wǎng)格構(gòu)建原理
投影紋理映射是Segal等[21]在1992年提出的概念,用于將紋理映射到物體上,其紋理坐標(biāo)通過(guò)視圖矩陣與投影矩陣等進(jìn)行變換而成。其目的主要是實(shí)現(xiàn)紋理坐標(biāo)和三維空間頂點(diǎn)之間的匹配,該方式無(wú)需像傳統(tǒng)紋理映射方式那樣將紋理坐標(biāo)從CPU傳遞至GPU賦值給對(duì)應(yīng)模型的頂點(diǎn),而只需在著色器中通過(guò)視圖投影矩陣計(jì)算得到,從而實(shí)現(xiàn)紋理坐標(biāo)和頂點(diǎn)坐標(biāo)的匹配,另外,還能避免紋理扭曲變形現(xiàn)象,可有效應(yīng)用于水利虛擬仿真三維場(chǎng)景中的監(jiān)控視頻融合。
投影紋理映射的流程是根據(jù)投影相機(jī)的物理參數(shù),如空間位置、投影角度、坐標(biāo)信息等,通過(guò)空間投影變換計(jì)算出模型中各個(gè)頂點(diǎn)相匹配的紋理坐標(biāo),并通過(guò)紋理坐標(biāo)索引查得相應(yīng)的紋理值,具體地可以通過(guò)以下步驟計(jì)算投影紋理映射坐標(biāo)[22-23]:①將頂點(diǎn)坐標(biāo)從物理空間轉(zhuǎn)換到世界空間坐標(biāo)系;②將世界空間坐標(biāo)系坐標(biāo)轉(zhuǎn)換到以投影點(diǎn)為中心的投影空間坐標(biāo)系;③再將投影空間坐標(biāo)系坐標(biāo)轉(zhuǎn)換到投影裁剪空間坐標(biāo)系;④將獲得的投影頂點(diǎn)坐標(biāo)歸一化到[0,1]空間中,得到投影紋理坐標(biāo)。
在頂點(diǎn)著色器中,物體的頂點(diǎn)坐標(biāo)(x,y,z,w)T可用Cesium中內(nèi)置變量position表示,相機(jī)的模型視圖矩陣MV可用內(nèi)置變量ModelViewMatrix表示。頂點(diǎn)著色器計(jì)算完紋理坐標(biāo)后,通過(guò)varying變量projectorClipCoords傳入片段著色器,然后進(jìn)行紋理索引和顏色計(jì)算,得到最后投影的結(jié)果[24]。
通過(guò)使用投影紋理映射技術(shù),可將實(shí)時(shí)視頻或監(jiān)控視頻投影到三維模型上,監(jiān)控視頻需使用RTSP對(duì)視頻監(jiān)控圖像進(jìn)行解析,并轉(zhuǎn)碼成OGG格式流數(shù)據(jù),實(shí)現(xiàn)在HTML5上播放[25],構(gòu)建虛實(shí)結(jié)合、真實(shí)感強(qiáng)的三維虛擬場(chǎng)景。
氣象數(shù)據(jù)是水文分析重要資源,通過(guò)與氣象數(shù)據(jù)相結(jié)合,對(duì)氣象云圖進(jìn)行展示,實(shí)時(shí)掌握區(qū)域內(nèi)的天氣情況,為區(qū)域的水文分析工作提供支撐。為了實(shí)現(xiàn)數(shù)據(jù)加載式的衛(wèi)星云圖展示,需要了解數(shù)據(jù)傳遞解析過(guò)程。
Cesium使用WebGL來(lái)進(jìn)行硬件加速圖形化的地圖引擎,WebGL是瀏覽器與顯卡之間的通信接口,為了滿足 JavaScript 與顯卡之間大量的、實(shí)時(shí)的數(shù)據(jù)交換,保證顯示性能,它們之間的數(shù)據(jù)通信須使用二進(jìn)制的格式,而非傳統(tǒng)的文本格式。二進(jìn)制數(shù)組由三類對(duì)象組成:ArrayBuffer對(duì)象、TypedArray視圖和DataView視圖。ArrayBuffer對(duì)象代表原始的二進(jìn)制數(shù)據(jù),TypedArray視圖用來(lái)讀寫(xiě)簡(jiǎn)單類型的二進(jìn)制數(shù)據(jù),DataView視圖用來(lái)讀寫(xiě)復(fù)雜類型的二進(jìn)制數(shù)據(jù)。DataView視圖支持Int8、Uint8、Int16、Uint16、Int32、Uint32、Float32、Float64 等8種數(shù)據(jù)類型,實(shí)現(xiàn)對(duì)不同長(zhǎng)度的數(shù)據(jù)進(jìn)行分類加載,進(jìn)而實(shí)現(xiàn)定量化控制[26]。
傳統(tǒng)水動(dòng)計(jì)算與可視化往往是分開(kāi)的,待計(jì)算結(jié)果完成后,通過(guò)第三方軟件如tecplot進(jìn)行可視化,這樣將失去了實(shí)時(shí)交互的可能性。平臺(tái)通過(guò)結(jié)合GLSL語(yǔ)言完成淺水方程在GPU中的計(jì)算,計(jì)算的同時(shí)可對(duì)結(jié)果進(jìn)行展示,從而實(shí)現(xiàn)實(shí)時(shí)交互性?;谑?1)的淺水方程組[27]建立流體物理方程,充分利用GPU并行能力以加速計(jì)算,實(shí)現(xiàn)高性能運(yùn)行,在片元著色器中完成對(duì)流通量計(jì)算求解,得到水深值,并對(duì)計(jì)算水深進(jìn)行等值線與等值面的繪制,實(shí)現(xiàn)等高線與等值面實(shí)時(shí)繪制效果。
(1)
式中h——水深;u、v——x、y方向平均流速;hu、hv——x、y方向流量;g——重力加速度,取9.81 m/s2;Zb——地形。
圖形學(xué)中線的繪制原理[28]為:判斷像素位置是否在直線內(nèi),如果像素點(diǎn)到直線的距離小于直線寬度的一半,則像素點(diǎn)在直線內(nèi)部,進(jìn)行線的著色繪制,否則,像素點(diǎn)不在直線內(nèi)部,丟棄不進(jìn)行繪制。
經(jīng)過(guò)在GPU中淺水方程計(jì)算完成后得到水深h,對(duì)一定間隔的h進(jìn)行線的繪制,即可得到等深線,因計(jì)算與顯示同時(shí)在GPU中完成,減少了CPU-GPU之間的數(shù)據(jù),增加實(shí)時(shí)交互的可能,并減少了傳統(tǒng)數(shù)據(jù)后處理步驟,大大提高工作效率。
同理,也可實(shí)現(xiàn)等值面的繪制,兩等值線間用一種顏色進(jìn)行填充,這樣便得到等值面,不同的間隔值可通過(guò)式(2)得到:
value=floor(height·levels)/levels
(2)
式中 floor——向下取整函數(shù);levels——間隔密度控制參數(shù)。
通過(guò)上述熱力圖、水深屬性標(biāo)量可視化、投影紋理變換、氣象云圖繪制、水深等值線與等值面實(shí)時(shí)繪制等可視化技術(shù)的相關(guān)技術(shù)原理及方法,可以實(shí)現(xiàn)B/S端Web化基于Cesium的三維仿真平臺(tái)在水利上的應(yīng)用,更加有利于解決遠(yuǎn)程協(xié)作三維可視化的問(wèn)題。
3.1.1熱力圖
對(duì)于生成的熱力圖,一般為二維平面圖,若將其作為紋理,映射到三維曲面,實(shí)現(xiàn)紋理貼圖映射,可實(shí)現(xiàn)從二維到三維的轉(zhuǎn)變,進(jìn)一步擴(kuò)展其應(yīng)用,以江西電力生產(chǎn)數(shù)據(jù)為例,對(duì)其進(jìn)行熱力圖展示,生成熱力圖作為紋理傳遞至MeshMaterial中的fragmentShader,經(jīng)過(guò)坐標(biāo)變換,完成與曲面Geometry的匹配,最終貼圖效果見(jiàn)圖4。渲染模塊涉及Viewer、Scene、Camera、Primitive、Mesh、Geometry、MeshMaterial等。
圖4 江西電力生產(chǎn)熱力圖
3.1.2水深(水溫)圖
以潰壩水深為例,首先將計(jì)算水體進(jìn)行空間離散,對(duì)水體邊界內(nèi)用若干點(diǎn)來(lái)表示,每個(gè)頂點(diǎn)包含空間坐標(biāo)(lon,lat)與水深值,使用Geometry構(gòu)建水面及地形網(wǎng)格。將點(diǎn)數(shù)據(jù)傳遞到頂點(diǎn)著色器,經(jīng)頂點(diǎn)變換、圖元裝配后傳遞至片元著色器,同時(shí)將彩色色帶以紋理形式傳遞至片元著色器完成MeshMatherial的構(gòu)建,使用圖元上某一具體點(diǎn)的水深值對(duì)色帶進(jìn)行采樣,得到此位置下所對(duì)應(yīng)的顏色,最后經(jīng)片段著色器輸出得到最終的效果,渲染結(jié)果見(jiàn)圖5。通過(guò)不同時(shí)間序列的以上步驟的重復(fù)操作,可得到水深的動(dòng)態(tài)變化結(jié)果。渲染模塊涉及Viewer、Scene、Camera、Primitive、Mesh、Geometry、MeshMaterial等。
圖5 潰壩水深繪制
3.1.3投影紋理映射
將實(shí)時(shí)更新的監(jiān)控視頻投影到三維場(chǎng)景,結(jié)果見(jiàn)圖6,圖中三維場(chǎng)景為基于Cesium建立的三維數(shù)字城市模型,同時(shí)場(chǎng)景接入了監(jiān)控視頻。通過(guò)解碼成視頻流,將其加載至三維場(chǎng)景中,視頻流以紋理形式傳遞至MeshMaterial中的fragmentShader,經(jīng)過(guò)坐標(biāo)變換,完成與投影視錐Geometry的匹配,得到河道船舶實(shí)時(shí)監(jiān)控頁(yè)面,為三維場(chǎng)景中通航船舶提供直觀展示。渲染模塊涉及Viewer、Scene、Camera、Primitive等。
圖6 視頻投影映射
3.1.4衛(wèi)星云圖數(shù)據(jù)可視化
本文加載的衛(wèi)星云數(shù)據(jù)為Uint8類型,在客戶端通過(guò)對(duì)以二進(jìn)制數(shù)據(jù)進(jìn)行解析,可得到ArrayBuffer對(duì)象并直接上傳到GPU,可有效避免解碼步驟,從而為實(shí)時(shí)數(shù)據(jù)更新提供保障。通過(guò)以上技術(shù),構(gòu)建云圖空間網(wǎng)格得到曲面Geometry,每個(gè)網(wǎng)格點(diǎn)均為一具體云圖數(shù)據(jù),所有網(wǎng)格點(diǎn)均傳遞至MeshMaterial中的fragmentShader,經(jīng)過(guò)數(shù)值與顏色轉(zhuǎn)換處理,得到一張完整云圖。對(duì)不同時(shí)間系列的云圖數(shù)據(jù)加載,可完成結(jié)果的動(dòng)態(tài)展示,結(jié)果見(jiàn)圖7。渲染模塊涉及Viewer、Scene、Camera、Primitive、Mesh、Geometry、MeshMaterial等。
圖7 衛(wèi)星云圖三維展示
3.1.5實(shí)時(shí)等高線與等值面繪制
通過(guò)淺水方程的并行求解,結(jié)合等值線、等值面實(shí)時(shí)繪制圖技術(shù),可得到潰壩過(guò)程不同時(shí)刻不同視角下水深等值線實(shí)時(shí)繪制圖,結(jié)果見(jiàn)圖8。水面構(gòu)建方法與3.1.2中相似,渲染模塊涉及Viewer、Scene、Camera、Primitive、Mesh、Geometry、MeshMaterial等。
a)t1時(shí)刻
同時(shí),GPU并行可滿足實(shí)時(shí)交互操作,圖9a中為實(shí)時(shí)交互添加的水注,水注以高斯公式進(jìn)行增加。以鼠標(biāo)點(diǎn)擊點(diǎn)為中心,建立周邊一定半徑范圍內(nèi)的高斯方程的水注高度值,水注添加后,水流運(yùn)動(dòng)得到圖9所示的結(jié)果,圖9a—9d分別為之后不同時(shí)刻水波擴(kuò)散的結(jié)果,等值面可很好反映水位的高低。
a)t1時(shí)刻
本文基于Cesium三維引擎搭建三維虛擬仿真B/S平臺(tái),在ThinkPad s5筆記本上對(duì)前文所述可視化方法進(jìn)行測(cè)試,實(shí)驗(yàn)環(huán)境使用硬件配置:Inter(R)Core(TM)i7-6700HQ 2.67 GHz 處理器(16 GB內(nèi)存),NVIDIA GeForce GTX960(4 G)顯卡;軟件配置:Windows 10操作系統(tǒng),基于Cesium 1.31、Google Chrome 76瀏覽器。在以上環(huán)境下實(shí)現(xiàn)Web端平臺(tái)各可視化技術(shù)展示,在瀏覽器分辨率1 396×641下,不同展示方法的幀率均保持每秒30幀以上(實(shí)時(shí)畫(huà)面最低要求),各方法具體運(yùn)行幀率見(jiàn)圖10,各技術(shù)均保證了實(shí)時(shí)交互頁(yè)面流暢,同時(shí)實(shí)現(xiàn)了實(shí)時(shí)交互操作,各技術(shù)運(yùn)行結(jié)果畫(huà)面見(jiàn)3.1節(jié)。
圖10 不同方法繪制速度對(duì)比
科學(xué)可視化是科學(xué)計(jì)算中一個(gè)重要的模塊,數(shù)值模擬、傳感器監(jiān)測(cè)均會(huì)創(chuàng)建大量數(shù)據(jù)。如何有效解釋這些數(shù)據(jù),便成為科學(xué)可視化的首要任務(wù),通過(guò)以上研究可得出以下結(jié)論。
a)本文在Cesium三維引擎集成了熱力圖、投影紋理變換、實(shí)時(shí)等高線等高面繪制、衛(wèi)星云圖等可視化技術(shù),從各技術(shù)的原理及實(shí)現(xiàn)方法方面進(jìn)行了介紹,系統(tǒng)集成展示證明其可行性。
b)本文實(shí)現(xiàn)在B/S端完成三維可視化,相比C/S端單機(jī)版的應(yīng)用程序更能滿足遠(yuǎn)程異地協(xié)同化合作的需求。
c)本文實(shí)時(shí)等高線等高面繪制僅在小范圍小場(chǎng)景進(jìn)行試驗(yàn),尚未應(yīng)用到大范圍場(chǎng)景,后期工作將在未來(lái)進(jìn)一步開(kāi)展。
d)通過(guò)對(duì)多種可視化技術(shù)的集成融合,將大大豐富原仿真系統(tǒng)在數(shù)據(jù)展示效果,為實(shí)時(shí)性、大容量科學(xué)計(jì)算及展示提供了依據(jù),有望在虛擬現(xiàn)實(shí)和科學(xué)數(shù)據(jù)可視化方面得到更廣泛應(yīng)用。