高雅莉,徐武
(云南民族大學(xué) 電氣信息工程學(xué)院,云南 昆明 650031)
基于X3D的實(shí)時(shí)交互技術(shù)在定位實(shí)驗(yàn)中的應(yīng)用
高雅莉,徐武
(云南民族大學(xué) 電氣信息工程學(xué)院,云南 昆明650031)
X3D是一種基于XML格式開(kāi)發(fā),專為萬(wàn)維網(wǎng)而設(shè)計(jì)的三維圖像標(biāo)記語(yǔ)言。目前國(guó)內(nèi)虛擬現(xiàn)實(shí)技術(shù)主要應(yīng)用于房地產(chǎn)宣傳、古文物修復(fù)等方面,在電氣實(shí)驗(yàn)教學(xué)中基本沒(méi)有涉及。本文利用X3D語(yǔ)言對(duì)電氣實(shí)驗(yàn)中的定位實(shí)驗(yàn)進(jìn)行虛擬仿真,并利用X3D的動(dòng)畫(huà)交互技術(shù)以及JavaScript腳本語(yǔ)言來(lái)重建實(shí)驗(yàn)的全部過(guò)程。該仿真系統(tǒng)主要用于新手教學(xué),避免了學(xué)生在尚未完全理解實(shí)驗(yàn)原理的情況下進(jìn)行誤操作而導(dǎo)致設(shè)備損壞等情況的發(fā)生,且該系統(tǒng)基于web傳輸,學(xué)生不必到實(shí)驗(yàn)室,可通過(guò)網(wǎng)絡(luò)在宿舍隨時(shí)進(jìn)行實(shí)驗(yàn)操作學(xué)習(xí)。
X3D;VRML;JavaScript;實(shí)時(shí)交互
X3D是一種專為萬(wàn)維網(wǎng)而設(shè)計(jì)的三維圖像標(biāo)記語(yǔ)言,由Web3D聯(lián)盟設(shè)計(jì),是VRML標(biāo)準(zhǔn)的最新升級(jí)版本。目前X3D已經(jīng)是通過(guò) ISO認(rèn)證的國(guó)際標(biāo)準(zhǔn)。Html5里面的3D技術(shù),webGl都需要通過(guò)X3D來(lái)實(shí)現(xiàn)。X3D基于XML格式開(kāi)發(fā),在主流的瀏覽器中現(xiàn)在可以使用XML DOM文檔樹(shù)和相關(guān)腳本解析<X3D>、</X3D>標(biāo)簽中的三維內(nèi)容,是一種輕量級(jí)的三維圖像標(biāo)記語(yǔ)言。X3D中保留了“Classic VRML”編碼,保持和早期 VRML的兼容,只需要對(duì)場(chǎng)景做很小的改動(dòng),就可以用這個(gè)編碼來(lái)播放不包含腳本的VRML 2場(chǎng)景,且沒(méi)有技術(shù)性的損失就可以升級(jí)至X3D[1]。
X3D擁有一套豐富的組件功能,可以使用在工程和科學(xué)可視化定制、CAD和建筑、醫(yī)療可視化、培訓(xùn)和模擬、多媒體、娛樂(lè)、教育等領(lǐng)域。它支持顯卡硬件的功能,如設(shè)置顯卡的混合模式和幀緩存、深度緩存、模板緩存的功能,添加了從底層渲染的節(jié)點(diǎn),如三角形、三角形扇、三角形條帶等基本渲染元素,還支持多紋理和多遍繪制、Shader著色、多渲染目標(biāo)(MRT)、幾何實(shí)例(Geometry Instance)等,2010年已經(jīng)可以在X3D和VRML中使用延遲著色技術(shù)。現(xiàn)在X3D的特效包括SSAO和CSM陰影、實(shí)時(shí)環(huán)境反射和折射、基于實(shí)時(shí)環(huán)境和日光的光照、HDR、運(yùn)動(dòng)模糊、景深等,并支持對(duì)應(yīng)3ds MAX標(biāo)準(zhǔn)材質(zhì)的多種貼圖[2]。
基本三維實(shí)體模型在實(shí)際中表現(xiàn)為一個(gè)獨(dú)立的X3D造型文件(.x3d文件),可以有兩種方法構(gòu)造基本三維實(shí)體模型,第一種方法是使用X3D編輯軟件節(jié)點(diǎn)直接編寫(xiě),第二種方法是利用三維造型工具生成[3]。
X3D提供了10類幾何節(jié)點(diǎn)和7類外觀節(jié)點(diǎn),幾何節(jié)點(diǎn)能夠?qū)崿F(xiàn)立方體、球體、圓柱體、地形等各種簡(jiǎn)單三維造型,外觀節(jié)點(diǎn)提供了質(zhì)材、質(zhì)感、光照等表面參數(shù),利用這些節(jié)點(diǎn)可以實(shí)現(xiàn)復(fù)雜的三維造型[4]。但是這只能構(gòu)建較為簡(jiǎn)單的三維模型,對(duì)于那些造型較為復(fù)雜的模型就無(wú)能為力了,為了加快造型速度和造型質(zhì)量,可以利用3Ds Max等三維造型工具,這些工具中均具有轉(zhuǎn)換功能,能夠把工具本身生成的三維造型轉(zhuǎn)化為標(biāo)準(zhǔn)的VRML造型文件,之后再通過(guò)X3D-Edit將VRML文件轉(zhuǎn)換為X3D文件。如圖1所示。
圖1 3Ds Max軟件構(gòu)建復(fù)雜的三維圖形Fig.1 Building complex X3D model by using 3Ds Max software
X3D與JAVASCRIPT進(jìn)行交互時(shí),JAVASCRIPT可以直接嵌入X3D語(yǔ)法,不需要獨(dú)立編寫(xiě)、編譯。X3D語(yǔ)言利用SCRIPT節(jié)點(diǎn),通過(guò) url引入一個(gè) JAVASCRIPT腳本,寫(xiě)入X3D文件的腳本語(yǔ)言可以實(shí)現(xiàn)對(duì)X3D場(chǎng)景內(nèi)任意對(duì)象的操作,包括貼圖,并且ROUTE語(yǔ)法將事件與觸發(fā)器綁定在一起,當(dāng)觸發(fā)器被觸發(fā)時(shí),便會(huì)實(shí)現(xiàn)預(yù)先設(shè)定好的交互效果[5]。
在html頁(yè)面中使用腳本語(yǔ)句實(shí)現(xiàn)對(duì)對(duì)象的某些控制比JAVA更加容易,使用<EMBED>標(biāo)記將X3D文件加載到html文件當(dāng)中,具體對(duì)象的操作通過(guò)JAVASCRIPT中定義的方法、函數(shù)來(lái)實(shí)現(xiàn)。當(dāng)在網(wǎng)頁(yè)中嵌入X3D場(chǎng)景時(shí),API將自動(dòng)創(chuàng)建一個(gè)Browser對(duì)象,同時(shí)也處理數(shù)據(jù)類型的映射、對(duì)象、以及事件的響應(yīng)等,在html文件中可以使用JAVASCRIPT腳本來(lái)實(shí)現(xiàn)這些映射[6]。html中的JAVASCRIPT首先構(gòu)造出一個(gè)Browser實(shí)例,再通過(guò)Browser對(duì)象方法改變場(chǎng)景。
PositionInterpolator節(jié)點(diǎn)允許對(duì)三維空間的一個(gè)坐標(biāo)點(diǎn)進(jìn)行動(dòng)畫(huà)關(guān)鍵幀的插值操作。建立插值器時(shí),為動(dòng)畫(huà)的不同完成比率設(shè)置相應(yīng)的坐標(biāo)值(包括開(kāi)始值和結(jié)束值)。通常坐標(biāo)插值器從時(shí)間傳感器接收set_fraction事件,經(jīng)處理后,將輸出值發(fā)送給Transform節(jié)點(diǎn)的translation域。在JavaScript節(jié)點(diǎn)內(nèi)使用SFTime類型節(jié)點(diǎn)作為事件控制器,當(dāng)用戶觸發(fā)觸發(fā)器后,首先激活該事件控制器,由該事件控制器來(lái)根據(jù)參數(shù)選擇激活什么事件,之后通過(guò)JavaScript語(yǔ)法把startTime發(fā)送給指定事件的PositionInterpolator。從而觸發(fā)實(shí)驗(yàn)步驟。具體流程如圖2所示。
圖2 基于X3D和JavaScript的人機(jī)交互控制功能流程圖Fig.2 Human-computer interaction diagram based on X3D and JavaScript
其關(guān)鍵代碼如下所示:
如上述代碼所示當(dāng)點(diǎn)擊按鈕觸發(fā)“dykg2yd”事件時(shí),dykg2模型的x坐標(biāo)自動(dòng)以0.3的移動(dòng)速度往負(fù)軸方向移動(dòng),通過(guò)switch節(jié)點(diǎn),自動(dòng)切換菜單實(shí)現(xiàn)指引效果,如圖3所示。
圖3 無(wú)線傳感器網(wǎng)絡(luò)節(jié)點(diǎn)組裝交互控制圖Fig.3 Interaction control diagram of assembling sensor node in the wireless sensor network
隨著技術(shù)的進(jìn)步和硬件的發(fā)展,基于VR技術(shù)的虛擬實(shí)驗(yàn)教學(xué)系統(tǒng)無(wú)疑將會(huì)得到更進(jìn)一步的發(fā)展,未來(lái)的虛擬實(shí)驗(yàn)教學(xué)系統(tǒng),一定還會(huì)有更多的資源類型和更先進(jìn)的服務(wù)涌現(xiàn)出來(lái),一些更方便直觀的交互式工具(如各種類型的傳感器)也將應(yīng)用到系統(tǒng)中去,可以說(shuō),VR技術(shù)在虛擬實(shí)驗(yàn)教學(xué)系統(tǒng)中大有可為。當(dāng)然,目前探討的還只有這些,其中也難免有謬誤和不足之處。
[1]徐武,邵劍龍.VRML在虛擬城市場(chǎng)景中的應(yīng)用[C].現(xiàn)代信息技術(shù)理論與應(yīng)用(上冊(cè)),中國(guó)科技大學(xué)出版社,2002.
[2]徐武.虛擬現(xiàn)實(shí)技術(shù)[M].杭州:浙江大學(xué)出版社出版,2013.
[3]戴俊,沈建華.基于VRML的虛擬實(shí)驗(yàn)室的研究與實(shí)現(xiàn)[J].艦船電子工程,2009,4:21-24.
[4]包海濤.虛擬現(xiàn)實(shí)技術(shù)在汽車造型設(shè)計(jì)中的應(yīng)用研究[J].裝備制造技術(shù),2009,10:33-38.
[5]葉艷青,邵建龍,念曉.基于VRML的網(wǎng)絡(luò)交互式虛擬現(xiàn)實(shí)建模研究[J].系統(tǒng)仿真學(xué)報(bào),2006,18(10):2827-2831.
[6]邵劍龍,葉艷青,徐武.VRML虛擬場(chǎng)景中Java編程功能的實(shí)現(xiàn)[J].計(jì)算機(jī)與應(yīng)用化學(xué),2004,21(4):641-644.
Application of X3D-based real time human-computer interaction techniques in location experiments
GAO Ya-li,XU Wu
(School of Electronic and Information Engineering,Yunnan Minzu University,Kunming650031,China)
X3D is a ISO standard XML-based lightweight file format for representing 3D computer graphics.The present mainstream web browsers can parse 3D contents between<X3D>tags with XML DOM and scripts and display enhanced application programming interfaces.Nowadays the application of Virtual Reality(VR)technology in China mainly concentrates on limited areas e.g.real estate advertisement or cultural relic restoration but rarely involves electrical experiment teaching.This paper presents the entire process of virtual simulation of location experiments of electrical experiments and reconstructing of the experiments by adopting X3D animation interaction techniques and JavaScript.The virtual simulation system is mainly used for training learners to avoid damage of equipment by students who do not fully understand the experimental principal and misoperation.Furthermore,the system runs on web and can be accessed remotely by anyone.
X3D;VRML;JavaScript;real-time human-computer interaction
TN919.82
A
1674-6236(2016)02-0012-03
2015-03-29稿件編號(hào):201503419
云南民族大學(xué)2014年校級(jí)教學(xué)改革研究項(xiàng)目(201491);2013年云南省民委科研項(xiàng)目(2013Y236)
高雅莉(1975—),女,云南昆明人,講師。研究方向:數(shù)據(jù)庫(kù)編程,虛擬現(xiàn)實(shí)技術(shù)。