李強
(陜西學(xué)前師范學(xué)院陜西西安710061)
VE虛擬環(huán)境指的是具備時間及空間特點的數(shù)字化多維信息空間,也是虛擬現(xiàn)實技術(shù)發(fā)展的全新階段,虛擬環(huán)境主要包括物理特性實體、環(huán)境和參加交互人,其相互具有交互的聯(lián)系。以現(xiàn)實世界為基礎(chǔ),使用音響系統(tǒng)、視景系統(tǒng)、力反饋系統(tǒng)能夠為用戶提供主要感知模擬[1]。DVE分布式虛擬環(huán)境也可以稱之為網(wǎng)絡(luò)虛擬環(huán)境,在此虛擬環(huán)境中,地理位置不同,其中的用戶和虛擬環(huán)境利用網(wǎng)絡(luò)相互連接,實現(xiàn)信息的共享、動態(tài)仿真和人際交互,通過此環(huán)境能夠?qū)崿F(xiàn)多用戶協(xié)同的交互仿真[2]。分布式的虛擬環(huán)境其中的仿真主機對象使用統(tǒng)一仿真協(xié)議,利用網(wǎng)絡(luò)通信實現(xiàn)信息交換,其中的仿真對象利用獲得其他對象信息實現(xiàn)本地影響的計算,并且利用本地對象狀態(tài)和網(wǎng)絡(luò)實現(xiàn)計算結(jié)果的發(fā)送,其中的仿真對象都是利用相互通信使仿真視圖能夠一致,所以網(wǎng)絡(luò)通信也是分布式虛擬環(huán)境設(shè)計中的主要內(nèi)容[3]。
DVE分布式虛擬環(huán)境主要包括兩種通信系統(tǒng),分別為對等模型及層次模型,圖1為對等模型的結(jié)構(gòu),其主要是通過網(wǎng)絡(luò)相互聯(lián)系的工作站構(gòu)成,此工作站能夠?qū)⑾⒅苯拥较鄳?yīng)工作站中發(fā)送。
圖1 對等模型的結(jié)構(gòu)
系統(tǒng)中的對等節(jié)點能夠?qū)崿F(xiàn)同個共享虛擬信息和實體數(shù)據(jù)庫的維護(hù),并且還能夠?qū)崿F(xiàn)本地實體行為的仿真,對實體狀態(tài)更新進(jìn)行處理和接收,對場景的現(xiàn)顯示進(jìn)行實時的刷新。如果本地實體的狀態(tài)出現(xiàn)變化,那么就要對遠(yuǎn)程節(jié)點實現(xiàn)消息的發(fā)送。其中對等模型的節(jié)點通信方式一般都是多播和廣播,其主要缺點就是具有較差的擴充性,還會浪費帶寬[4]。
圖2為層次模型的結(jié)構(gòu),通過圖2可以看出來,系統(tǒng)中具有多個服務(wù)器,通過服務(wù)器對用戶通訊進(jìn)行管理。
圖2 層次模型的結(jié)構(gòu)
在DVE分布式虛擬環(huán)境中,其網(wǎng)絡(luò)通信還是尤為重要的技術(shù),其中的通信協(xié)議要以不同的應(yīng)用系統(tǒng)為基礎(chǔ)進(jìn)行選擇,目前被廣泛使用的包括軍事仿真領(lǐng)域應(yīng)用的DIS協(xié)議和HLA協(xié)議、網(wǎng)絡(luò)虛擬環(huán)境中的虛擬現(xiàn)實傳輸協(xié)議和分布式世界傳輸及通信協(xié)議,以下就對DVE通信協(xié)議的數(shù)據(jù)發(fā)送、應(yīng)用環(huán)境、網(wǎng)絡(luò)通信結(jié)構(gòu)進(jìn)行對比,之后進(jìn)行總結(jié),詳見表1。
表1 DVE通信協(xié)議對比
通過表1可以看出來,DIS和HLA主要是在分布式對等結(jié)構(gòu)中的仿真網(wǎng)絡(luò),利用UDP協(xié)議廣播和組播PDU數(shù)據(jù)包進(jìn)行實現(xiàn),為了能夠使網(wǎng)絡(luò)數(shù)據(jù)量較大的問題進(jìn)一步的降低,DIS都是使用航位推測算法、過濾算法使結(jié)點通信量能夠進(jìn)一步的降低[5]。其中的DWTP和VRTP主要是在因特網(wǎng)中使用的,其能夠支持分布式對等及C/S兩種結(jié)構(gòu),并且也能夠針對不同類型數(shù)據(jù)使用不同通信方式,其屬于綜合性的應(yīng)用層協(xié)議。通過對DVE分布式協(xié)議的分析可以了解,在實現(xiàn)通信協(xié)議設(shè)計的過程中,要從通訊架構(gòu)、應(yīng)用環(huán)境、數(shù)據(jù)類型實現(xiàn),之后以系統(tǒng)實際需求實現(xiàn)通信協(xié)議的設(shè)計,然后實現(xiàn)系統(tǒng)的設(shè)計[6]。
虛擬電子競技就是將虛擬環(huán)境作為基礎(chǔ),實現(xiàn)多人參加運動的分布式虛擬環(huán)境。虛擬電子競技系統(tǒng)通過傳感器實現(xiàn)用戶運動狀態(tài)的捕捉,用戶能夠利用畫面中投影的屏幕對自身的行為和環(huán)境進(jìn)行全面的觀察,并且利用相應(yīng)的通道對自身行為進(jìn)行控制。其主要是將局域網(wǎng)和廣域網(wǎng)作為介質(zhì),或者和網(wǎng)友相互交互,將運動、游戲及競技相互結(jié)合,使用戶能夠在競技過程中感受到游戲的樂趣。系統(tǒng)主要包括軟件和硬件兩個系統(tǒng),圖3為虛擬電子競技系統(tǒng)的構(gòu)成,其中模塊主要包括網(wǎng)絡(luò)競技模式、網(wǎng)絡(luò)漫游模式及訓(xùn)練模式[7]。
圖3 虛擬電子競技系統(tǒng)的構(gòu)成
虛擬電子經(jīng)濟系統(tǒng)中的硬件系統(tǒng)主要包括計算機、六維運動控制器和跑步機,本文所研究的系統(tǒng)中只是使用普通計算機的顯示器顯示。單片機控制器能夠?qū)崿F(xiàn)用戶在跑步機中的運動參數(shù)的檢測,通過增量式的方式實現(xiàn)跑步機履帶旋轉(zhuǎn)角度相應(yīng)脈沖的記錄,之后將脈沖轉(zhuǎn)換成為履帶旋轉(zhuǎn)權(quán)屬,從而對人在跑步機中的某個參數(shù)點瞬時位置進(jìn)行計算。為了能夠?qū)μ摂M場景中運動進(jìn)行真實的模擬,就添加了虛擬化身體的旋轉(zhuǎn)方向角度[8-9]。圖4為虛擬電子競技系統(tǒng)的硬件結(jié)構(gòu)設(shè)計。
圖4 虛擬電子競技系統(tǒng)的硬件結(jié)構(gòu)設(shè)計
圖5為游戲的典型狀態(tài)圖,本文對典型游戲狀態(tài)進(jìn)行了擴展,實現(xiàn)以客戶端為基礎(chǔ)的開發(fā)理念,其使用面向?qū)ο笤O(shè)計,系統(tǒng)中的模塊功能都相互獨立,能夠以用戶實際需求為基礎(chǔ)實現(xiàn)動態(tài)組合,其中的模塊也能夠?qū)崿F(xiàn)松耦合[10]。圖6為虛擬電子競技系統(tǒng)的軟件結(jié)構(gòu)。
圖5 為游戲的典型狀態(tài)圖
圖6 虛擬電子競技系統(tǒng)的軟件結(jié)構(gòu)
3.3.1 圖形顯示模塊
圖形顯示模塊是利用API的調(diào)用繪制場景,圖7為圖形顯示模塊的結(jié)構(gòu),其主要包括場景渲染模塊、界面創(chuàng)建模塊和人物動畫渲染模塊[11]。
圖7 圖形顯示模塊的結(jié)構(gòu)
3.3.2 交互功能模塊
交互功能模塊主要包括和用戶交互及和游戲控制平臺交互的模塊,兩者具有一定的信息交流。在用戶交互模塊收到用戶輸入之后,通過處理就能夠?qū)刂破脚_進(jìn)行傳輸[12]。圖8為交互功能的模塊結(jié)構(gòu)。
圖8 交互功能的模塊結(jié)構(gòu)
3.3.3 網(wǎng)絡(luò)模塊
網(wǎng)絡(luò)模塊的主要目的就是實現(xiàn)VNM網(wǎng)絡(luò)功能,其屬于典型客戶端,客戶端包括交互功能模塊及圖形模塊、服務(wù)器端模塊,圖9為服務(wù)器端模塊的結(jié)構(gòu)。
圖9 服務(wù)器端模塊的結(jié)構(gòu)
通過圖10可以看出來,網(wǎng)絡(luò)通信程序的主要目的就是實現(xiàn)物理層消息的接收和發(fā)送,并且還能夠?qū)⒔邮招畔⒌叫W(xué)隊列中發(fā)送。其中的共享消息池屬于工作站內(nèi)存區(qū)域,需要發(fā)送及接受信息通過循環(huán)隊列方式進(jìn)行存儲,其屬于網(wǎng)絡(luò)接口程序及仿真應(yīng)用程序相互通信的基礎(chǔ)[13]。
圖10 虛擬電子經(jīng)濟系統(tǒng)通信系統(tǒng)框架結(jié)構(gòu)
通信消消息主要包括3種,分別為狀態(tài)更新、事件和指令。其中狀態(tài)更新的主要目的就是實現(xiàn)環(huán)境中狀態(tài)消息的傳遞,其在一段時間中為連續(xù)通信,其具有較高的實時性需求。其在全新狀態(tài)更新消息之后,之前的消息就會作廢[14]。
指令指的是執(zhí)行某個任務(wù)命令,其對于傳輸具有較高的可靠性需求和實時性。
事件指的是在不確定時間中的同步傳輸事件,比如鼠標(biāo)點擊、碰撞等,其具有先入先出傳輸?shù)捻樞颉?/p>
網(wǎng)絡(luò)接口程序根據(jù)功能主要分為接收、發(fā)送及轉(zhuǎn)發(fā)3部分,其主要是以服務(wù)器為基礎(chǔ),結(jié)合發(fā)送及接收的功能[15]。
數(shù)據(jù)發(fā)送的工作流程比較簡單,利用發(fā)送消息循環(huán)隊列的不斷查詢,其能夠?qū)κ欠窬哂邪l(fā)送消息進(jìn)行判斷。如果有需要發(fā)送的消息,就要以數(shù)據(jù)信息的讀取實現(xiàn)接收地址的確定,并且實現(xiàn)數(shù)據(jù)打包發(fā)送。
圖11 數(shù)據(jù)發(fā)送的模塊工作流程
數(shù)據(jù)接收模塊使用異步選擇機制實現(xiàn),其能夠為系統(tǒng)編程提供網(wǎng)絡(luò)時間驅(qū)動程序設(shè)計的方法。在出現(xiàn)被指定網(wǎng)絡(luò)事件的時候,能夠?qū)崿F(xiàn)計算機應(yīng)用程序窗口函數(shù)的接收,從而實現(xiàn)事件的驅(qū)動。首先,實現(xiàn)接收套接字的創(chuàng)建,之后實現(xiàn)地址端口的綁定,之后實現(xiàn)網(wǎng)絡(luò)事件和消息的關(guān)聯(lián),在具有數(shù)據(jù)包的時候,就會實現(xiàn)關(guān)聯(lián)消息的觸發(fā),自動執(zhí)行回調(diào)函數(shù),對接收的消息進(jìn)行處理[16]。
文中基于DVE通信協(xié)議技術(shù),以虛擬電子競技系統(tǒng)特點為基礎(chǔ),對DVE通信協(xié)議技術(shù)進(jìn)行全面的分析,實現(xiàn)了DVE通信協(xié)議技術(shù)在虛擬電子競技系統(tǒng)設(shè)計中的使用。本文所設(shè)計的系統(tǒng)通過驗證表示,其能夠?qū)崿F(xiàn)數(shù)據(jù)包的有效發(fā)送和接收,降低網(wǎng)絡(luò)數(shù)據(jù)傳輸量,還能夠提高自身的自愈合性,以此為同種系統(tǒng)開發(fā)作為參考。