高雅莉,徐武
(云南民族大學(xué) 電氣信息工程學(xué)院,云南 昆明 650031)
基于X3D的實時交互技術(shù)在定位實驗中的應(yīng)用
高雅莉,徐武
(云南民族大學(xué) 電氣信息工程學(xué)院,云南 昆明650031)
X3D是一種基于XML格式開發(fā),專為萬維網(wǎng)而設(shè)計的三維圖像標記語言。目前國內(nèi)虛擬現(xiàn)實技術(shù)主要應(yīng)用于房地產(chǎn)宣傳、古文物修復(fù)等方面,在電氣實驗教學(xué)中基本沒有涉及。本文利用X3D語言對電氣實驗中的定位實驗進行虛擬仿真,并利用X3D的動畫交互技術(shù)以及JavaScript腳本語言來重建實驗的全部過程。該仿真系統(tǒng)主要用于新手教學(xué),避免了學(xué)生在尚未完全理解實驗原理的情況下進行誤操作而導(dǎo)致設(shè)備損壞等情況的發(fā)生,且該系統(tǒng)基于web傳輸,學(xué)生不必到實驗室,可通過網(wǎng)絡(luò)在宿舍隨時進行實驗操作學(xué)習(xí)。
X3D;VRML;JavaScript;實時交互
X3D是一種專為萬維網(wǎng)而設(shè)計的三維圖像標記語言,由Web3D聯(lián)盟設(shè)計,是VRML標準的最新升級版本。目前X3D已經(jīng)是通過 ISO認證的國際標準。Html5里面的3D技術(shù),webGl都需要通過X3D來實現(xiàn)。X3D基于XML格式開發(fā),在主流的瀏覽器中現(xiàn)在可以使用XML DOM文檔樹和相關(guān)腳本解析<X3D>、</X3D>標簽中的三維內(nèi)容,是一種輕量級的三維圖像標記語言。X3D中保留了“Classic VRML”編碼,保持和早期 VRML的兼容,只需要對場景做很小的改動,就可以用這個編碼來播放不包含腳本的VRML 2場景,且沒有技術(shù)性的損失就可以升級至X3D[1]。
X3D擁有一套豐富的組件功能,可以使用在工程和科學(xué)可視化定制、CAD和建筑、醫(yī)療可視化、培訓(xùn)和模擬、多媒體、娛樂、教育等領(lǐng)域。它支持顯卡硬件的功能,如設(shè)置顯卡的混合模式和幀緩存、深度緩存、模板緩存的功能,添加了從底層渲染的節(jié)點,如三角形、三角形扇、三角形條帶等基本渲染元素,還支持多紋理和多遍繪制、Shader著色、多渲染目標(MRT)、幾何實例(Geometry Instance)等,2010年已經(jīng)可以在X3D和VRML中使用延遲著色技術(shù)。現(xiàn)在X3D的特效包括SSAO和CSM陰影、實時環(huán)境反射和折射、基于實時環(huán)境和日光的光照、HDR、運動模糊、景深等,并支持對應(yīng)3ds MAX標準材質(zhì)的多種貼圖[2]。
基本三維實體模型在實際中表現(xiàn)為一個獨立的X3D造型文件(.x3d文件),可以有兩種方法構(gòu)造基本三維實體模型,第一種方法是使用X3D編輯軟件節(jié)點直接編寫,第二種方法是利用三維造型工具生成[3]。
X3D提供了10類幾何節(jié)點和7類外觀節(jié)點,幾何節(jié)點能夠?qū)崿F(xiàn)立方體、球體、圓柱體、地形等各種簡單三維造型,外觀節(jié)點提供了質(zhì)材、質(zhì)感、光照等表面參數(shù),利用這些節(jié)點可以實現(xiàn)復(fù)雜的三維造型[4]。但是這只能構(gòu)建較為簡單的三維模型,對于那些造型較為復(fù)雜的模型就無能為力了,為了加快造型速度和造型質(zhì)量,可以利用3Ds Max等三維造型工具,這些工具中均具有轉(zhuǎn)換功能,能夠把工具本身生成的三維造型轉(zhuǎn)化為標準的VRML造型文件,之后再通過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進行交互時,JAVASCRIPT可以直接嵌入X3D語法,不需要獨立編寫、編譯。X3D語言利用SCRIPT節(jié)點,通過 url引入一個 JAVASCRIPT腳本,寫入X3D文件的腳本語言可以實現(xiàn)對X3D場景內(nèi)任意對象的操作,包括貼圖,并且ROUTE語法將事件與觸發(fā)器綁定在一起,當觸發(fā)器被觸發(fā)時,便會實現(xiàn)預(yù)先設(shè)定好的交互效果[5]。
在html頁面中使用腳本語句實現(xiàn)對對象的某些控制比JAVA更加容易,使用<EMBED>標記將X3D文件加載到html文件當中,具體對象的操作通過JAVASCRIPT中定義的方法、函數(shù)來實現(xiàn)。當在網(wǎng)頁中嵌入X3D場景時,API將自動創(chuàng)建一個Browser對象,同時也處理數(shù)據(jù)類型的映射、對象、以及事件的響應(yīng)等,在html文件中可以使用JAVASCRIPT腳本來實現(xiàn)這些映射[6]。html中的JAVASCRIPT首先構(gòu)造出一個Browser實例,再通過Browser對象方法改變場景。
PositionInterpolator節(jié)點允許對三維空間的一個坐標點進行動畫關(guān)鍵幀的插值操作。建立插值器時,為動畫的不同完成比率設(shè)置相應(yīng)的坐標值(包括開始值和結(jié)束值)。通常坐標插值器從時間傳感器接收set_fraction事件,經(jīng)處理后,將輸出值發(fā)送給Transform節(jié)點的translation域。在JavaScript節(jié)點內(nèi)使用SFTime類型節(jié)點作為事件控制器,當用戶觸發(fā)觸發(fā)器后,首先激活該事件控制器,由該事件控制器來根據(jù)參數(shù)選擇激活什么事件,之后通過JavaScript語法把startTime發(fā)送給指定事件的PositionInterpolator。從而觸發(fā)實驗步驟。具體流程如圖2所示。

圖2 基于X3D和JavaScript的人機交互控制功能流程圖Fig.2 Human-computer interaction diagram based on X3D and JavaScript
其關(guān)鍵代碼如下所示:



如上述代碼所示當點擊按鈕觸發(fā)“dykg2yd”事件時,dykg2模型的x坐標自動以0.3的移動速度往負軸方向移動,通過switch節(jié)點,自動切換菜單實現(xiàn)指引效果,如圖3所示。

圖3 無線傳感器網(wǎng)絡(luò)節(jié)點組裝交互控制圖Fig.3 Interaction control diagram of assembling sensor node in the wireless sensor network
隨著技術(shù)的進步和硬件的發(fā)展,基于VR技術(shù)的虛擬實驗教學(xué)系統(tǒng)無疑將會得到更進一步的發(fā)展,未來的虛擬實驗教學(xué)系統(tǒng),一定還會有更多的資源類型和更先進的服務(wù)涌現(xiàn)出來,一些更方便直觀的交互式工具(如各種類型的傳感器)也將應(yīng)用到系統(tǒng)中去,可以說,VR技術(shù)在虛擬實驗教學(xué)系統(tǒng)中大有可為。當然,目前探討的還只有這些,其中也難免有謬誤和不足之處。
[1]徐武,邵劍龍.VRML在虛擬城市場景中的應(yīng)用[C].現(xiàn)代信息技術(shù)理論與應(yīng)用(上冊),中國科技大學(xué)出版社,2002.
[2]徐武.虛擬現(xiàn)實技術(shù)[M].杭州:浙江大學(xué)出版社出版,2013.
[3]戴俊,沈建華.基于VRML的虛擬實驗室的研究與實現(xiàn)[J].艦船電子工程,2009,4:21-24.
[4]包海濤.虛擬現(xiàn)實技術(shù)在汽車造型設(shè)計中的應(yīng)用研究[J].裝備制造技術(shù),2009,10:33-38.
[5]葉艷青,邵建龍,念曉.基于VRML的網(wǎng)絡(luò)交互式虛擬現(xiàn)實建模研究[J].系統(tǒng)仿真學(xué)報,2006,18(10):2827-2831.
[6]邵劍龍,葉艷青,徐武.VRML虛擬場景中Java編程功能的實現(xiàn)[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稿件編號:201503419
云南民族大學(xué)2014年校級教學(xué)改革研究項目(201491);2013年云南省民委科研項目(2013Y236)
高雅莉(1975—),女,云南昆明人,講師。研究方向:數(shù)據(jù)庫編程,虛擬現(xiàn)實技術(shù)。