胡 華,杜 魁,陳俊峰,王 利,陳 寶
(太原衛(wèi)星發(fā)射中心,山西 忻州 036301)
虛擬現(xiàn)實技術(shù)(VR),是在5G時代具有很高運用價值的一項全新的實用技術(shù)。它是一種集計算機技術(shù)、電子信息技術(shù)、三維仿真技術(shù)于一體,并利用計算機模擬虛擬環(huán)境從而給人以環(huán)境沉浸感的新型技術(shù)[1-4]。從大的方面可以劃分為兩大類,即沉浸式和不是采用沉浸式兩種。其中最為常見的是沉浸式虛擬現(xiàn)實技術(shù),其主要原理是采用專用的頭戴式顯示器,把虛擬體驗者的視覺、聽覺集合起來,這樣就會產(chǎn)生虛擬視覺感受,除此之外,它利用數(shù)據(jù)手套之類的技術(shù)把用戶的手感通道封閉起來,能夠產(chǎn)生虛擬觸動感,讓人產(chǎn)生一種身臨其境的感覺。但是該技術(shù)有一個缺點制約了其大量使用,體現(xiàn)為其價格昂貴,單人獨享一個設(shè)備,因此在推廣和應用方面具有一定的困難,隨著科技的進步和硬件技術(shù)的發(fā)展,應用范圍會越來越廣。另外一種技術(shù)是非沉浸式虛擬現(xiàn)實技術(shù),該技術(shù)拋開了對硬件的依賴,采用軟件技術(shù)來模擬視覺和聽覺等感覺,這樣做的好處就是能節(jié)約大量的硬件費用開支。其中,Virtools技術(shù)以其功能較全面、人機交互可視化強等優(yōu)勢得到了較好的研究和應用[1]。
虛擬現(xiàn)實技術(shù)具有許多明顯的特征,其中比較突出的幾個特征分別是沉浸性、交互性和想象性。沉浸性指用戶作為一名體驗者存在于虛擬環(huán)境中的真實程度,可以是一些能夠聽到的、看到的,或者是能夠感受到的一切內(nèi)容,最為理想的情況是讓體驗者達到不能分辨真假的地步[2]。交互性是指用戶對虛擬環(huán)境內(nèi)的物體的可操作程度和從環(huán)境中得到反饋的自然程度,用戶可以在虛擬現(xiàn)實環(huán)境中獲得接近于真實的感受,也可以更進一步,對虛擬環(huán)境中的物體進行一些有限的操作,產(chǎn)生更加逼真的效果。想象性指用戶沉浸在多維信息空間中,依靠自己的感知和認知能力全方位地獲取知識,發(fā)揮主觀能動性,尋求解答,形成新的概念,它是獲取沉浸感的一個必要條件。
圖1 虛擬現(xiàn)實技術(shù)的3個特性
虛擬訓練系統(tǒng)中,要達到一個好的訓練效果,關(guān)鍵還是需要依賴虛擬設(shè)備來實現(xiàn)。一方面,虛擬訓練系統(tǒng)給參加訓練的人員提供了平臺和條件,在這個平臺下,人員不需要實際更改硬件的參數(shù)和配置,不會存在破壞硬件系統(tǒng)的風險[3];另一方面,虛擬現(xiàn)實還可以充分發(fā)揮人的主觀能動性,突破硬件的局限性,把自己一些成熟的想法付諸實踐,達到提升訓練效果的目的。
在缺乏必要的硬件支持時,我們只能尋求采用虛擬的方式來實現(xiàn),然而,還會受到各種條件的限制,比如預算經(jīng)費不足、訓練場地限制等,模擬仿真訓練并不能達到預期的效果[4]。通過虛擬現(xiàn)實技術(shù)建設(shè)虛擬訓練系統(tǒng),能夠通過計算機虛擬現(xiàn)實場景,它能夠使受訓者“身臨其境”的觀察操作設(shè)備,甚至聯(lián)網(wǎng)和他人合作進行操作訓練。開發(fā)具有人員崗位適應性的虛擬訓練系統(tǒng)具有很高的實用價值和重要的現(xiàn)實意義。
1) 虛擬訓練系統(tǒng)使得訓練活動不受時空的限制,人員可以在任何連接了局域網(wǎng)的地方,利用虛擬訓練平臺,進行與學習和操作有關(guān)的活動。
2) 虛擬訓練系統(tǒng)促進了人員創(chuàng)新意識和創(chuàng)新能力的培養(yǎng),人員可以在虛擬環(huán)境下大膽開展深入的實操訓練和聯(lián)合訓練,徹底擺脫了原有設(shè)備條件的約束。
3)虛擬訓練系統(tǒng)可降低訓練配套設(shè)施建設(shè)成本,避免了大型儀器設(shè)備的重復添置、購買和不必要的訓練損耗和浪費,將儀器、設(shè)備投入到戰(zhàn)試任務保障中。
4) 虛擬訓練系統(tǒng)與傳統(tǒng)訓練教學相結(jié)合能大大提高訓練效果。
單純利用Virtools開發(fā)的虛擬訓練系統(tǒng)不能很好地解決實時數(shù)據(jù)的問題,只能設(shè)計出比較簡單的虛擬訓練系統(tǒng),而結(jié)合SQL數(shù)據(jù)庫,利用Virtools中Multiuser Server與SQL數(shù)據(jù)庫的數(shù)據(jù)接口,采取實時更新SQL數(shù)據(jù),數(shù)據(jù)同步到虛擬訓練系統(tǒng)中的方法可以很好地解決實時數(shù)據(jù)的問題,藉此可設(shè)計更多實用的虛擬訓練系統(tǒng)。
整個系統(tǒng)以SQL Server為后臺數(shù)據(jù)庫,其數(shù)據(jù)來源可以由設(shè)備網(wǎng)管提供,也可以由第三方軟件提供。由于Virtools開發(fā)平臺不能直接訪問SQL Server,必須由Multiuser Server功能模塊提供數(shù)據(jù)訪問通道,使Virtools產(chǎn)品能夠與SQL Server進行實時數(shù)據(jù)交互。用戶則在虛擬訓練系統(tǒng)交互界面上進行虛擬訓練與操作等,直觀感受數(shù)據(jù)的變化。虛擬訓練系統(tǒng)主要有用戶交互、數(shù)據(jù)控制、消息傳遞、場景管理四大模塊,用戶交互主要響應用戶的操作,呈現(xiàn)3D環(huán)境下的視聽效果;數(shù)據(jù)控制則負責在后臺處理數(shù)據(jù),實時地將需要的數(shù)據(jù)顯示給用戶,同時將用戶更新的數(shù)據(jù)同步到數(shù)據(jù)庫;消息管理是Virtools進行虛擬現(xiàn)實設(shè)計的重要功能模塊,主要進行鍵盤、鼠標動作的捕捉及階段過程的運行控制,其核心是“Send Message”和“Wait Message”模塊;場景管理主要進行3D場景下貼圖、材質(zhì)、聲音、視頻等的控制,實時展現(xiàn)不同的3D視聽效果。整個數(shù)據(jù)交互設(shè)計結(jié)構(gòu)框架如圖2。
圖2 基于SQL數(shù)據(jù)驅(qū)動的虛擬訓練系統(tǒng)數(shù)據(jù)交互設(shè)計結(jié)構(gòu)
圖3 SQL與Virtools Array數(shù)據(jù)驅(qū)動原理圖
SQL數(shù)據(jù)驅(qū)動方式的原理如圖3。利用Virtools中的Array來進行數(shù)據(jù)控制是核心,由“Get Row”、“Get Cell”、“Set Row”、“Set Cell”等控件來讀取和更新數(shù)據(jù),數(shù)據(jù)通過計算機的18005端口進行傳遞,經(jīng)過Multiuser Server處理后,再與SQL Server進行數(shù)據(jù)交互,而SQL數(shù)據(jù)庫中的數(shù)據(jù)更新也可以獲取到Array中,通過數(shù)據(jù)比較確定為新數(shù)據(jù)后再告知用戶進行相關(guān)操作或者直接反映為新動作、新環(huán)境,這里的數(shù)據(jù)包括兩種類型的比較,分別是與前數(shù)據(jù)的比較和與標準數(shù)據(jù)的比較,在這里通過“Test”組件來完成。將該過程在設(shè)計中加以循環(huán),再利用消息控制機制,便可以達到實時獲取和更新數(shù)據(jù)的目的。
Array可以看成是一個簡單的數(shù)據(jù)庫,它是Virtools軟件進行數(shù)據(jù)處理的重要功能模塊,Array表的建立必須與已知的SQL數(shù)據(jù)表有嚴格的對應關(guān)系(如圖4),即Array表的所有字段必須與SQL數(shù)據(jù)表的所有字段或者前部分所有字段全部對應,否則數(shù)據(jù)將不能正常交互,導致數(shù)據(jù)驅(qū)動的失敗。
圖4 Virtools Array表與SQL數(shù)據(jù)表對應示例
由于Virtools本身沒有建模功能,所以一般建模方法采用專門的建模軟件來實現(xiàn)。首先利用3D MAX軟件創(chuàng)建所需場景的三維模型,按需要進行模型加工。在對需要的三維物體和場景進行專業(yè)建模時,可以充分利用Virtools軟件提供的數(shù)據(jù)接口,采用建模軟件3ds max或Maya等對所需模型進行處理,而后進行紋理方面的渲染,最后導出Virtools支持的文件格式(擴展名為.3ds 或.nmo)導出。具體步驟如下:
1) 在3ds max中以適當比例建立實物模型。
2) 把模型轉(zhuǎn)換為網(wǎng)格物體后,分割不同面,并為不同的分區(qū)賦予相對應的名稱和不同顏色的材質(zhì),為virtools進行后期制作打好基礎(chǔ)。
3) 將制作好的模型以Virtools支持的文件格式,擴展名為.3ds或.nmo的文件導出。
Virtools提供的BB(Behavior Block)功能模塊能夠?qū)崿F(xiàn)物體的識別和相關(guān)的操作,用戶可以非常方便地進行調(diào)用。能夠?qū)δP瓦M行基本操作,如大小變化、平移、縮放、顏色變化、光線變化、貼圖等。用多個BB模塊組合共同實現(xiàn)交互,利用camera控制視角的切換,還可以配以圖像、視頻、聲音進行環(huán)境的渲染。通過BB模塊的輸入?yún)?shù),當按鼠標的左鍵時,模塊的參數(shù)值傳回“True”,系統(tǒng)在判斷為真后會向下執(zhí)行相應操作,如果判斷為假則跳轉(zhuǎn)回程序初始狀態(tài)。Virtools采取流程化、可視化的設(shè)計方法,可對多個設(shè)定作業(yè)進行全程模擬。
受Virtools與SQL數(shù)據(jù)接口的影響,主要存在SQL數(shù)據(jù)來源和Array數(shù)據(jù)格式的問題。
要開發(fā)符合專業(yè)崗位需要的虛擬訓練系統(tǒng),就需要有設(shè)備數(shù)據(jù)的支撐,這部分數(shù)據(jù)有很多涉及到網(wǎng)管軟件,而且很多網(wǎng)管軟件后臺數(shù)據(jù)庫是SQL Server。要直接利用設(shè)備網(wǎng)管獲取數(shù)據(jù),就要詳細了解網(wǎng)管數(shù)據(jù)庫的數(shù)據(jù)架構(gòu)、數(shù)據(jù)定義及數(shù)據(jù)含義等,增加了難度。而且要對應建立Array表,就會增加數(shù)據(jù)負荷,產(chǎn)生一些不必要的數(shù)據(jù),但主要的優(yōu)點是獲取數(shù)據(jù)快,實時性較高。
要簡化設(shè)計難度,就要使用自編的第三方軟件,用SQL Server作為后臺數(shù)據(jù)庫,間接獲取需要的數(shù)據(jù)或者使用批量模擬數(shù)據(jù),這樣就可以自定義數(shù)據(jù)架構(gòu),使數(shù)據(jù)獲取方式更加靈活,減少數(shù)據(jù)量,并可以進行編程精準地控制數(shù)據(jù)狀態(tài),但存在的問題是實時性一般。
相比較而言,使用第三方軟件來保障數(shù)據(jù)來源要好一些,犧牲少量的實時性,但可以降低設(shè)計難度,增強控制性,減少數(shù)據(jù)量,提高系統(tǒng)運行效率。
Array有五種數(shù)據(jù)格式:Integer、Float、String、Object、Parameter,除了Object數(shù)據(jù)格式無法與SQL數(shù)據(jù)格式進行轉(zhuǎn)換外,其他都有相對應的格式(見表1),因為Object是3D環(huán)境中的所有實體元素,無法在SQL數(shù)據(jù)庫中體現(xiàn)出來。為了解決這個問題,可以先建立一個Object數(shù)據(jù)與其他格式數(shù)據(jù)的對應關(guān)系,進行間接關(guān)聯(lián),例如3D環(huán)境中有3個攝像機,分別為A、B、C,轉(zhuǎn)換成Integer數(shù)據(jù)1、2、3與之對應,就可以方便地進行狀態(tài)控制了。
表1 Array表數(shù)據(jù)格式與SQL數(shù)據(jù)格式對應關(guān)系
本文就個人在虛擬訓練系統(tǒng)設(shè)計中獲得的體會和經(jīng)驗進行了論述。虛擬現(xiàn)實技術(shù)在單位訓練中有著廣闊的應用前景,其良好的交互性和逼真的實境體驗可以大大提高訓練效率,降低訓練成本,減小訓練風險,在該方向加大研究開發(fā)力度,能夠豐富訓練手段,大幅度提高訓練的水平,達到事半功倍的作用。