摘要:該文介紹了如何用VRML建立基于Internet的逼真的,交互式的虛擬教室,以及虛擬教室在實踐教學中的應用。
關鍵詞:VRML;虛擬現實;3DMAX;虛擬教室;Java
中圖分類號:TP391.9文獻標識碼:A文章編號:1009-3044(2009)33-9583-03
Research and Application of Virtual Reality Based on Web
DING Jian1, WEI Xin2, JING Yong-jun3
(1.Beifang Ethnic University, Yinchuan 750021, China; 2.Ningxia Talent Exchange Center, Yinchuan 750001, China; 3.Ningxia Telecom,Yinchuan 750004, China)
Abstract: Describes how to use VRML to establish realistic and interactive virtual classroom based on Internet. And describes how to use virtual classroom in teaching works.
Key words: VRML; VR; 3dmax; virtual classroom; java
虛擬現實技術一種融合了計算機圖形學、人機接口技術、傳感技術、心理學、人類工程學及人工智能的綜合技術。虛擬現實建模語言(Virtual Reality Modeling Language,VRML)是一種三維建模語言,使用VRM創建的虛擬場景,為用戶提供了仿佛置身于現實世界的臨境感[1]。以VRML為核心的第二代萬維網將使用戶如身處真實世界,在一個三維環境里隨意探究因特網上無比豐富的巨大信息資源。
VRML在電子商務、教育、工程技術、建筑、娛樂、藝術等領域的廣泛應用,使它迅速發展,并成為構建網絡虛擬現實應用系統的基礎。尤其在教育上,VRML不僅僅是HTML功能更強的替代品,其潛在意義在于突破上述基于WWW的教學模型建立更自然、更真實的虛擬教育環境。在虛擬教育世界中可以有利用VRML制作的動畫人物扮演教師,其面部表情和形體動作利用動作跟蹤系統捕捉下來,這樣得到的講課節目將是三維的,更重要的是它不像視頻節目那樣需要大量的存儲量和網絡帶寬,用戶通過Modem和電話線即可收看這種節目。把這種方式擴大到教學雙方,則可實現具有實時交互性的虛擬教學,即教師控制的虛擬教師和學生控制的虛擬學生就可以在一個虛擬教室中相互交流。
1 虛擬現實技術
1.1 虛擬現實建模語言
VRML是一種用于建設虛擬三維世界的場景建模語言,是面向對象的一種語言,它類似Web超級鏈接所使用的HTML語言,也是一種基于文本的語言,并可以運行在多種平臺之上,只不過能夠更多地為虛擬現實環境服務。它提供對三維世界及其內部基本對象的描述,如球體、平面、圓錐、圓柱、立方體等,并把他們同二維的頁面鏈接起來,是一種非常簡潔的高級語言。
1.2 VRML設計工具
用VRML建立復雜的三維模型是相當繁難的,而3D Studio Max因其強大的三維建模功能恰好可彌補VRML這方面的不足,并且VRML具有與3D Studio Max模型的無縫接口[5]。因此在虛擬實驗系統的場景和儀器設備制作時,一般是先利用3DMAX制作出復雜逼真的場景,然后利用VRML語言進行位置、動作、空間背景、視點、傳感效果等設置,使虛擬實驗教學系統既具有逼真的漫游效果,又具有可交互可操作的特點。
1.3 VRML與JAVA
VRML創建的虛擬空間本身提供了空間與協作者之間的簡單交互,這包括事件和路由以及簡單的用戶需求處理,但是它與外部交互的能力比較弱,也很難實現普通程序設計中的轉折、分支、循環等基本操作。為了在虛擬場景中增加和刪除對象,或者定義動畫和對象的行為功能,VRML提供了一個與場景外程序相結合的節點(Script節點)[2],這樣就可以通過Script節點來將 VRML程序和JAVA程序相連接,用JAVA程序更加靈活的控制VRML中的交互行為,解決虛擬環境中復雜的仿真問題。JSP作為Java在web應用方面的腳本語言,結合VRML腳本語言,通過瀏覽器方式返回VRML,同時需要在遠程Web服務器上正確設置擴展MIME(多用途網際郵件擴展協議)。以下是我們在BEA Weblogic8.1 Server服務器上應用部署描述符web.xml的配制參數:
2 虛擬教室的設計與實現
2.1建立三維模型
利用3D MAX 8進行基本三維模型的構造,如教室中的講桌,桌椅,黑板,投影機,幕布,窗戶,天花板,吊燈等基本模型。這里以桌椅為例,用3DMax8設計出的虛擬教室中學生桌椅的基本三維模型,如圖1所示。
根據桌面材質對桌椅進行渲染和裝飾,然后根據位置信息,光線及其經緯度,進行光照,攝像機位置,渲染參數的調整使其空間模型更接近真實世界。
2.2 生成VRML
利用3DMAX to VRML工具導出為擴展名為wrl的vrml文件,并通過VRML專業編輯工具VrmlPad對VRML腳本做稍微的修改,加上一些圖片貼圖和腳本注釋生成教室環境組件,其主要部分核心代碼如下所示:
#VRML V2.0 utf8 # VRML文件的標志
Background{skyColor 1 1 1}# 設置背景
DEFyiziGroup {
children [
DEF yijia Transform {
translation 0 0 0
rotation 1 0 0 1.571
scale 0.002 0.002 0.002
children Shape {
appearance Appearance {
material Material {}
textureImageTexture {
url\"images/zuoyijia.jpg\" #用木色圖片進行渲染桌面
}
textureTransform TextureTransform {scale 8 12}
}}}]}
其中所有節點列表如圖2所示。
2.3 組建虛擬教室
設計好所有的構成虛擬教室的基本組件的三維模型和VRML文件后,通過VRML編輯器VrmlPad將所有的基本組件進行編排和視點設計,并組建出符合要求的虛擬教室的VRML基本模型。根據虛擬教室中基本組件的位置、燈光進行設計編排。為了能從5個主要角度進行虛擬教室三維顯示,該文設計了5個視點節點,分別為:FrontLeft(前左),FrontRight(前右),FrontMiddle(前中),Back(后),BackMiddle(后中)。為了能在5個視點間流暢的進行位置切換,需要設計“接觸檢測器( TouchSensor)”和“鄰近檢測器(proximitySensor)”,其中5個視點和所有檢測器的主要代碼如下所示:
DEF view Viewpoint {position -3.3 3.2 15.3 orientation 0 1 0 0 fieldOfView 0.7363 description \"try\" jump FALSE}
Viewpoint {position -4.5 1.6 3.0orientation 0 1 0 -1.3fieldOfView0.7363 description \"frontleft\"}
Viewpoint {position 0 1.6 3.8orientation 1 0 0 0.15fieldOfView0.7363 description \"frontmiddle\"}
Viewpoint {position 4.5 1.6 3.0orientation 0 1 0 1.3fieldOfView0.7363 description \"frontright\"}
Viewpoint {position 2 3.2 15.3orientation 0 1 0 1.271fieldOfView0.7363 description \"back\"}
Viewpoint {position 0 3.2 15.3orientation 0 1 0 0fieldOfView0.7363 description \"backmiddle\"}
DEF Proximity0 ProximitySensor{ center 0 0 0 size 600 600 600}#鄰近檢測器
DEF ViewAniTi TimeSensor {loop TRUE cycleInterval 300}#時間檢測器
通過VRML瀏覽器對VRML文件進行預覽,通過預覽可以看到的其中兩個角度的虛擬教室如圖3所示。
2.4 前臺設計
對于設計出的虛擬教室的VRML文件用瀏覽器預覽后,可以通過多個角度看到虛擬教室逼真的三維空間,但這樣的一個虛擬現實環境是靜態的。為了能實現師生間,學生間的溝通交流和互動,實現學生自由選課,各種實踐性實驗的驗證,就需要進行動態的數據交互。因此通過JSP頁面的方式向客戶端提供動態的VRML文件,從而使每個用戶可以個性化的選擇自己喜歡的課程和實驗進行學習。虛擬環境所能提供的學習功能包括以下幾種:
1) 課程管理:學生可以通過該Web頁面選擇感興趣的課程,老師可以通過后臺管理系統上傳教學的VRML課件和視頻課件。學生在進入虛擬教室選定課程后,對于VRML課件,系統會出現VRML教學環境進行講解,對于視頻課件,系統會在虛擬教室的投影上以視頻方式播放,如果有學生已經選擇該課程,投影上將按當前已經播放的視頻共享給后來選擇視頻的學生共享播放。
2) 虛擬實驗室:學生在該模塊選擇實驗后,按照目前系統中保存的VRML課件,系統會重新加載該實驗的三維實驗環境,學生可以跟往常現實生活中實驗一樣,動手進行實驗,但前提是要制作好實驗的VRML課件并上傳到虛擬實驗室實驗列表中。
3) 互動交流平臺:學生不論是在進行選課、實驗,還是進行視頻學習,同時還可以看到目前虛擬教室中有多少學生,同時也可以看到某一課程,某一實驗同時學習的學生有多少人,可以選擇某一個學生跟他進行交流和討論。
3.5 發布Web應用程序
采用Tomcat6.0作為Web服務器,采用Mysql5.0作為數據庫服務器,利用瀏覽器進入虛擬教室的首頁,結果如圖4所示。
3 總結
虛擬現實發展前景十分誘人,而與Internet的結合,更是讓更多的人們體驗虛擬世界。在某種意義上說它將改變人們的思維方式,甚至會改變人們對世界、自己、空間和時間的看法。它是一項發展中的、具有深遠的潛在應用方向的新技術。利用它我們可以建立真正的遠程教室,在這間教室中我們可以和世界各地的朋友們一同學習、討論、游戲,就像在現實生活中一樣。使用網絡計算機及其相關的三維設備,我們的工作、生活、娛樂將更加豐富多彩。
參考文獻:
[1] 王偉,袁海峰,陳桂蘭.基于VRML的虛擬社區與二維地圖互響應的研究[J].計算機仿真,2009(6):281-284.
[2] 董銘,周玉.VRML 程序員實用例庫[M].北京:電子工業出版社,2000.
[3] 汪志達,葉偉.VRML虛擬現實網頁設計[M].北京:清華大學出版社,2006.
[4] 汪興謙.VRML虛擬造型實戰演練[M].北京:中國水利水電出版社,2002.
[5] 劉淑芬,曾紅,劉輝.虛擬現實技術的應用與研究[J].機械研究與應用,2009(3).