国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

三維虛擬實驗系統(tǒng)開發(fā)軟件的交互方式研究

2009-07-24 08:51李凌云
中國教育信息化·高教職教 2009年6期
關鍵詞:交互虛擬現(xiàn)實

李凌云

摘要:文章對現(xiàn)有的虛擬實驗系統(tǒng)存在的問題作了簡要分析,指出三維虛擬實驗系統(tǒng)研究的意義。對VRML語言及其特點進行了闡述,介紹了開發(fā)三維虛擬實驗系統(tǒng)中軟件的三種常用交互方式,并指出各種交互方式的優(yōu)缺點。

關鍵詞:虛擬現(xiàn)實 交互 VRML Java Matlab/Simulink

中圖分類號:TP311.52 文獻標識碼:A 文章編號:1673-8454(2009)11-0038-03

一、引言

實驗教學不僅能幫助學生形成正確的概念,加深對規(guī)律的理解,而且與課堂理論教學相比,實驗課程為培養(yǎng)和提高學生的動手能力、研究能力、創(chuàng)新意識提供了較好的途徑。因此,實驗課程在學科教學中具有不可替代的作用。隨著高等教育的普及,對實驗資源的需求與目前存在的實驗條件不足之間的矛盾日益突出。虛擬實驗系統(tǒng)的出現(xiàn),很好地解決了這一問題。但是,目前現(xiàn)有的虛擬實驗系統(tǒng)主要存在以下問題:

(1)呈現(xiàn)方式上以提供實驗的文字和圖片資料為主。這些文字和圖片資料涉及實驗原理、實驗方法、實驗儀器的介紹,學生更多的只是停留在“看”的層次上,這在一定程度上不能激發(fā)學生學習的興趣,不利于實驗動手能力的培養(yǎng)。

(2)用戶與虛擬實驗的交互性不強。虛擬實驗系統(tǒng)多以提供實驗操作過程的視頻和動畫為主,主要呈現(xiàn)演示型實驗,學生參與實驗操作較少。

(3)實驗結果多以靜態(tài)圖像形式呈現(xiàn),這在一定程度上影響了實驗者的沉浸感。

虛擬現(xiàn)實(Virtual Reality)技術的發(fā)展,為利用虛擬實驗系統(tǒng)開展教學注入了新的活力。虛擬現(xiàn)實技術能為學生提供生動、逼真的三維學習環(huán)境, 學生作為一名參與者操縱該環(huán)境中的實驗對象。該虛擬環(huán)境具有豐富的媒體表現(xiàn)形式、增強的現(xiàn)實感,這對調(diào)動學生的學習積極性, 突破教學的重點、難點,培養(yǎng)學生的技能將起到積極的作用。虛擬現(xiàn)實建模語言VRML(Virtual Reality Modeling Language)是一種用于描述三維物體及其行為的建模語言,它可以構建虛擬世界,并集成文本、圖像、音響、MPEG 影像等多種媒體類型。在VRML中雖然可以嵌入Vrmlscript、Javascript 等語言編寫的程序代碼,但它本身并沒有直接和用戶進行交互的能力,需要與其他語言結合才能實現(xiàn)三維場景和用戶交互的要求。因此,為了構建功能強大的三維虛擬實驗系統(tǒng),有必要對現(xiàn)階段VRML語言與其他軟件的交互方式進行探討。

二、虛擬現(xiàn)實建模語言及其特點

VRML是一種三維場景的描述性語言,使用它能在Web上創(chuàng)建可導航的、超鏈接的三維虛擬現(xiàn)實空間。虛擬現(xiàn)實建模語言的出現(xiàn),改變了Web頁面限于二維空間的表達方式,創(chuàng)造了交互式瀏覽的三維空間。VRML并不是用三維坐標點的數(shù)據(jù)來描述三維物體的,而是用類似HTML標記文本語言來描述三維場景。它以靈活多樣的方式將二維、三維圖形和動畫、影片、聲響、音樂等多種效果調(diào)和在一起,具有對內(nèi)的樹型場景結構和對外的分布式場景結構,提供了可重用的節(jié)點和原型,便于建模。用戶在場景中可以根據(jù)不同的視點巡視,有很大的自由度。[1]VRML文件包括兩大部分,場景描述部分和動態(tài)交互處理部分。場景描述部分主要通過造型(shape)結點定義了對象的幾何尺寸、材質(zhì)紋理,通過組(Group)結點將各個對象按一定的結構組織為場景,通過光照及聲音結點在場景中模仿對象的自然特性。動態(tài)交互處理部分主要通過傳感器(Sensor)結點感知用戶與對象的交互,插值器(Interpolator)結點實現(xiàn)類似關鍵幀技術的插值動畫,Script結點是VRML與Java、JavaScript等語言的接口,通過Script結點與其他語言的結合,能擴展VRML的功能。[2]VRML有以下特點:

1.C/S的工作模式和平臺無關性。VRML的訪問方式是基于C/S模式的,其中服務器提供VRML文件及圖像、視頻、聲音等支持資源,客戶通過網(wǎng)絡下載希望訪問的文件,并通過本地平臺上的VRML瀏覽器交互式地訪問該文件描述的虛擬世界。由于瀏覽器是本地平臺提供的,從而實現(xiàn)了平臺無關性。

2.實時3D圖形渲染。實時3D著色引擎在VRML中得到了更好的體現(xiàn)。

3.網(wǎng)絡傳輸容易。VRML適合于計算機網(wǎng)絡的傳輸,并不要求很高的網(wǎng)絡傳輸帶寬,而且圖形生成的工作可以放在性能要求不高的客戶機上。

4.VRML具有可伸縮性。首先對于 VRML 瀏覽器來說,從理論上講,應能處理由數(shù)億個對象組成的分布在 Internet 上的場景。其次,VRML在高、低檔的機器上都應該工作得很好,它允許瀏覽器為了提高性能而降低圖像或仿真質(zhì)量,而在硬件性能增強時質(zhì)量可以變得更好。第三,VRML場景可以相對于網(wǎng)絡性能而伸縮。

三、三維虛擬實驗系統(tǒng)開發(fā)軟件的三種交互

雖然VRML語言具有以上優(yōu)點,但由于他本身缺乏直接和用戶進行交互的能力, 所以在開發(fā)三維虛擬實驗系統(tǒng)時,常常需要將他與其他語言相結合。針對目前常用的三維虛擬實驗系統(tǒng)開發(fā)技術,筆者對三種交互方式進行了分析。

1.VRML與Java交互

VRML作為面向對象的建模語言,長于表達三維物體的靜態(tài)特征,但其VRML本身不具有與外部交互的能力,它必須和其他語言相結合才能構造出具備交互能力的三維場景。為了實現(xiàn)與外界更復雜的交互,VRML2.0標準提供了兩種擴展VRML并和外部程序實現(xiàn)連接的機制,一種是通過Script節(jié)點完成復雜的交互過程,另一種是通過外部編程接口EAI實現(xiàn)。

(1)通過Script節(jié)點與外部交互

Script節(jié)點本身沒有任何動作,其動作是由程序腳本來實現(xiàn)的,它是VRML與其他編程語言的接口。內(nèi)嵌在Script節(jié)點中的程序腳本可用JavaScript 和Java 編寫,其交互過程是,Script節(jié)點通過eventIn接口將事件傳至Script節(jié)點中的程序腳本;瀏覽器就立即調(diào)用內(nèi)嵌程序腳本將事件進行處理;被加工的信息由Script節(jié)點的eventOut字段將結果送出。

VRML瀏覽器捆綁了用于VRML編程的Java類包,該VRML類包主要包括vrml,vrml.node,vrml.field,還有一個可以操縱瀏覽器狀態(tài)的Browser類。通過調(diào)用這些類包,Java程序可以實現(xiàn)與VRML場景的交互。雖然利用Script節(jié)點可以實現(xiàn)瀏覽者與VRML場景的動態(tài)交互,但這種交互只能按預先設定的狀態(tài)進行,如果要在外界與VRML場景之間進行信息交流,Script 節(jié)點就顯得力不能及了。

(2)通過EAI與外部交互

EAI(External Authoring Interface)是VRML2.0提供的介于VRML世界與外部環(huán)境的編程接口,通過此接口VRML場景可以和與其嵌在同一網(wǎng)頁上的Java Applet程序進行交互。Java Applet可以監(jiān)視VRML場景事件,并能夠在節(jié)點間傳遞事件,實現(xiàn)VRML節(jié)點的動態(tài)增加和刪除,同時可以在瀏覽者與VRML場景間傳遞信息,從而大大提高了外界與VRML場景的交互能力。VRML的EAI接口定義了一套針對VRML瀏覽器的Java類包,它由三部分組成:vrml.external,vrml.external.field,vrml.external.exception。

EAI在Java Applet與VRML場景進行通訊時,首先需要獲取Browser類的實例, 通過調(diào)用封裝在vrml.external包中的Browser類的靜態(tài)方法getBrowser( )來實現(xiàn),在Java Applet中建立Browser對象后即標識了一個VRML場景。Browser類包含獲取當前瀏覽器環(huán)境信息的各種方法,其中通過調(diào)用getNode( )方法直接獲得VRML場景中使用DEF關鍵字定義的節(jié)點對象,調(diào)用getEvent In( )、getEvent Out( )方法獲得訪問節(jié)點的入事件、出事件。

眾多學者對利用VRML與Java技術混合開發(fā)的三維虛擬實驗系統(tǒng)進行了研究。如金俠杰等人基于VRML技術與Java技術開發(fā)了網(wǎng)絡交互式虛擬裝配環(huán)境;池建斌等人通過VRML外部編程接口EAI及內(nèi)嵌腳本節(jié)點編程,實現(xiàn)了二級圓柱齒輪減速器虛擬拆裝系統(tǒng);吳波等人基于VRML與Java技術在工程設計領域的應用進行了研究,提出一種新型的Web環(huán)境下3D交互仿真結構,復雜的運算和仿真在服務器上進行,從而實現(xiàn)服務器端裝配模型和客戶端顯示模型的分離,并在此基礎之上提出協(xié)同環(huán)境開發(fā)的系統(tǒng)結構。[3][4][5] 此外,楊雨標等運用VRML與Java技術在微機上進行機器人運動仿真。 [6] 分析以上系統(tǒng)發(fā)現(xiàn),VRML技術與Java技術相結合實現(xiàn)三維虛擬實驗系統(tǒng)具有較強的三維立體感和交互性,常用于虛擬裝配及其他工程設計領域。

2.VRML與Matlab/Simulink交互

利用Matlab提供的虛擬現(xiàn)實工具箱,可以實現(xiàn)和VRML程序的直接交互。虛擬現(xiàn)實工具箱是Matlab 6.X版新增加的工具箱,能在一個三維虛擬現(xiàn)實環(huán)境中進行可視化操作和與動態(tài)系統(tǒng)進行交互提供一種有效的解決方案,這些動態(tài)系統(tǒng)用Matlab和Simulink來描述。[7] 虛擬現(xiàn)實工具箱拓展了Matlab和Simulink處理虛擬現(xiàn)實圖像的能力。使用標準的VRML技術,可以通過Matlab和Simulink環(huán)境生成三維場景。

虛擬現(xiàn)實工具箱可以在Matlab接口和Simulink接口兩種環(huán)境中運行,而Simulink接口更直接、更容易使用,很容易通過圖形用戶界面進行交互,因而可能是更適合的工作方式。通過Simulink這一接口,可以在一個虛擬的三維模型中觀察動態(tài)系統(tǒng)的模擬。一旦在Simulink對話框中包含了虛擬現(xiàn)實模塊,就可以選擇與Simulink信號連接的虛擬世界。所有VRML節(jié)點的屬性分別列在等級樹樣式的觀察窗口中,可以選擇控制的自由度。當關閉接口對話框后,虛擬現(xiàn)實工具箱模塊自動更新在虛擬世界中與選擇節(jié)點有關的輸入和輸出。當連接這些輸入到一定的Simulink信號上時,就可以在一個支持VRML的瀏覽器中觀察可視化的模擬。

使用Matlab的虛擬現(xiàn)實工具箱開發(fā)三維虛擬實驗系統(tǒng)具有以下特點:(1)利用Matlab虛擬現(xiàn)實工具箱,能夠將枯燥的VRML編程變?yōu)榭梢暬幊?,簡化了虛擬場景的設計。(2)Matlab /Simulink是專用的計算軟件,在實驗數(shù)據(jù)計算方面表現(xiàn)出極強的優(yōu)勢。(3)通過Simulink接口,很容易實現(xiàn)與三維圖形用戶界面的交互。但是如果在本地機上使用實驗系統(tǒng),需要在本地機上安裝Matlab/Simulink、虛擬現(xiàn)實工具箱以及VRML編輯器、Web瀏覽器和VRML插件。如果本地機上不能安裝Matlab/Simulink,用戶也可以通過遠程機來觀察和控制三維虛擬世界。當然,要求遠程機上所有的組成部分都需要支持標準的VRML97軟件。通過Matlab Web Server功能也可以實現(xiàn)三維虛擬實驗環(huán)境的遠程訪問。用戶可以通過客戶端瀏覽器瀏覽包含有虛擬場景和相應表單的頁面,瀏覽虛擬實驗場景的同時可以在表單中修改實驗參數(shù),點擊發(fā)送后,客戶端的參數(shù)通過HTTP協(xié)議傳送給Web服務器, 由matweb.exe將參數(shù)提取出來,再傳送給指定的M文件。該M文件對matweb傳送來的數(shù)據(jù)進行運算后傳送到Simulink仿真模型中去,以改變虛擬場景的運行。

3.VRML、Java以及Matlab三者交互

使用VRML、Java以及Matlab軟件混合開發(fā)的三維虛擬實驗系統(tǒng)主要有兩種,一是針對Matlab虛擬現(xiàn)實工具箱與VRML程序交互的局限性,采用Java編程擴展Matlab虛擬現(xiàn)實可視化交互功能。這種方案結合了前兩種交互方式的優(yōu)點,有效地運用Matlab虛擬現(xiàn)實工具箱實用的建模環(huán)境和Java 擴展的人機交互性,在三維虛擬實驗系統(tǒng)開發(fā)中具有廣闊的應用前景。二是直接采用VRML、Java以及Matlab/Simulink三種軟件之間的接口編程。采用Java Applet程序和VRML構建的3D場景實現(xiàn)用戶界面,利用Java套接字,通過部署在客戶端的Java Applet和服務器端Java應用程序實現(xiàn)客戶端與服務器端的傳輸。運用Matlab/Simulink進行實驗建模和運算,并利用Matlab的COM接口實現(xiàn)與服務器端的Java連接,將客戶端實驗參數(shù)傳送到Matlab/Simulink中進行仿真運算,運算結束后再將實驗結果傳送回客戶端。該方案采用B/S結構,滿足了網(wǎng)絡實驗教學的需要??蛻舳酥恍枰粋€集成Java虛擬機的瀏覽器即可運行實驗,同時由于網(wǎng)絡虛擬實驗內(nèi)容存放在服務器端,易于實驗功能擴展和管理。此外,該方案特別適用于復雜實驗模型的仿真。

使用VRML、Java以及Matlab軟件開發(fā)的三維虛擬實驗系統(tǒng)具有以下優(yōu)點,在呈現(xiàn)方式上采用3D技術,豐富了媒體的表現(xiàn)形式,增強了學生實驗的臨境感;由于實驗模型的計算采用的是專用的計算軟件,在實驗數(shù)據(jù)計算方面也表現(xiàn)出極強的優(yōu)勢;系統(tǒng)能根據(jù)實驗數(shù)據(jù)動態(tài)地顯示三維實驗模型的運動,并以相圖等形式呈現(xiàn)實驗結果。實驗過程和實驗結果的直觀化、形象化,能夠促進學生對實驗的深入探究,提高其問題解決能力。

四、結束語

三維虛擬實驗系統(tǒng)拓展了實驗教學的時間和空間,提高了教學效率,不僅可以作為課堂實驗教學的補充,而且為遠程教育中實驗教學的開展注入了新的活力,因而具有良好的應用前景。本文介紹了三維虛擬實驗系統(tǒng)開發(fā)過程中常用軟件的三種交互方式,對各種交互方式進行了分析,希望對廣大開發(fā)者有所啟發(fā)。?筅

參考文獻:

[1]汪興謙.VRML與JAVA編程實例講解[M].北京:中國水利水電出版社,2002:7-12.

[2]黃鐵軍,柳鍵編譯.VRML國際標準與應用指南[M].北京:電子工業(yè)出版社,1999:5-9 .

[3]金俠杰,邢科禮,林財興.基于VRML-JAVA 的網(wǎng)絡交互式虛擬裝配環(huán)境構建[J].計算機仿真,2004(10):126-129.

[4]池建斌,郭海新,王晨,馮桂珍.基于VRML-JAVA的減速器虛擬拆裝系統(tǒng)的實現(xiàn)[J].工程圖學學報, 2008,(2):48-53.

[5]吳波,周之平,張颯兵,吳介一.基于VRML-JAVA的虛擬現(xiàn)實及其協(xié)同環(huán)境的開發(fā)[J].計算機工程與應用,2004(7):136-138.

[6]楊雨標,何漢武.基于VRML-JAVA的機器人運動仿真研究[J].機械科學與技術,2004,23(1):120-126.

[7]張家祥,方凌江,毛全勝.基于MATLAB 6.X的系統(tǒng)分析與設計[M].西安電子科技大學出版社,2002:40-112.

猜你喜歡
交互虛擬現(xiàn)實
REALITY BITES
虛擬現(xiàn)實技術向科幻小說借靈感
基于圖形用戶界面的多點觸控交互技術綜述
淺談虛擬現(xiàn)實
桃源县| 新蔡县| 洪雅县| 华亭县| 大名县| 南溪县| 富锦市| 白朗县| 石景山区| 自治县| 连城县| 奉化市| 南平市| 驻马店市| 同心县| 吴堡县| 周至县| 会理县| 阿坝县| 武城县| 彰武县| 阿鲁科尔沁旗| 内乡县| 上林县| 垫江县| 嵊泗县| 盐池县| 淮北市| 聂荣县| 阿拉善左旗| 杂多县| 德化县| 京山县| 简阳市| 富民县| 塘沽区| 静海县| 肇州县| 五家渠市| 华蓥市| 于都县|