【摘要】虛擬現(xiàn)實技術(shù)(VR)是一項基于計算機技術(shù),將計算機等設(shè)備構(gòu)建出一個三維虛擬世界,實現(xiàn)人與虛擬世界的交互,將人與虛擬世界有結(jié)合、融為一體的技術(shù)。本文簡單介紹了利用Java 3D開發(fā)的虛擬現(xiàn)實技術(shù),并展示了實現(xiàn)該技術(shù)場景創(chuàng)建、動畫設(shè)計和交互設(shè)計技術(shù)的部分關(guān)鍵代碼。該設(shè)計在開發(fā)三維視覺,實現(xiàn)用戶網(wǎng)絡(luò)交互方面具有重大功能,并且在遠(yuǎn)程電力監(jiān)測系統(tǒng)中有廣泛應(yīng)用,在類似的監(jiān)控系統(tǒng)開發(fā)中也有該技術(shù)的參與。本文基于筆者多年研究實踐,旨在為相關(guān)領(lǐng)域及技術(shù)人員提供理論指導(dǎo)。
【關(guān)鍵詞】電力監(jiān)控系統(tǒng) Java 3D 虛擬網(wǎng)絡(luò)
監(jiān)控領(lǐng)域中常常會運用到計算機技術(shù),因為它是唯一可以實時工作狀態(tài)監(jiān)控、自動記錄發(fā)生的事件以及準(zhǔn)確執(zhí)行用戶指令的一種現(xiàn)代化技術(shù),這些優(yōu)點使其在監(jiān)控領(lǐng)域中占有重要地位。電力設(shè)施是人類生活中必不可少的設(shè)施,利用文字和圖表方式展示監(jiān)控數(shù)據(jù),是傳統(tǒng)計算機監(jiān)控界面的主要方式,但其無法使用戶體驗真實的現(xiàn)場感受。具有強烈的現(xiàn)實性、直觀性等是虛擬現(xiàn)實技術(shù)(VRML)主要特點,Java 3D技術(shù)不僅對虛擬現(xiàn)實技術(shù)進(jìn)行技術(shù)支持,在實現(xiàn)與JAVA的程序設(shè)計結(jié)合完成數(shù)據(jù)通信等功能方面也有重要作用?;诖?,要想實現(xiàn)呈現(xiàn)和控制現(xiàn)場環(huán)境的全景,使人機交互效果達(dá)到最佳,可以采用VRML、JAVA 3D和分布式遠(yuǎn)程電力監(jiān)控系統(tǒng)結(jié)合的方法,研制一種具有全新的監(jiān)控環(huán)境的電力監(jiān)測系統(tǒng)。
一、電力監(jiān)控系統(tǒng)虛擬環(huán)境的構(gòu)建
圖1展示的是電力監(jiān)控系統(tǒng)的總體結(jié)構(gòu),虛擬監(jiān)測環(huán)境具有良好的人機交互界面。以下結(jié)合該系統(tǒng)在遠(yuǎn)程監(jiān)控中心的應(yīng)用,對Java 3D技術(shù)開發(fā)虛擬監(jiān)測環(huán)境做出簡單介紹。
(一)Java 3D虛擬場景
Java 3D的場景結(jié)構(gòu)圖是一個不對稱的樹,如圖2所示的就是其場景結(jié)構(gòu)圖。樹根是Virtual Universe,每個Virtual Universe只存在一個虛擬場景中,雖然每個Virtual Universe上可以有多個Locale Object節(jié)點,但只有一個處于顯示狀態(tài)。在Locale節(jié)點下可以存在有多個Branch Group節(jié)點, Branch Group中可以放置幾何體(Geometry)、幾何體外觀(Appearance)等節(jié)點,Transform Group節(jié)點可以用來設(shè)置幾何體在虛擬場景中的位置。控制復(fù)雜幾何體的運動可以用Transform Group節(jié)點來嵌套。通過對View Platform的設(shè)置來顯示在三維場景中所設(shè)置的以上信息。在虛擬場景中,不僅可以對上述的基本信息進(jìn)行設(shè)置,還可以通過設(shè)置燈(lights)、背景圖片、聲音(sounds)等信息為場景增添視覺美感。
圖1 電力監(jiān)測系統(tǒng)結(jié)構(gòu)圖
(二)電力監(jiān)控虛擬場景的創(chuàng)建
電力監(jiān)控系統(tǒng)的虛擬場景由多種電力設(shè)備模型組成,其中,簡單的幾何模型可直接調(diào)用Java3D圖形庫,復(fù)雜的設(shè)備模型則采用可視化建模工具實現(xiàn),縮短開發(fā)周期。
Java語言優(yōu)點頗多,Java 3D技術(shù)是對其進(jìn)行的有效繼承,對多種格式的三維模型文件支持實時加載,通過提供高效的三維構(gòu)建方法和面向?qū)ο髞順?gòu)建三維系統(tǒng)的一種設(shè)計方式。電力現(xiàn)場的設(shè)備形狀不規(guī)則各異,復(fù)雜多樣,應(yīng)用Java3D直接構(gòu)建很不方便。因此,為導(dǎo)出*.DS格式的三維模型文件,可以在3DS Max軟件中創(chuàng)建電力設(shè)備的三維模型。令文件通過Java 3D加載器Loader3DS,加載存儲到虛擬場景中。Scene對象是作為一種載人圖形的容器,采用Transform Group對象來裝載導(dǎo)人圖形的三維模型,極大的方便了對虛擬設(shè)備的運動控制。三維模型文件加載過程如下:
Loader 3DS downing = new Loader3DS();
//將三維模型加載到場景中
Scene scene = downing.load(“Ul.3DS”);
System.out.Println(”seene=” + scene);
If (scene ! = 1) {
BranchGroup objRoot = new BranchGroup ();
BranchGroup bg =scene.getSceneGroup();
TransformGroup objTrans = new TransformGroup();
objTrans.setCapability TransformGroup.ALLOW_TRANSFORM_WRITE);
objTransc.addChild(bg);
objRoot.addChild(objTrans);}
圖2 Java 3D 場景結(jié)構(gòu)圖
二、實現(xiàn)虛擬環(huán)境交互技術(shù)的條件
通過在用戶終端實現(xiàn)電力站報警指示、電力站運行狀態(tài)提示、電力站各設(shè)備系統(tǒng)參數(shù)查詢和電力站設(shè)備運行狀態(tài)控制等功能,確保電力系統(tǒng)的遠(yuǎn)程監(jiān)控的實現(xiàn)。
由Java事件結(jié)合Java3D提供的javax.meidaj3dBehavior類的子類的處理來保障這些交互事件的實現(xiàn)。運用Java3D提供的鼠標(biāo)交互的工具類comsunj3dutilbehaviorsMouse Behavior 可以確保其在瀏覽虛擬電力場景中的實現(xiàn)。對虛擬設(shè)備的旋轉(zhuǎn)、縮放、平移動作可以通過對鼠標(biāo)左、中、右鍵的操作來實現(xiàn)。通過在類中添加監(jiān)聽器,以監(jiān)聽事件源,擴展Behavior類來完成對較復(fù)雜的交互事件的處理。
三、總結(jié)
本文對應(yīng)用VRMAL、Java3D技術(shù)創(chuàng)建虛擬三維場景下的遠(yuǎn)程電力監(jiān)控系統(tǒng)做出了基本的詳盡描述,并展示了實現(xiàn)三維虛擬電力監(jiān)控場景和交互行為的部分代碼。從上文可看出,電力監(jiān)控交互式過程的虛擬經(jīng)由JAVA通信模塊和數(shù)據(jù)操作來保障實現(xiàn),該設(shè)計的應(yīng)用價值很大,目前正被廣泛的開發(fā)利用,其他行業(yè)可酌情參考。
參考文獻(xiàn):
[1]文靜華,李祥.基于Java3D的工業(yè)機器人建模與遠(yuǎn)程控制[J].計算機系統(tǒng)運用,2004(10):70一73#8226;
[2]婁明,宋靖雁,張毅.基于Java3D技術(shù)的虛擬車輛仿真系統(tǒng)[J].計算機工程與應(yīng)用,2004,7:198一200.
[3]孫毅軍,余蕾斌,邱長伍等.基于Java3D技術(shù)的仿人型機器人三維仿真[J].上海交通大學(xué)學(xué)報,2007,41(8):1288一1290.