孫浩鵬,李 楊
(1.長春工程學院計算機技術(shù)與工程學院,長春130012;2.長春建筑學院科研處,長春130699)
人類為了達到興利除害的目的,在天然河道上修建水利樞紐,利用水工閘門控制和調(diào)節(jié)水流,從而有效地防制洪水,以便充分利用水能資源發(fā)電、灌溉、養(yǎng)魚等。閘門的類型多種多樣,從使用材料看,有鋼結(jié)構(gòu)閘門、木結(jié)構(gòu)閘門、鋼筋混凝土閘門、復(fù)合材料閘門4類;從結(jié)構(gòu)特征看,有弧形閘門、平面閘門、船閘人字門、拱形閘門、扇形閘門等[1]。閘門種類多,結(jié)構(gòu)復(fù)雜且工作在水下,用傳統(tǒng)的動畫演示方法很難完整地描述各閘門在水下的工作方式,而實習實驗是掌握水工理論基礎(chǔ)知識、提高相關(guān)技能的一個必不可少的環(huán)節(jié),在水工建筑物系統(tǒng)上動手操作,以驗證并進行控制系統(tǒng)設(shè)計,會取得非常好的效果,但實際系統(tǒng)需要耗費許多時間進行組裝、調(diào)試等工作,成本也比較高。因此采用虛擬現(xiàn)實技術(shù)將閘門在水下工作的方式展示出來,達到現(xiàn)場實習不能達到的結(jié)果,經(jīng)驗證結(jié)果清晰明確[2]。
閘門的結(jié)構(gòu)為講授的主要內(nèi)容,在課件中的首要任務(wù)就是通過虛擬現(xiàn)實技術(shù)將不同結(jié)構(gòu)的閘門分別展示。所以在鋼閘門課件的講解過程中,需要展示不同鋼閘門的結(jié)構(gòu)、工作位置、工作方法、工作條件等。其中閘門結(jié)構(gòu)的表現(xiàn)需要利用三維建模導入虛擬現(xiàn)實來實現(xiàn);其工作位置和工作方法在虛擬現(xiàn)實中利用輸入設(shè)備進行控制,實現(xiàn)操作演示;工作條件和輔助設(shè)備的安裝和講解則是利用虛擬現(xiàn)實中的拼裝技術(shù)來實現(xiàn)的[3]。
幾何建模構(gòu)建的是形狀和紋理,在虛擬現(xiàn)實中應(yīng)用的模型必須經(jīng)過三維建模軟件來實現(xiàn),實現(xiàn)的過程主要包括2個步驟,分別為建模、材質(zhì)。建模是指利用點線面的構(gòu)造方法將現(xiàn)實物體數(shù)字化建立的過程,三維軟件實現(xiàn)過程如下:(1)獲取閘門數(shù)據(jù)。根據(jù)閘門設(shè)計手冊獲得各種閘門的典型代表設(shè)計數(shù)據(jù),按1∶1比例建立閘門邊界封閉線。封閉線可直接存為矢量圖,在任何三維軟件中均可調(diào)用。(2)規(guī)范三維軟件和虛擬現(xiàn)實接口的單位,如MAYA中的自定義單位設(shè)置:1個單位=1cm,但在虛擬引擎中一般顯示單位比例:1個單位=1m”,以便模型數(shù)據(jù)能以正確比例導入。(3)MAYA建模:導入新建單個封閉線,通過LOFT命令放樣得到NURBS模型,為保證虛擬現(xiàn)實場景中的正確性,通常都轉(zhuǎn)換為POLYGON導出。(4)閘門的大小參照施工圖尺寸,高度和位置嚴格參照竣工平面圖中水工建筑物的真實高度。個別不規(guī)則設(shè)備如吊耳在不影響計算結(jié)果的情況下可以參照周圍已知物的比例來做。(5)使用最接近現(xiàn)場的材質(zhì)貼圖。貼圖在保證真實清晰的前提下,數(shù)據(jù)量盡可能小。紋理的像素尺寸應(yīng)該是2N。在三維軟件中利用修改工具中的UVW貼圖坐標進行UV分解。貼圖利用虛擬現(xiàn)實軟件的材質(zhì)球來賦予物體。
當模型和材質(zhì)貼圖準備完成后,虛擬現(xiàn)實軟件通常要通過以下幾個步驟完成:(1)導入模型,此時要注意導入的格式如果是FBX格式的,要確保其軸向設(shè)置為Y軸向上。(2)建立環(huán)境,首先設(shè)置地形大小并給地形賦予材質(zhì),其次用方向燈來模擬真實的太陽照射光線,用環(huán)境球來模擬真實的天空,確定shader類型,最后調(diào)節(jié)shader來控制環(huán)境和天空的色彩。(3)建立camera,在虛擬現(xiàn)實的操控中,觀察者的第一視角,就是虛擬現(xiàn)實中“相機”。相機在虛擬現(xiàn)實中可以通過腳本和輸入設(shè)備連接在一起,通過使用者的交互來充分瀏覽與控制。例如用鍵盤來控制相機,上下鍵用于在平面上前進或者后退;翻頁鍵控制相機完成拉近和推遠操作;左右鍵控制相機完成旋轉(zhuǎn)操作;在鍵盤控制的同時,鼠標也可以參與控制,比如滾輪控制相機的水平高度等等。(4)建立控制腳本,每個可操作的物體,如啟閉機、閘門等,為達到交互目的,通過腳本語言將其與平面上的2D按鈕連接在一起,當用戶點擊按鈕時,相應(yīng)的設(shè)備就會啟動。(5)碰撞設(shè)定,碰撞一共分為3種情況,第一種是相機和物體的碰撞,為了能夠讓使用者了解水下建筑物的內(nèi)部結(jié)構(gòu),相機和某些特殊物體如大壩是可以穿透的,但是鋼閘門是重點講授內(nèi)容,所以鋼閘門是不可以穿透的。第二種是鋼閘門和地面以及大壩壩體之間的碰撞,為了保證客觀真實性,是不允許鋼閘門穿過地面和其他水工建筑物的。第三種是流體和鋼閘門的碰撞,在課件中由于水下操作鋼閘門,如進水閘門,當閘門提起時,周圍的水就會流入進入口,在虛擬現(xiàn)實中一般用粒子發(fā)射系統(tǒng)來模擬水流,當水流沖向閘門,會與閘門碰撞,在傳統(tǒng)的三維動畫中,可以直接用realflow來模擬,但是在虛擬現(xiàn)實中普遍采用粒子來模擬,如圖1所示
圖1 粒子系統(tǒng)模擬水流
在整個制作過程中,粒子和鋼閘門的碰撞是最難控制的,在普通的虛擬引擎中均有層次碰撞包圍盒的概念,其中目前最常用的為AABB包圍盒[4]和OBB包圍盒[5-6],其中 AABB也叫軸向包圍盒,雖然它的緊密型不如其他類型的包圍盒,但是其構(gòu)造方便和相交測試簡單的特性使得它一直沿用至今。在水下,產(chǎn)生主要碰撞的是粒子系統(tǒng)和鋼閘門,但是由于鋼閘門有多種形態(tài),如弧形鋼閘門等,不能簡單地利用一個碰撞包圍盒來代替鋼閘門。對于平板鋼閘門來說直接將碰撞包圍盒將其包裹住即可。對于弧形鋼閘門,如果用單一的碰撞包圍盒,包圍盒與物體邊界會有大量空間,效果非常不真實,如圖2所示。
圖2 弧形閘門的單一碰撞包圍盒
如果用物體本身的網(wǎng)格來作為碰撞物體,計算量非常大導致整體運行速度下降[7],所以提出復(fù)合碰撞包圍盒的思路對此進行運算。以弧形鋼閘門為例,首先將弧形的鋼閘門進行分解,由于在建模時鋼閘門的前面板為了和背面的筋板良好地契合,在多邊形的分段上基本是按照設(shè)計手冊上筋板的數(shù)量分段的。鋼閘門的啟閉是通過啟閉機帶動旋轉(zhuǎn)升起和落下,所以其旋轉(zhuǎn)軸心正是前面板的軸心,首先得到弧形面板的水平筋板數(shù)量,并將單個筋板的迎水面寬度設(shè)定一個方形包圍盒A,已知A的高度為H。將此包圍盒群組后軸心與面板的旋轉(zhuǎn)軸心重合,軸心到面板的距離為R,在設(shè)計手冊中查到鋼閘門的面板弧長為L,可得到當前鋼閘門的角度γ=L*360/C,包圍盒的個數(shù)=L/H,而包圍盒的放置則以面板的旋轉(zhuǎn)軸心為包圍盒軸心,旋轉(zhuǎn)復(fù)制的角度=γ/(L/H),計算得到的最后包圍盒效果如圖2所示。由于鋼閘門葉片表面的復(fù)雜性和多樣性,重建的曲面模型不可能由一個曲面擬合,而是由一些子曲面按一定的約束條件組成,構(gòu)成完整的重建曲面模型[8],連續(xù)的曲面重構(gòu)公式如下:
式中:Pi(P)為葉片曲面幾何模型;Tk為Ck(p)約束所容許的誤差。
通過分別測試OBB包圍盒在分解后的局部葉片上效果,分解得越多,效果越真實,但是對計算機的消耗也越大,經(jīng)過測試,分解成5個部分時效果良好,此時的粒子可以采用粒子構(gòu)造邊界,結(jié)果如圖3所示。
圖3 弧形閘門的復(fù)合碰撞包圍盒
經(jīng)測試,在cpu為酷睿I5雙核筆記本電腦上,粒子系統(tǒng)在復(fù)合包圍盒的情況下碰撞效果良好,數(shù)據(jù)見表1。
表1 測試數(shù)據(jù)
與PAL制式的播放速度標準24f/s對比,單一碰撞包圍盒在這點上占很大優(yōu)勢,所以大壩的壩體和地面統(tǒng)一采用單一碰撞包圍盒來處理,對系統(tǒng)的運行基本不產(chǎn)生負擔,但是對于弧形或者其他形狀的物體,粒子碰撞會消耗大量的時間,所以利用復(fù)合碰撞包圍盒的方法雖然有極小量的“穿幫”現(xiàn)象,但在運行時間上大大提高的運行速度使得整體運行狀態(tài)良好。
通過利用虛擬現(xiàn)實技術(shù),突破傳統(tǒng)的動畫演示方式,可以實現(xiàn)任意角度的觀測。同時利用輸入設(shè)備,使用者可以任意拆解鋼閘門的零部件。當選擇水下虛擬系統(tǒng)時,又可以模擬人在水下觀測并可以任意操作鋼閘門的運行。對于粒子系統(tǒng)和鋼閘門的碰撞提出了復(fù)合包圍盒的碰撞方法,對于弧形鋼閘門等非平面閘門有非常好的效果和運算速度,但是當閘門的開閉速度過快時仍然有極少量粒子穿透閘門,這是復(fù)合碰撞包圍盒的弊端。
[1]于波,肖惠民.水輪機原理與運行[M].北京:中國電力出版社,2008:12-15.
[2]于正林,譚微,姜濤.基于視景仿真的光電經(jīng)緯儀模擬訓練器 [J].吉 林 大 學 學 報:工 學 版,2011,41(2):509-513.
[3]石教英.虛擬現(xiàn)實基礎(chǔ)及實用算法[M].北京:科學出版社,2002.
[4]潘振寬,李建波.基于壓縮的AABB樹的碰撞檢測算法[J].計算機科學,2005,33(2):213-215.
[5]Gottschalk S,Lin M C,Manocha D.OBBTree:a hierarchicalstructure for rapid interference detection[C]//Proceeding SIGGRAPH'96Procedings of 23rd annual conference on Computer graphics and interactive techniques.New York:ACM,1996:171-180.
[6]崔漢國,陳軍,王大宇.虛擬環(huán)境中優(yōu)化的OBB碰撞檢測算法研究[J].計算機工程與設(shè)計,2007,28(11):2524-2526.
[7]GEIGER B.Real-time collision detection and response for complex environments[C]//Proceedings of the International Conference on Computer Graphics.Washington DC:IEEE Computer Society,2000:105-113.
[8]Brujic D,Ainsworth I,Ristic M.Fast and accurate NURBS fitting for reverse engineering[J].International Journal of Advanced Manufacturing Technology,2011,54(5):691-700.