劉 芳,王 聃
(1.東北石油大學(xué)計算機(jī)與信息技術(shù)學(xué)院,黑龍江大慶163318;2.哈爾濱石油學(xué)院信息工程與計算機(jī)技術(shù)系,黑龍江哈爾濱150027)
隨著計算機(jī)和網(wǎng)絡(luò)技術(shù)的飛速發(fā)展,油田采油井作業(yè)單位的軟件信息系統(tǒng)不斷完善,為進(jìn)一步開展計算機(jī)應(yīng)用奠定了基礎(chǔ)。而新信息技術(shù)的科學(xué)應(yīng)用,將會有效地提升油田采油井作業(yè)單位的效率和效益。采油生產(chǎn)最大的安全隱患來自于井控安全,不規(guī)范的操作是導(dǎo)致井控安全隱患的最突出因素。目前,針對采油井控安全操作培訓(xùn)的方法一般是采用觀看錄像、從書本上學(xué)習(xí)或上井跟班操作訓(xùn)練的集中培訓(xùn)方式,這樣的培訓(xùn)方式有很多不便之處,如:培訓(xùn)成本高、周期長、培訓(xùn)手段單一枯燥、培訓(xùn)效果受限、抽象難于理解、工學(xué)矛盾突出。油田需要新的培訓(xùn)方式來針對性地解決以上問題,提升操作水平,實現(xiàn)操作標(biāo)準(zhǔn)化。
Virtools是虛擬現(xiàn)實的一種開發(fā)工具,提供可視化圖形開發(fā)界面,開發(fā)人員通過拖曳所需要的行為模塊就可以建構(gòu)復(fù)雜、高效的應(yīng)用程序,有效縮短開發(fā)流程,其特點是方便易用,應(yīng)用領(lǐng)域廣。Virtools擁有大量的交互模塊可供應(yīng)用,經(jīng)編輯后的互動模塊組合使用,可以組成一個具有解決某項功能或者應(yīng)用.nms格式的單一交互模塊,以方便重復(fù)使用、編輯[1]。
圖1所示為仿真培訓(xùn)系統(tǒng)體系結(jié)構(gòu)。系統(tǒng)實現(xiàn)可分為兩個部分:場景建模、場景驅(qū)動。場景建模是將所要仿真的場景與對象通過數(shù)學(xué)方法表達(dá)成存儲在計算機(jī)內(nèi)的三維圖形對象的集合。實時三維視景仿真系統(tǒng)采用了3Ds Max作為場景建模工具,完成場景模型的建立。通過三維交互開發(fā)工具Virtools完成交互系統(tǒng)的構(gòu)建。為了提高建模的效率,還需建立專門的基本模型庫和紋理材質(zhì)庫。最后將建完的三維場景模型存儲到三維視景數(shù)據(jù)庫中。
圖1 體系結(jié)構(gòu)Fig.1 Architecture
場景驅(qū)動是視景仿真程序根據(jù)所建立的場景模型以及場景中各類仿真對象運行時的狀態(tài)參數(shù)來生成實時視景的程序[2]。視景仿真的結(jié)果以圖像的方式輸出,用戶可以直觀地觀察到仿真對象的狀態(tài)。在視景仿真過程中,仿真對象的狀態(tài)參數(shù)可能是由用戶的輸入來控制,也可能取決于仿真對象自身的運動變化規(guī)律,或由系統(tǒng)中其他仿真系統(tǒng)的輸出來決定。
一個虛擬現(xiàn)實系統(tǒng)的實現(xiàn)包括兩個組成部分,一個是場景數(shù)據(jù)庫的建立,另一個是三維交互引擎的開發(fā),如圖2所示,主要包括場景數(shù)據(jù)庫的生成和交互引擎的設(shè)計兩部分。
圖2 系統(tǒng)架構(gòu)圖Fig.2 System frame diagram
采油井控仿真培訓(xùn)系統(tǒng)的設(shè)計與實現(xiàn)是以虛擬現(xiàn)實技術(shù)為基礎(chǔ),實現(xiàn)“人機(jī)交互”,即對用戶的輸入做出反應(yīng),交互性是虛擬現(xiàn)實技術(shù)的一個重要概念[3],它是指將輸入設(shè)備獲取的用戶動作信息映射為虛擬環(huán)境中的動作,如對鼠標(biāo)移動、鍵盤敲擊事件的響應(yīng)。本系統(tǒng)在現(xiàn)有技術(shù)和設(shè)備的基礎(chǔ)上,建立一個基于Web的采油井控仿真培訓(xùn)系統(tǒng);利用3DSMax建立抽油機(jī)安全操作系統(tǒng)的模型,對模型進(jìn)行優(yōu)化;將模型導(dǎo)入到Virtools中,實現(xiàn)三維場景控制,并通過瀏覽器進(jìn)行仿真培訓(xùn)。
4.2.1 建立場景數(shù)據(jù)庫
建立場景數(shù)據(jù)庫是三維場景的建模過程[4]。模型建立的過程大體可分為兩個部分:模型建立和模型優(yōu)化。模型建立通過3DS Max等建模工具即可完成主要的工作,并結(jié)合Photoshop輔助制圖,能夠完成基本的模型建立、圖片優(yōu)化、紋理映射、光照及材質(zhì)的應(yīng)用等。
模型優(yōu)化主要體現(xiàn)在模型實時生成和交互等方面,應(yīng)用的技術(shù)包括LOD(Level of Details)和模型對象實例化等,這些技術(shù)可以使一個三維場景內(nèi)有很多結(jié)構(gòu)、形狀、材質(zhì)相同的物體,當(dāng)物體之間的差別僅在于其位置、大小、方向的不同時,可以根據(jù)實際的情況,或者繪制粗糙的模型,或者根據(jù)實際情況實例化模型,使得三維顯示效果更加逼真流暢。
圖3所示為實例化后的三維模型。
圖3 三維模型效果圖Fig.3 3d model rendering
4.2.2 開發(fā)交互引擎
(1)自由視角引擎的實現(xiàn):本文利用Virtools軟件對三維場景進(jìn)行引擎開發(fā),首先介紹一下自由視角引擎的開發(fā)。要先為三維場景添加一個Camera,設(shè)置好其參數(shù)與IC值。如圖4所示,為Camera模塊的參數(shù)設(shè)置。
圖4 自由漫游模塊中的Camera腳本流程圖Fig.4 Camera flow chart of the script in free roaming module
在這個程序模塊中,是為新創(chuàng)建Camera添加腳本:①用Set As Active Camera模塊把Camera設(shè)置成當(dāng)前活動攝像機(jī)。②Switch On Key模塊識別用戶按下的鍵位。③ 通過Get Current Camera模塊控制當(dāng)前活動攝像機(jī)位置。④通過鍵盤上的方向鍵和Page Down和Page Up鍵結(jié)合Per Second模塊與Translate模塊及Rotate模塊完成“漫游”系統(tǒng)場景實現(xiàn)視角轉(zhuǎn)換和移動的操作,其中Per Second模塊可以集合不同的模塊設(shè)定旋轉(zhuǎn)角度以及移動速度,如圖5所示。圖6為自由視角下的系統(tǒng)截圖。
圖5 Per Second模塊與不同模塊搭配使用的不同設(shè)置Fig.5 Different settings of Per Second module with different modules with different settings
圖6 自由漫游視角觀察圖Fig.6 Angle of view free roaming figure
(2)交互操作引擎的實現(xiàn):交互操作基本流程大概是以下幾個部分:操作提示,選擇工具,目標(biāo)拾取,操作激發(fā),傳送信息。當(dāng)用戶把鼠標(biāo)移到對象上時,就會在鼠標(biāo)位置出現(xiàn)一個綠色圓圈,表示鼠標(biāo)可以點擊該對象并能觸發(fā)一定的事件,如圖7所示,為系統(tǒng)激活及操作識別的腳本。
圖7 系統(tǒng)激活及操作識別的腳本Fig.7 Script of system activation and operations identify
具體實現(xiàn):系統(tǒng)出現(xiàn)提示信息,當(dāng)鼠標(biāo)移動時,系統(tǒng)用2D Picking模塊來拾取物體,當(dāng)檢測到拾取的是目標(biāo)對象時,就用Text Display模塊在通過Get Screen Orign模塊和Subtraction模塊計算得到的位置顯示一個綠色圓圈,也就是以鼠標(biāo)位置為中心顯示一個綠色圓圈[5]。當(dāng)用戶按下鼠標(biāo)左鍵時,系統(tǒng)拾取物體,并檢測到是目標(biāo)對象,然后用Get Cell模塊從存儲用戶操作次序的數(shù)組中獲取當(dāng)前操作序號。在用戶按下鼠標(biāo)激活場景的同時也激活Prevent Collision(碰撞檢測)模塊來避免與場景中其他物體的碰撞,Object Slider模塊使被選工具能夠與本組其他物件產(chǎn)生相對滑動。
如果符合正確的操作次序,則執(zhí)行Send Message模塊將激活的信息傳遞到相應(yīng)動作腳本,動作腳本結(jié)束后執(zhí)行判斷“本步驟是否完成”,如圖8所示。
完成操作后用Set As Active Camera模塊重新定位攝影機(jī)的位置,未完成操作同樣使用Get Cell模塊取出操作選擇“跳過”和“觀看正確操作”并結(jié)合Text Display模塊和Set 2D Position模塊顯示在屏幕上固定位置。
圖8 驗證本步驟是否完成的腳本Fig.8 Script to validate the completion of this step
本文利用3D Max的建模技術(shù)和Virtools三維場景管理軟件,設(shè)計并實現(xiàn)了三維井控仿真教育培訓(xùn)系統(tǒng),該系統(tǒng)的應(yīng)用將大大提高員工教育培訓(xùn)的效率,縮短培訓(xùn)時間,降低培訓(xùn)成本,對其他行業(yè)同類系統(tǒng)的設(shè)計與開發(fā)也有一定的借鑒意義。
[1] 劉明昆.三維游戲設(shè)計師寶典—Virtools開發(fā)工具篇[M].成都:四川出版集團(tuán)電子音像出版中心,2005.LIU Mingkun.3 d game designer—The part of Virtools development tool[M].Chengdu:Sichuan Publishing Group,Electronic Audio and Video Publishing Center,2005.
[2] Ebert D S,Parent R E.Rendering and animation of gaseous phenomena by combining fast volume and scanline a buffer techniques[J].ACM Computer Graphics(SIGGRAPH;90),1990,24(4):357-366.
[3] 李長山,劉曉明,朱麗萍,等.虛擬現(xiàn)實技術(shù)及其應(yīng)用[M].北京:石油工業(yè)出版社,2006.LI Changshan,LIU Xiaoming,ZHU Liping,et al.Virtual reality technology and its application[M].Beijing,Petroleum Industry Press,2006.
[4] 牟萍.虛擬校園建模、漫游技術(shù)研究及其實踐[D].重慶:重慶師范大學(xué),2006.MU Ping.Modeling and walk through teehnology of studying and praetiseing in virtua lCamPus[D].Chongqing:Chongqing Normal University,2006.
[5] Virtools SA.Virtools dev user guide[S].[s.l.]:Virtools SA,2001.