高雅莉,徐武
(云南民族大學 電氣信息工程學院,云南 昆明 650031)
基于X3D的實時交互技術在定位實驗中的應用
高雅莉,徐武
(云南民族大學 電氣信息工程學院,云南 昆明650031)
X3D是一種基于XML格式開發,專為萬維網而設計的三維圖像標記語言。目前國內虛擬現實技術主要應用于房地產宣傳、古文物修復等方面,在電氣實驗教學中基本沒有涉及。本文利用X3D語言對電氣實驗中的定位實驗進行虛擬仿真,并利用X3D的動畫交互技術以及JavaScript腳本語言來重建實驗的全部過程。該仿真系統主要用于新手教學,避免了學生在尚未完全理解實驗原理的情況下進行誤操作而導致設備損壞等情況的發生,且該系統基于web傳輸,學生不必到實驗室,可通過網絡在宿舍隨時進行實驗操作學習。
X3D;VRML;JavaScript;實時交互
X3D是一種專為萬維網而設計的三維圖像標記語言,由Web3D聯盟設計,是VRML標準的最新升級版本。目前X3D已經是通過 ISO認證的國際標準。Html5里面的3D技術,webGl都需要通過X3D來實現。X3D基于XML格式開發,在主流的瀏覽器中現在可以使用XML DOM文檔樹和相關腳本解析<X3D>、</X3D>標簽中的三維內容,是一種輕量級的三維圖像標記語言。X3D中保留了“Classic VRML”編碼,保持和早期 VRML的兼容,只需要對場景做很小的改動,就可以用這個編碼來播放不包含腳本的VRML 2場景,且沒有技術性的損失就可以升級至X3D[1]。
X3D擁有一套豐富的組件功能,可以使用在工程和科學可視化定制、CAD和建筑、醫療可視化、培訓和模擬、多媒體、娛樂、教育等領域。它支持顯卡硬件的功能,如設置顯卡的混合模式和幀緩存、深度緩存、模板緩存的功能,添加了從底層渲染的節點,如三角形、三角形扇、三角形條帶等基本渲染元素,還支持多紋理和多遍繪制、Shader著色、多渲染目標(MRT)、幾何實例(Geometry Instance)等,2010年已經可以在X3D和VRML中使用延遲著色技術。現在X3D的特效包括SSAO和CSM陰影、實時環境反射和折射、基于實時環境和日光的光照、HDR、運動模糊、景深等,并支持對應3ds MAX標準材質的多種貼圖[2]。
基本三維實體模型在實際中表現為一個獨立的X3D造型文件(.x3d文件),可以有兩種方法構造基本三維實體模型,第一種方法是使用X3D編輯軟件節點直接編寫,第二種方法是利用三維造型工具生成[3]。
X3D提供了10類幾何節點和7類外觀節點,幾何節點能夠實現立方體、球體、圓柱體、地形等各種簡單三維造型,外觀節點提供了質材、質感、光照等表面參數,利用這些節點可以實現復雜的三維造型[4]。但是這只能構建較為簡單的三維模型,對于那些造型較為復雜的模型就無能為力了,為了加快造型速度和造型質量,可以利用3Ds Max等三維造型工具,這些工具中均具有轉換功能,能夠把工具本身生成的三維造型轉化為標準的VRML造型文件,之后再通過X3D-Edit將VRML文件轉換為X3D文件。如圖1所示。

圖1 3Ds Max軟件構建復雜的三維圖形Fig.1 Building complex X3D model by using 3Ds Max software
X3D與JAVASCRIPT進行交互時,JAVASCRIPT可以直接嵌入X3D語法,不需要獨立編寫、編譯。X3D語言利用SCRIPT節點,通過 url引入一個 JAVASCRIPT腳本,寫入X3D文件的腳本語言可以實現對X3D場景內任意對象的操作,包括貼圖,并且ROUTE語法將事件與觸發器綁定在一起,當觸發器被觸發時,便會實現預先設定好的交互效果[5]。
在html頁面中使用腳本語句實現對對象的某些控制比JAVA更加容易,使用<EMBED>標記將X3D文件加載到html文件當中,具體對象的操作通過JAVASCRIPT中定義的方法、函數來實現。當在網頁中嵌入X3D場景時,API將自動創建一個Browser對象,同時也處理數據類型的映射、對象、以及事件的響應等,在html文件中可以使用JAVASCRIPT腳本來實現這些映射[6]。html中的JAVASCRIPT首先構造出一個Browser實例,再通過Browser對象方法改變場景。
PositionInterpolator節點允許對三維空間的一個坐標點進行動畫關鍵幀的插值操作。建立插值器時,為動畫的不同完成比率設置相應的坐標值(包括開始值和結束值)。通常坐標插值器從時間傳感器接收set_fraction事件,經處理后,將輸出值發送給Transform節點的translation域。在JavaScript節點內使用SFTime類型節點作為事件控制器,當用戶觸發觸發器后,首先激活該事件控制器,由該事件控制器來根據參數選擇激活什么事件,之后通過JavaScript語法把startTime發送給指定事件的PositionInterpolator。從而觸發實驗步驟。具體流程如圖2所示。

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



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

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