呂策 杜江岳
摘要:在輸水工程沿線居民對于水資源需求不斷提高的今天,其水資源的質(zhì)量保障對于每一位沿線居民的生活有著十分重要的影響。在應(yīng)急演練方面,虛擬現(xiàn)實在表達語言文字難以理解的動態(tài)過程中有著得天獨厚的優(yōu)勢,文章以管涌險情為例,采用blender對輸水工程主要模型進行建模渲染,使用unity3D進行交互設(shè)計與實現(xiàn),表現(xiàn)了輸水工程管涌險情展示方法,提出一種基于虛擬現(xiàn)實技術(shù)的輸水工程應(yīng)急演練培訓(xùn)系統(tǒng),幫助輸水工程工作人員學(xué)習(xí)輸水工程發(fā)生管涌險情時的應(yīng)急搶險方法,對保障輸水工程安全運行具有重要意義。
關(guān)鍵詞:輸水工程;應(yīng)急演練;虛擬現(xiàn)實;unity3D
中圖分類號:TP311? ? ?文獻標識碼:A
文章編號:1009-3044(2022)08-0106-03
隨著生活居民的用水標準不斷提高,輸水工程的水質(zhì)對于沿線居民的生活十分重要,所以輸水工程能否安全運行對沿線居民的生活質(zhì)量而言起著決定性作用。因此,做好險情應(yīng)急演練從而保障輸水工程的安全運行對于輸水工程的每一位工作人員和沿線居民用水安全非常必要。傳統(tǒng)的輸水工程險情應(yīng)急演練方法需要投入大量的人力和物力,演練效率也十分低下。
在計算機圖形學(xué)高速發(fā)展的今天,虛擬現(xiàn)實技術(shù)在表達語言文字難以準確描述的動態(tài)過程中有著不可比擬的優(yōu)勢。通過blender進行三維建模并進行貼圖渲染,然后將模型放在unity3D進行交互設(shè)計與開發(fā),可以很好地表達一些語言描述晦澀難懂的動態(tài)過程,并給用戶帶來良好的體驗[1]。基于虛擬現(xiàn)實技術(shù)的輸水工程應(yīng)急演練培訓(xùn)系統(tǒng)可以很好地解決輸水工程工作人員演練培訓(xùn)效率低下的問題,工作人員只需戴上虛擬現(xiàn)實設(shè)備即可融入虛擬環(huán)境進行沉浸式體驗完成應(yīng)急演練培訓(xùn)。
1 輸水工程管涌險情應(yīng)急演練仿真方法
管涌險情對于輸水工程而言,發(fā)生概率很小,但危害性極大。要實現(xiàn)基于虛擬現(xiàn)實技術(shù)的輸水工程管涌險情災(zāi)變仿真,首先要對輸水工程地形進行建模。災(zāi)變仿真方法首先要對輸水工程渠道進行建模,結(jié)合AutoCAD工程圖紙數(shù)據(jù),使用blender三維建模軟件對渠道進行建模,并在現(xiàn)場采集渠道模型貼圖對模型進行貼圖渲染,提高虛擬環(huán)境的真實感,然后利用unity3D引擎結(jié)合C#編程語言對管涌形成過程進行仿真,并進行交互設(shè)計與實現(xiàn),提出一種基于虛擬現(xiàn)實技術(shù)的輸水工程管涌險情應(yīng)急演練仿真方法。
1.1開發(fā)流程
在應(yīng)急演練培訓(xùn)系統(tǒng)開發(fā)之前,需要對系統(tǒng)進行功能設(shè)計和需求分析。對管涌險情災(zāi)變過程和應(yīng)急演練培訓(xùn)過程所需的災(zāi)變模型和搶險物資進行三維建模,然后放在unity3D結(jié)合C#語言對險情發(fā)生特征和應(yīng)急搶險過程特征進行仿真。結(jié)合輸水工程應(yīng)急搶險流程,設(shè)計的應(yīng)急演練培訓(xùn)系統(tǒng)中的流程有發(fā)現(xiàn)異常、險情上報、應(yīng)急搶險,其中發(fā)現(xiàn)異常主要以建模渲染的方式展現(xiàn),險情上報主要以虛擬人物語音播報的形式展現(xiàn),應(yīng)急搶險則主要以用戶交互的形式進行體驗和學(xué)習(xí)。結(jié)合上述搶險流程,可以設(shè)計有語音播報子系統(tǒng)、動畫子系統(tǒng)、交互子系統(tǒng)等系統(tǒng)架構(gòu)在系統(tǒng)中進行實現(xiàn),子系統(tǒng)之間的關(guān)系如圖1所示。
1.2 blender技術(shù)
blender是一款開源免費的三維建模軟件,提供了一系列三維制作功能,如:建模、動畫、材質(zhì)、視頻剪輯。其基于OpenGL的圖形界面可以在任何平臺跨平臺支持,自帶插件更是可以幫助用戶更好地實現(xiàn)三維制作流程[2]。Blender可以進入編輯模式對模型進行點面線編輯,這樣可以幫助用戶更加準確地進行模型尺寸修改,再結(jié)合材質(zhì)和紋理編輯,可以很好地展示輸水工程的災(zāi)變演變效果。blender技術(shù)通過分析輸水工程實體的各項數(shù)據(jù),在計算機建模軟件最大程度地還原輸水工程原來的形態(tài),實現(xiàn)輸水工程的高精度可視化。例如高填方渠道的具體模型如圖2所示。
在對輸水工程進行三維建模構(gòu)造虛擬環(huán)境時,為了高度還原真實輸水工程原貌,需要對輸水工程進行實地調(diào)研并采集紋理貼圖,然后在blender軟件將貼圖紋理貼在輸水工程模型上,以便于用戶再進行交互時有身臨其境的沉浸感,高填方外坡紋理如圖3所示。
1.3 unity3D技術(shù)
在blender三維建模軟件中完成貼圖紋理工作的渠道模型,需要放到unity3D中進行實時渲染,并結(jié)合C#語言完成災(zāi)變過程仿真和應(yīng)急演練交互的實現(xiàn)。Unity3D是一款用于虛擬現(xiàn)實內(nèi)容創(chuàng)作和運營的平臺,用戶可以用unity3D來開發(fā)游戲、影視制作、可視化仿真等,其應(yīng)用領(lǐng)域十分廣泛。Unity3D開發(fā)主要使用C#語言進行功能開發(fā),用戶可以根據(jù)unity用戶手冊進行所需功能的設(shè)計與實現(xiàn)[3]。Unity常用的命名空間有:UnityEngine、UnityEditor等;常用的類有:Transform、MonoBehaviour、Application、 GameObject MonoBehaviour等;常用的函數(shù)有:Start()、Update()、Awake()等,可以用來控制一些動畫播放和交互功能的實現(xiàn)。
2 管涌險情災(zāi)變仿真
管涌險情的形成過程總體需要兩個因素,第一個因素是輸水工程的水下的土壤粗顆粒之間存在孔隙,且孔隙直徑較大,可通過土壤細顆粒,輸水工程的水下防滲工程存在缺陷,導(dǎo)致渠道內(nèi)渠水外出,帶動土壤細顆粒在孔隙間流動,土壤細顆粒被帶出渠堤外坡,長此以往形成管涌通道[4]。在通過虛擬現(xiàn)實技術(shù)制作管涌形成過程關(guān)鍵動畫時,需要對管涌通道進行建模,并將模型置入渠道高填方模型,在unity3D中結(jié)合C#語言實現(xiàn)管涌形成過程災(zāi)變仿真。
2.1 管涌險情災(zāi)變仿真
在unity中,管涌形成過程可分為兩步來表現(xiàn),第一步為管涌滲土過程,第二步為水土流失過程。兩個過程可通過遮罩動畫的方式來表達。在技術(shù)路線上,第一步管涌滲土過程動畫需要在管涌通道模型上添加一層遮罩層,且能夠透過該遮罩層看到“被遮罩層”管涌通道對象及其顏色變化屬性,使其表達管涌形成過程第一步;第二步水土流失過程可通過粒子系統(tǒng)拖尾來模擬水流帶動土壤細顆粒流動過程。最終對形成機理動畫進行錄屏,輸出離線動畫放置在場景中進行播放。管涌形成過程視圖如圖4所示。
2.2 unity渲染管線
完成輸水工程模型的構(gòu)建和貼圖后,為了更好地提高虛擬場景中渠道和其他模型的真實感,需要在unity中通過渲染管線對模型進行渲染。在unity中,渲染管線按是否可以進行編程改動又分為固定渲染管線和可編程渲染管線。其中固定渲染管線的模型表面光的反射、折射算法固定,這會影響到不同模型表達不同物體的質(zhì)感[5]。根據(jù)輸水工程虛擬場景的特殊性,我們采取可編程渲染管線對輸水工程虛擬場景中的不同模型進行渲染和著色。可編程渲染管線中頂點著色和片元著色部分可通過編程實現(xiàn),頂點著色的輸出是片元著色的輸入,其中頂點著色程序主要是對模型表面對頂點進行矩陣變換得到模型的輪廓,獲取頂點的位置信息,然后對模型輪廓上的像素點進行線性插值處理。片元著色在得到頂點著色變換后的模型輪廓后對模型表面每個像素點的顏色進行檢測,獲取當前位置的色差變化,輸出當前像素點的顏色信息,來決定是否修復(fù)當前像素的顏色。渲染管線的技術(shù)路線圖如圖5所示。
2.3 應(yīng)急演練培訓(xùn)交互設(shè)計與實現(xiàn)
為了保證用戶更好地學(xué)習(xí)管涌險情應(yīng)急搶險過程,需要在unity3D中對培訓(xùn)過程進行交互設(shè)計與實現(xiàn)。在場景中,我們給用戶設(shè)定工程巡檢人員的角色,并為其添加移動交互功能和語音提示功能,巡檢角色移動控制的部分腳本如下:
void Update () {
float vertical = Input.GetAxis("Vertical");
float horizontal = Input.GetAxis("Horizontal");
if (Input.GetKey(KeyCode.Left))
{
rigidbody.velocity = Vector3.forward * speed;
}
if (Input.GetKey(KeyCode.Right))
{
rigidbody.velocity = Vector3.back * speed;
}
if (Input.GetKey(KeyCode.Up))
{
rigidbody.velocity = Vector3.left * speed;
}
if (Input.GetKey(KeyCode.Down))
{
rigidbody.velocity = Vector3.right * speed;
}
}
在用戶角色和輸水工程三維模型身上添加碰撞檢測機制,用戶在培訓(xùn)系統(tǒng)中漫游進行工程巡檢時可以通過人物與建筑物的碰撞檢測實現(xiàn)交互的觸發(fā)機制,以及讓用戶有更好的工程巡檢體驗,觸發(fā)檢測觸發(fā)機制的視圖如圖6所示。
為了讓用戶在應(yīng)急演練培訓(xùn)中學(xué)到更多知識,我們采用更多的交互知識問答形式來幫助用戶進行搶險方案的選擇和預(yù)演。在unity3D中,通過在用戶攝像機視角擺放UI畫布填寫搶險方案文本內(nèi)容,設(shè)定正誤判斷來幫助用戶進行管涌險情應(yīng)急演練培訓(xùn)知識的學(xué)習(xí)。在用戶體驗應(yīng)急演練培訓(xùn)系統(tǒng)時,需要用戶通過交互進行選擇管涌應(yīng)急搶險方案。用戶需要進行的交互有:險情上報流程的選擇、管涌出水口搶險物資的選擇、入水口搶險物資的選擇。例如進行管涌入水口應(yīng)急搶險物資選擇的UI效果圖如圖7所示。
3 應(yīng)急演練培訓(xùn)系統(tǒng)集成與調(diào)試
在完成管涌險情災(zāi)變仿真和應(yīng)急演練培訓(xùn)系統(tǒng)交互設(shè)計與實現(xiàn)工作后,開始進行系統(tǒng)的集成,這是系統(tǒng)開發(fā)的最后一步。在系統(tǒng)的集成與實現(xiàn)中,選擇合適的虛擬現(xiàn)硬件平臺,將桌面式的虛擬現(xiàn)實沉浸化。實現(xiàn)最終的系統(tǒng)開發(fā)。本系統(tǒng)選擇虛擬現(xiàn)實設(shè)備 HTC vive focus plus作為開發(fā)設(shè)備,該款設(shè)備是一種具有六自由度的頭戴顯示器,其內(nèi)置六自由度控制器可以精準捕捉用戶手部移動,并對用戶手部力量進行感知,使用戶體驗更加沉浸和真實。
3.1 設(shè)備調(diào)試
在完成管涌險情災(zāi)變仿真和應(yīng)急演練培訓(xùn)交互設(shè)計與實現(xiàn)工作后,可在unity中把完成交互開發(fā)工作的應(yīng)急演練培訓(xùn)系統(tǒng)打包為安卓apk,然后對頭戴式顯示器進行調(diào)試,將應(yīng)急演練培訓(xùn)系統(tǒng)植入頭顯進行交互體驗,通過頭戴顯示器進行三維成像,通過定位基站實現(xiàn)位置追蹤,通過手柄開發(fā),實現(xiàn)主要的交互功能[6]。具體流程如圖8所示。
3.2 系統(tǒng)集成與發(fā)布
完成頭戴顯示器的調(diào)試后,需要在unity3D中對應(yīng)急演練培訓(xùn)系統(tǒng)進行集成和打包。在打包之前,需要對unity3D進行安卓環(huán)境配置,包括JDK、SDK和NDK的安裝和環(huán)境變量配置,然后在unity的偏好設(shè)置中選中安卓資源包的安裝路徑即可完成培訓(xùn)系統(tǒng)的集成和打包[7]。
4 結(jié)語
本文主要介紹一種基于虛擬現(xiàn)實技術(shù)的調(diào)水工程應(yīng)急演練培訓(xùn)系統(tǒng)的設(shè)計與實現(xiàn)流程,技術(shù)路線主要包括輸水工程的三維建模、模型渲染、動畫制作、管涌險情災(zāi)變仿真和交互設(shè)計與實現(xiàn),最后將前面所有工作進行系統(tǒng)地集成打包安裝入HTC vive focus plus頭戴式顯示器供用戶進行沉浸式體驗?;谔摂M顯示技術(shù)的應(yīng)急演練培訓(xùn)系統(tǒng)可以幫助培訓(xùn)人員快捷完成應(yīng)急演練培訓(xùn)任務(wù),對于培訓(xùn)人員來講是一種形象逼真的表現(xiàn)方法,對于輸水工程應(yīng)急演練培訓(xùn)方式的創(chuàng)新具有重要意義。
參考文獻:
[1] 汪子涵,董維華.淤地壩水資源調(diào)控三維仿真系統(tǒng)[J].電腦知識與技術(shù),2021,17(6):205-208.
[2] 劉和彬,廖劍斌,李華川,等.Blender虛擬現(xiàn)實環(huán)境下的工業(yè)機器人建模[J].輕工科技,2017,33(5):77-78.
[3] 馬振勇.基于Unity3D的應(yīng)用關(guān)系架構(gòu)可視化系統(tǒng)的設(shè)計與實現(xiàn)[D].北京:中國科學(xué)院大學(xué)(中國科學(xué)院沈陽計算技術(shù)研究所),2021.
[4] 劉紫蕊,江克證.堤防大壩管涌問題的研究[J].中國水運(下半月),2017,17(5):197-199.
[5] 馬明星.VR系統(tǒng)中圖形渲染和視覺傳達研究設(shè)計[D].杭州:杭州電子科技大學(xué),2018.
[6] 劉傳.500kV GIS變電站虛擬現(xiàn)實仿真系統(tǒng)研究[D].鄭州:鄭州大學(xué),2020.
[7] 馮驍.基于安卓系統(tǒng)終端的虛擬現(xiàn)實全景展示平臺的研究與實現(xiàn)[D].濟南:山東大學(xué),2015.
【通聯(lián)編輯:梁書】