邢紅宏, 梁承紅, 張紀(jì)磊, 牟 青
(海軍航空工程學(xué)院a.基礎(chǔ)實(shí)驗(yàn)部;b.研究生管理大隊(duì),山東 煙臺(tái) 264001)
總參軍訓(xùn)和兵種部在《軍隊(duì)院校基礎(chǔ)實(shí)驗(yàn)室建設(shè)標(biāo)準(zhǔn)》中要求:實(shí)驗(yàn)室應(yīng)具備開(kāi)展虛擬實(shí)驗(yàn)的條件,把虛擬實(shí)驗(yàn)列為實(shí)驗(yàn)教學(xué)的重要組成部分。尤其是功能強(qiáng)大的軟件技術(shù)像3Ds Max、Virtools的出現(xiàn)為虛擬實(shí)驗(yàn)提供了可靠的技術(shù)支持,虛擬實(shí)驗(yàn)作為一種新的教學(xué)模式被引入到實(shí)驗(yàn)教學(xué)中,改變了實(shí)驗(yàn)系統(tǒng)的構(gòu)建模式,突破實(shí)驗(yàn)教學(xué)的時(shí)空限制,在提高實(shí)驗(yàn)教學(xué)質(zhì)量、緩解實(shí)驗(yàn)教學(xué)壓力等方面發(fā)揮著積極的作用,因其廣泛的應(yīng)用前景而日益得到人們的重視[1]。
虛擬實(shí)驗(yàn)的開(kāi)發(fā),最終的使用者是教師和學(xué)生,軟件的各功能的實(shí)現(xiàn)也應(yīng)滿足他們的需求,所以了解教師與學(xué)生對(duì)虛擬實(shí)驗(yàn)的認(rèn)識(shí)以及他們對(duì)軟件的需求是開(kāi)發(fā)者應(yīng)考慮的首要問(wèn)題[2-4],總的說(shuō)來(lái)應(yīng)遵循以下幾個(gè)原則:
(1)數(shù)學(xué)模擬。實(shí)驗(yàn)內(nèi)容并非簡(jiǎn)單的逐幀動(dòng)畫(huà),而是滿足相關(guān)物理原理和數(shù)學(xué)公式的數(shù)字式交互,使實(shí)驗(yàn)數(shù)據(jù)更具真實(shí)性。
(2)功能完善。為了讓使用者有真實(shí)的感覺(jué),在保證虛擬實(shí)驗(yàn)與實(shí)物實(shí)驗(yàn)在視覺(jué)上一致的前提下,要實(shí)現(xiàn)實(shí)物儀器的全部觀察和測(cè)量功能,能夠完成實(shí)物實(shí)驗(yàn)的所有實(shí)驗(yàn)內(nèi)容。
(3)內(nèi)容詳實(shí)。軟件應(yīng)包含了相關(guān)實(shí)驗(yàn)所需的大量參考數(shù)據(jù),例如各個(gè)測(cè)量?jī)?nèi)容的實(shí)驗(yàn)原理、實(shí)驗(yàn)?zāi)康?、?shí)驗(yàn)步驟、儀器參數(shù)和數(shù)據(jù)表格等。用戶不需要再去查閱其他資料就可完成對(duì)相關(guān)實(shí)驗(yàn)內(nèi)容的學(xué)習(xí)。
虛擬實(shí)驗(yàn)采用的開(kāi)發(fā)技術(shù)主要有Java、VRML、Virtools等,Java技術(shù)能夠完成復(fù)雜人機(jī)交互功能,但是實(shí)驗(yàn)場(chǎng)景和儀器不夠逼真,且開(kāi)發(fā)比較復(fù)雜,需專業(yè)的編程人員;VRML技術(shù)能夠模擬真實(shí)的實(shí)驗(yàn)場(chǎng)景和儀器,沉浸感和真實(shí)感強(qiáng),但人機(jī)交互性能差,不能完成復(fù)雜的交互功能。Virtools技術(shù)采用3D界面,能模擬真實(shí)的場(chǎng)景和儀器,且采用模塊化的編程語(yǔ)言,能實(shí)現(xiàn)復(fù)雜的人機(jī)交互功能,降低了開(kāi)發(fā)難度。采用Virtools技術(shù)開(kāi)發(fā)三維虛擬實(shí)驗(yàn),能夠模擬真實(shí)的實(shí)驗(yàn)場(chǎng)景和真實(shí)的實(shí)驗(yàn)儀器,讓用戶產(chǎn)生強(qiáng)烈的現(xiàn)場(chǎng)感,提供的復(fù)雜的交互功能,開(kāi)發(fā)難度小,易于實(shí)現(xiàn)[5-7]。
Virtools是一套具備豐富的互動(dòng)行為模塊的實(shí)時(shí)3D環(huán)境虛擬實(shí)境編輯軟件。它可以將現(xiàn)有的檔案格式整合在一起,如三維模型、二維圖形、視頻或是音頻文件等。只要在Virtools環(huán)境下進(jìn)行相應(yīng)的編程,就能達(dá)到預(yù)期的交互式操作目的[8],并為開(kāi)發(fā)者提供了大約500個(gè)行為功能模塊(簡(jiǎn)稱BB),每個(gè)BB都封裝了行為功能函數(shù),開(kāi)發(fā)者只需仔細(xì)閱讀幫助文件中的相關(guān)文檔,弄清楚這些模塊的功能和使用方式,就可以按照自己的需要進(jìn)行開(kāi)發(fā)。此外,開(kāi)發(fā)者也可以通過(guò)VSL自己編制 BB,并保存到 Virtools的模塊庫(kù)中。VSL是類似于C語(yǔ)言的編程語(yǔ)言,功能強(qiáng)大且操作簡(jiǎn)便[9-11]。
電子束聚焦與偏轉(zhuǎn)虛擬實(shí)驗(yàn)利用3Ds MAX和Photoshop制作了效果逼真的虛擬儀器模型;借助Virtools的三維交互式軟件平臺(tái),實(shí)現(xiàn)了實(shí)驗(yàn)儀器的全方位任意觀察、縮放功能;利用軟件內(nèi)部的 BB和Script語(yǔ)言編譯完成了實(shí)驗(yàn)儀器的調(diào)節(jié)和測(cè)量功能,實(shí)現(xiàn)了實(shí)物實(shí)驗(yàn)的全部觀察和測(cè)量功能。
Virtools本身不具備三維實(shí)體建模的能力,所以要借助其他建模軟件。Virtools中提供了3Ds MAX的文件格式轉(zhuǎn)換插件,因此采用3ds MAX建模[12-14]。建模前需對(duì)實(shí)物儀器進(jìn)行測(cè)量和拍照,根據(jù)測(cè)量數(shù)據(jù)和儀器相片在3Ds Max中完成實(shí)驗(yàn)?zāi)P偷慕ⅲ诮_^(guò)程中,根據(jù)儀器所需交互效果、儀器各部分間的聯(lián)動(dòng)關(guān)系,對(duì)實(shí)驗(yàn)儀器進(jìn)行模塊劃分,設(shè)置好各模塊的位置、轉(zhuǎn)軸、組合和命名等,便于之后在Virtools中設(shè)計(jì)虛擬實(shí)驗(yàn)儀器的交互,使其可以模擬真實(shí)儀器的調(diào)節(jié)和測(cè)量。然后再將建好的模型在3Ds Max中導(dǎo)出為Virtools支持的*.nmo文件格式。虛擬實(shí)驗(yàn)系統(tǒng)中模型構(gòu)建的好與壞是決定整個(gè)實(shí)驗(yàn)系統(tǒng)能否流暢運(yùn)行的關(guān)鍵,為了簡(jiǎn)化模型節(jié)點(diǎn)數(shù),降低系統(tǒng)內(nèi)存的使用率,避免因模型的節(jié)點(diǎn)數(shù)過(guò)多而占用過(guò)多的系統(tǒng)內(nèi)存,在構(gòu)建過(guò)程中只對(duì)需要進(jìn)行交互控制的模型進(jìn)行建模[15]。
模型真實(shí)感的好壞很大程度取決于材質(zhì)和紋理貼圖的質(zhì)量,為了增加模型的真實(shí)感,用3Ds MAX、Photoshop對(duì)模型材質(zhì)和貼圖進(jìn)行處理,首先為建好的模型賦予材質(zhì),為模型實(shí)現(xiàn)高光反射、漫反射、光澤度、柔化等效果,對(duì)模型不同部位貼圖進(jìn)行進(jìn)一步調(diào)節(jié),再通過(guò)UVW通道回帖給模型,使模型的視覺(jué)效果更加逼真,見(jiàn)圖1-3。
圖1 實(shí)驗(yàn)儀器照片
圖2 儀器模型
圖3 虛擬儀器效果圖
電子束的聚焦和偏轉(zhuǎn)實(shí)驗(yàn)所涉及到的交互主要分為三大類:觀察視角調(diào)節(jié)、實(shí)驗(yàn)儀器調(diào)節(jié)和測(cè)量、測(cè)量數(shù)據(jù)處理。
2.2.1 用戶界面設(shè)計(jì)
為了便于使用,軟件界面上方設(shè)置了“幫助”、“實(shí)驗(yàn)?zāi)康摹薄ⅰ皩?shí)驗(yàn)裝置”、“實(shí)驗(yàn)原理”、“實(shí)驗(yàn)步驟”、“實(shí)驗(yàn)表格”、“實(shí)驗(yàn)內(nèi)容”七個(gè)快捷鍵。單擊鼠標(biāo)會(huì)彈出對(duì)應(yīng)的說(shuō)明,幫助使用者熟悉相關(guān)內(nèi)容,在提示下完成實(shí)驗(yàn)操作(腳本流程見(jiàn)圖4)。
2.2.2 視角控制功能
Virtools中實(shí)驗(yàn)儀器和實(shí)驗(yàn)現(xiàn)象的三維觀察主要是通過(guò)攝像機(jī)視角的控制來(lái)實(shí)現(xiàn)的。利用Switch On Key和Generic Camera Orbit可實(shí)現(xiàn)鍵盤(pán)對(duì)攝像機(jī)鏡頭的旋轉(zhuǎn)。通過(guò)Switch On Key中設(shè)置好的鍵盤(pán)按鍵,控制攝像機(jī)旋轉(zhuǎn)和縮放,通過(guò)鍵盤(pán)的A、D、S、W鍵控制攝像機(jī)鏡頭的旋轉(zhuǎn),通過(guò)鍵盤(pán)Q、E控制鏡頭的放大和縮小(見(jiàn)圖5)。
圖4 屏幕顯示的腳本流程
2.2.3 儀器調(diào)節(jié)功能
該實(shí)驗(yàn)的儀器調(diào)節(jié)主要是物體的平移、旋轉(zhuǎn)、伸縮等,這些簡(jiǎn)單的交互通過(guò)Virtools已有的BB就可以實(shí)現(xiàn)。例如通過(guò)Translate、Scale和Set Ambient這三個(gè)BB分別實(shí)現(xiàn)光點(diǎn)上、下、左、右的移動(dòng)、放縮和亮度變化,通過(guò)Rotate實(shí)現(xiàn)儀器旋鈕的轉(zhuǎn)動(dòng)。
2.2.4 數(shù)據(jù)處理功能
為了方便使用者對(duì)實(shí)驗(yàn)的數(shù)據(jù)記錄,我們?cè)O(shè)計(jì)了數(shù)據(jù)處理模塊,記錄測(cè)量的各個(gè)物理量。數(shù)據(jù)輸入功能的實(shí)現(xiàn)主要通過(guò)Send Message和Wait Message兩個(gè)BB控制各個(gè)數(shù)據(jù)輸入框的激活與關(guān)閉,通過(guò)Input String和2D Text實(shí)現(xiàn)數(shù)據(jù)的輸入和顯示。
精細(xì)的模型和靈活的視角很好的提高了虛擬實(shí)驗(yàn)的逼真程度,但也會(huì)帶來(lái)一定的操作不便。為了方便實(shí)驗(yàn)過(guò)程中對(duì)實(shí)驗(yàn)數(shù)據(jù)的讀取,我們利用Additional View實(shí)現(xiàn)了畫(huà)中畫(huà)的功能,實(shí)時(shí)的真實(shí)展示了亮點(diǎn)的移動(dòng)。并且可通過(guò)屏幕上方的控制鍵對(duì)畫(huà)中畫(huà)界面進(jìn)行縮放,使實(shí)驗(yàn)數(shù)據(jù)的讀取更為方便(見(jiàn)圖6)。
圖6 儀器調(diào)節(jié)
以電子束聚焦與偏轉(zhuǎn)實(shí)驗(yàn)中的電偏轉(zhuǎn)為例說(shuō)明實(shí)驗(yàn)操作過(guò)程:開(kāi)啟電源開(kāi)關(guān),將“電子束——荷質(zhì)比”選擇開(kāi)關(guān)置于電子束位置,適當(dāng)調(diào)節(jié)輝度與聚焦旋鈕,使屏上光點(diǎn)聚成一細(xì)點(diǎn)。光點(diǎn)調(diào)零,調(diào)節(jié)“調(diào)節(jié)”旋鈕,使電壓表的指示為零,再調(diào)節(jié)調(diào)零的X旋鈕,使光點(diǎn)位于示波管垂直中線上,同X調(diào)零一樣,將Y調(diào)零后光點(diǎn)位于示波管的中心原點(diǎn)。測(cè)量D隨Vd(Y軸)變化。調(diào)節(jié)陽(yáng)極電壓旋鈕,給定陽(yáng)極電壓Vd(700 V)。改變電偏轉(zhuǎn)電壓Vd,每隔3 V測(cè)一組D值,將測(cè)量數(shù)據(jù)記錄表格內(nèi)。過(guò)程如圖7所示。
圖7 電偏轉(zhuǎn)實(shí)驗(yàn)操作過(guò)程示意圖
從電子束的聚焦與偏轉(zhuǎn)虛擬實(shí)驗(yàn)可以看出虛擬實(shí)驗(yàn)實(shí)現(xiàn)了良好的可視化實(shí)時(shí)交互功能,使用者看到的儀器和真實(shí)的實(shí)驗(yàn)儀器完全一樣,并且能對(duì)儀器進(jìn)行操作,虛擬儀器實(shí)時(shí)反映相應(yīng)的操作結(jié)果,和真實(shí)實(shí)驗(yàn)結(jié)果一致,使用者可觀察現(xiàn)象,記錄并處理數(shù)據(jù),整個(gè)實(shí)驗(yàn)過(guò)程具有強(qiáng)烈的真實(shí)感。在虛擬場(chǎng)景中還能通過(guò)上下菜單在實(shí)驗(yàn)過(guò)程中隨時(shí)調(diào)出實(shí)驗(yàn)相關(guān)材料進(jìn)行查閱。3D虛擬實(shí)驗(yàn)有著更優(yōu)的實(shí)驗(yàn)效果,更低的實(shí)驗(yàn)成本,更強(qiáng)的實(shí)驗(yàn)互動(dòng),更方便的實(shí)驗(yàn)使用,更有趣的實(shí)驗(yàn)方式和更廣泛的實(shí)驗(yàn)影響,虛擬實(shí)驗(yàn)將在實(shí)驗(yàn)教學(xué)中發(fā)揮重要的作用。
[1] 李 琴.基于Virtools的虛擬數(shù)字電路實(shí)驗(yàn)系統(tǒng)設(shè)計(jì)[J].現(xiàn)代交際,2011(4):122.
[2] 鄒湘軍,孫 健,何漢武,等.虛擬現(xiàn)實(shí)技術(shù)的演變發(fā)展與展望[J].系統(tǒng)仿真學(xué)報(bào),2004(9):1905-1909.
[3] 楊有俊,顧邦軍.基于 Virtools的虛擬實(shí)驗(yàn)設(shè)備的設(shè)計(jì)與開(kāi)發(fā)[J].科技信息,2004(9):19.
[4] 左田田.基于Virtools平臺(tái)的教學(xué)軟件的設(shè)計(jì)與應(yīng)用[J].軟件產(chǎn)業(yè)與工程,2012(4):40-43.
[5] 劉 毅.基于Virtools的虛擬實(shí)驗(yàn)開(kāi)發(fā)[J].無(wú)線互聯(lián)科技,2011(5):174-176.
[6] 李永帥,陳清奎,宋開(kāi)功.基于Virtools的虛擬實(shí)驗(yàn)室構(gòu)建方法研究[J].機(jī)電產(chǎn)品開(kāi)發(fā)與創(chuàng)新,2011,24(2):133-134.
[7] 劉英杰,楊 雪,闞寶朋.基于3Ds Max和Virtools的大學(xué)物理虛擬實(shí)驗(yàn)的設(shè)計(jì)與開(kāi)發(fā)[J].現(xiàn)代教育技術(shù),2008,18(6):88-90.
[8] 劉金林,曾凡明.基于CATIA/VIRTOOLS的艦船主動(dòng)力裝置虛擬維修訓(xùn)練技術(shù)研究[J].艦船科學(xué)技術(shù),2008,30(6):140-142.
[9] 傅招國(guó),王天威,倪小鵬,等.基于Virtools的虛擬現(xiàn)實(shí)技術(shù)及在特種設(shè)備教學(xué)中的應(yīng)用[J].計(jì)算機(jī)工程與科學(xué),2012,34(6):97-100.
[10] 朱 敏,張際平.虛擬實(shí)驗(yàn)室及其教學(xué)應(yīng)用[J].實(shí)驗(yàn)室研究與探索,2006,25(5):626-628.
[11] 韓兆福,楊中書(shū),王超勇.虛擬現(xiàn)實(shí)技術(shù)在軍事職業(yè)教育實(shí)踐教學(xué)中的應(yīng)用[J].實(shí)驗(yàn)室研究與探索,2005,24(10):65-68.
[12] 楊清文,房施東,楊 光,等.基于Virtools的某火箭炮技術(shù)檢查訓(xùn)練仿真研究[J].計(jì)算機(jī)測(cè)量與控制,2012,20(2):407-409.
[13] 萬(wàn)佳怡,崔建軍,張振梁.高校虛擬實(shí)驗(yàn)平臺(tái)的設(shè)計(jì)與實(shí)踐[J].實(shí)驗(yàn)室研究與探索,2011,30(3):386-389.
[14] 劉舒帆,張曉虹,任姝婕.虛擬儀器與仿真軟件在電路信號(hào)實(shí)驗(yàn)中的運(yùn)用[J].實(shí)驗(yàn)室研究與探索,2009,28(10):78-81.
[15] 楊 雪,闞寶朋,劉英杰.基于Virtools的大學(xué)物理網(wǎng)絡(luò)三維虛擬實(shí)驗(yàn)的開(kāi)發(fā)[J].實(shí)驗(yàn)技術(shù)與管理,2009,26(4):62-65.