楊 鵬,劉常新,劉甲強
(中電建第十一工程局(廣東)建設投資有限公司,廣東 廣州 510407)
虛擬現(xiàn)實(Virtual Reality,簡稱VR)是指綜合應用計算機圖形學、人機交互技術、傳感器技術以及人工智能等技術生成的一種人工模擬環(huán)境,用戶能夠以自然的方式與這個環(huán)境進行交互,從而通過視覺、聽覺和觸覺等獲得與真實世界相同的感受。虛擬現(xiàn)實具有多感知性、沉浸感、交互性和構想性等特點[1-3]。
由于水利水電工程的特殊性,長期以來該行業(yè)虛擬現(xiàn)實技術的應用研究進展緩慢,主要體現(xiàn)在開發(fā)成本高、周期長,而且效果差、交互功能不足[4]。隨著虛擬現(xiàn)實技術的日趨成熟和普及應用,水利水電工程虛擬現(xiàn)實技術的發(fā)展迎來了新的機遇。
當前虛擬現(xiàn)實技術應用最廣泛和成熟的領域是游戲開發(fā),本文通過借鑒游戲開發(fā)行業(yè)的先進經(jīng)驗和流程,將游戲開發(fā)理念引入水利水電工程虛擬現(xiàn)實研究,并通過Unity 3D 虛擬現(xiàn)實引擎,高質量地完成了基于Web 3D的水利水電工程虛擬現(xiàn)實案例。
基于Web 3D 的虛擬現(xiàn)實是“互聯(lián)網(wǎng)+虛擬現(xiàn)實”技術的具體應用,它的實現(xiàn)原理是在B/S 架構下,由服務器提供數(shù)據(jù),用戶通過瀏覽器將相應的數(shù)據(jù)下載到本地構建虛擬現(xiàn)實場景,并與該場景進行實時交互,服務器根據(jù)交互情況對場景數(shù)據(jù)進行實時動態(tài)更新。與傳統(tǒng)的虛擬現(xiàn)實技術相比,基于Web 3D的虛擬現(xiàn)實技術具有如下特點。
(1)廣泛的傳播性。基于Web 3D的虛擬現(xiàn)實成果通過互聯(lián)網(wǎng)進行傳播,擁有廣泛的用戶基礎;互聯(lián)網(wǎng)經(jīng)過超過20 a 的發(fā)展,已經(jīng)和人們的生活密不可分,并且仍在高速發(fā)展聚集用戶。
(2)使用的便捷性。基于B/S 架構,用戶無需安裝客戶端軟件,只需連接互聯(lián)網(wǎng),無論何時、何地都能使用虛擬現(xiàn)實成果。
(3)更強的優(yōu)化和壓縮能力。虛擬現(xiàn)實數(shù)據(jù)通過網(wǎng)絡進行傳輸,由于網(wǎng)絡帶寬的限制,數(shù)據(jù)必須經(jīng)過優(yōu)化和壓縮,以保證用戶端能快速下載。
水利水電工程樞紐范圍通常達幾十上百平方公里,場景內不僅有復雜的地形、地貌,還有各種水工建筑物、機電設備和管路系統(tǒng)等,如對工程進行整體仿真,將產(chǎn)生大量的數(shù)據(jù)[5]。
水利水電工程虛擬現(xiàn)實與“嚴肅游戲”開發(fā)類似,二者都是對客觀現(xiàn)實進行仿真模擬,而不能憑借開發(fā)者的想象隨意進行創(chuàng)造,如對自然地形、建筑物、機電設備的建模精度必須滿足規(guī)定要求,各種交互式操作必須符合實際。
水利水電工程涉及測繪、地質、水工、交通、消防、電氣等20 余個專業(yè),要對工程進行全方位的仿真模擬,需要各領域大量專業(yè)人才的參與。
宏觀方面包括山川、河流、水工建筑物等大尺度模型,微觀方面小到一個按鈕、一顆螺絲釘都可進行模擬,水利水電工程虛擬現(xiàn)實開發(fā)要同時兼顧宏觀與微觀兩個方面的需求。
基于Web 3D的虛擬現(xiàn)實開發(fā)的關鍵,是對數(shù)據(jù)結構進行優(yōu)化,以大幅減少數(shù)據(jù)量,并采用高效的算法滿足虛擬現(xiàn)實引擎實時渲染的要求。針對水利水電工程特點,基于Unity 3D 平臺,對大場景數(shù)字地形建模、模型重構、復雜水效果模擬、人機交互等關鍵技術進行了研究和開發(fā)。
傳統(tǒng)的地形建模方法是采用Mesh 面對地表進行模擬,由于水利水電工程地形建模范圍大,如采用傳統(tǒng)方法進行建模,其數(shù)據(jù)量將非常巨大,無法滿足虛擬現(xiàn)實技術對互聯(lián)網(wǎng)數(shù)據(jù)傳輸和實時渲染的要求。為此,Unity 3D 內置地形引擎,采用地形高度圖建模,并利用LOD(Levels of Detail,簡稱LOD)技術,將地形模型用多種不同的精度表示,根據(jù)觀察點的遠近選擇不同精度的地形模型進行呈現(xiàn),從而有效解決了數(shù)據(jù)存儲和實時渲染的問題;此外,Unity 3D內置地形引擎還能方便地繪制地形紋理,采用對象實例化技術快速批量生成植物模型。但是,由于地形高度圖采用固定的二維點陣數(shù)據(jù)記錄地形的位置和高度信息,所以所建立的地形模型只能在高度上進行變化,可編輯性能差,如不能方便地在地形上修建道路、不能進行邊坡和基礎開挖等。
經(jīng)研究分析,通過二次開發(fā),利用地形疊加、遮罩、紋理映射等技術,將Unity 3D 內置的大場景地形與外部導入的小范圍Mesh地形進行拼接,既充分利用了內置地形引擎的高效性,又滿足了工程建設對地形建模精度和加工要求,其原理如圖1所示。
當前國內大中型水利水電工程已普遍開展三維設計,如能將三維設計模型應用于虛擬現(xiàn)實開發(fā),既能保證模型精度,又能提高虛擬現(xiàn)實開發(fā)效率。然而,三維設計模型并不等同于虛擬現(xiàn)實模型,而是需經(jīng)加工處理后才能用于虛擬現(xiàn)實開發(fā),這個對模型進行加工處理的過程稱之為模型重構。模型重構的要點概括起來有增加、刪除、合并、拆分、簡化、替換等幾種方式。
(1)增加。即查漏補缺,對三維設計中沒有的模型進行補充建模,如第三人稱角色模型等;另三維設計模型通常不含材質紋理,模型外觀與實際物體不符,故應補充模型的材質貼圖。
(2)刪除。為減少數(shù)據(jù)量,需刪除虛擬現(xiàn)實場景中不可見或不關心的結構模型,如混凝土預埋件、錨桿、止水等。
(3)合并。為便于模型材質貼圖,物理屬性相同的物體應盡量合并。
(4)拆分。含2 種及以上材質屬性的物體應按材質類型進行拆分,交叉物體應進行拆分以減少模型面片數(shù)量。
(5)簡化。即將高精度模型轉化為低精度模型,在不明顯改變模型外觀形狀的條件下,有效減少模型的面片數(shù)量;或者把高精度模型烘焙成貼圖,然后運用在低精度模型上,使低精度模型擁有近似于高精度模型的細節(jié)效果。
(6)替換。即用Unity 3D 中的高效模型替換三維設計模型,如地形三維模型等。
水利水電工程是對水流進行控制并加以利用的工程設施,對水效果的模擬長期以來是水利水電工程虛擬現(xiàn)實研究的重點和難點;以下通過二次開發(fā),對水利水電工程泄洪及河道水流進行模擬。
3.3.1 泄洪效果模擬
泄洪是水流沿溢洪道、底孔等泄水建筑物下泄所形成的高速水流和霧化效果,在虛擬現(xiàn)實引擎中通常采用粒子對泄洪進行模擬;其中,對霧化的模擬采用發(fā)散粒子即可,而泄洪所產(chǎn)生的高速水流由于受到水工建筑物的約束作用,水流形態(tài)比較復雜,一直是虛擬現(xiàn)實開發(fā)的難點。
高速水流的粒子模擬一般有2 種方式:一種是利用粒子與水工建筑物的碰撞自動計算粒子的運動軌跡;另一種是預先定義粒子的運動路徑,通過設置粒子的路徑跟隨來模擬高速水流。第一種方式更接近實際情況,但粒子的碰撞計算量大,運行效率低;第二種方式雖然與工程實際有差別,但粒子的運算量小,運行效率高。經(jīng)綜合比較,下面采用第二種方式對泄洪高速水流進行模擬,模擬效果如圖2所示。

圖2 粒子路徑模擬泄洪高速水流
關鍵代碼如下:

3.3.2 水流模擬
本文模擬的水流是指大壩下游河道中的河水,其特點是水流同時向下游流動和沿豎向上下波動。根據(jù)水流的這一特點,在虛擬現(xiàn)實引擎中可利用Mesh 面對其進行模擬,即通過設置Mesh 面的UV 位移貼圖來模擬水流向下游流動的效果;通過設置Mesh 面節(jié)點的豎向位移來模擬水流上下波動的效果,同一節(jié)點在不同時間以及同一時間相鄰節(jié)點之間的豎向位移變化規(guī)律通常滿足正弦函數(shù)關系。在Unity 3D 中,可通過腳本二次開發(fā)設置UV 位移貼圖,利用著色器(Shader)設置Mesh面節(jié)點的位移。
UV位移貼圖模擬水流代碼:

人機交互是指通過計算機輸入、輸出設備實現(xiàn)人與計算機對話的技術。下面以第三人稱為例,簡要介紹Unity 3D的人機交互開發(fā)原理,該案例中用戶通過鍵盤和鼠標控制人物動作與虛擬現(xiàn)實場景進行交互。
3.4.1 第三人稱制作
第三人稱一般包括人物模型和人物動作兩個部分,通常在Maya、3DMax 等專業(yè)軟件中完成后,再導入虛擬現(xiàn)實引擎進行調用。
3.4.2 在Unity 3D中使用動畫控制器
動畫控制器的作用是將動畫和模型進行綁定,通過設置動畫的觸發(fā)條件控制狀態(tài)之間的相互轉換。首先新建一個動畫控制器,并添加站立(Idle)、行走(Walk)、后退(WalkBack)和奔跑(Run)4 種人物狀態(tài),其中默認狀態(tài)為站立;然后通過箭頭連線設置狀態(tài)之間的轉換關系,點擊箭頭連線新建一個名稱為ActionID 的整型控制參數(shù),設置當ActionID 的值為0,1,2,3 時分別表示站立、行走、后退和奔跑,如圖3 所示。動畫控制器完成后,將其賦給場景中第三人稱人物模型的動畫(Animation)組件即可。

圖3 Unity 3D動畫控制器
3.4.3 腳本控制第三人稱
動畫控制器完成后,通過編寫腳本由鍵盤控制場景中人物模型的行為狀態(tài),以下代碼實現(xiàn)了分別按下“W”“S”鍵控制人物的行走和后退,按下“Shift”+“W”鍵開始奔跑。

基于Unity 3D 虛擬現(xiàn)實引擎,開發(fā)了水電站基于Web 3D 的虛擬現(xiàn)實系統(tǒng)。該系統(tǒng)對工程區(qū)15 km×15 km 地形以及大壩、廠房等進行了精細建模,包括路徑動畫、第一人稱和第三人稱漫游、泄洪模擬、天氣模擬、主要建筑物結構及功能展示等功能。該系統(tǒng)發(fā)布后的成果文件容量僅85 M,可基于互聯(lián)網(wǎng)發(fā)布使用,部分成果截圖如圖4—5所示。

圖4 第三人稱漫游界面
虛擬現(xiàn)實技術在水利水電工程規(guī)劃、設計、施工、運維等全生命周期的各階段均有較多應用。在工程建設之前,利用虛擬現(xiàn)實技術對工程進行全方位的模擬,用戶可提前體驗工程建成之后的效果,還可輔助用戶進行工程決策;在工程建成之后,借助虛擬現(xiàn)實技術可大幅提升運維管理水平,節(jié)約人力和物力,如基于虛擬現(xiàn)實系統(tǒng)的資產(chǎn)管理、安全監(jiān)測、遠程集控、流域調度等。

圖5 虛擬現(xiàn)實泄洪開發(fā)界面
基于Web 3D的虛擬現(xiàn)實技術具有受眾范圍廣、使用方便等特點,符合信息化時代網(wǎng)絡化、移動化的發(fā)展趨勢,具有廣闊的應用前景。本文所介紹的基于Web 3D的虛擬現(xiàn)實開發(fā)技術路線,在水利水電工程行業(yè)具有廣泛的適用性,可供其他工程借鑒。