劉占偉,盧 靜
(1.河南工程學院 數理科學系,河南 鄭州 451191;2.河南工程學院 計算機科學與工程系,河南 鄭州 451191)
隨著計算機網絡技術和虛擬現實技術的發(fā)展,許多高校建立了基于VRML(Virtual Reality Modeling Language,虛擬現實建模語言)的網絡虛擬校園系統(tǒng),把教學樓、重點實驗室、圖書館等教學設施通過三維圖形生動地展現出來.用戶僅需要通過電腦和網絡,安裝必要的插件,就能身臨其境地感受真實場景的校園.以河南工程學院為例,學院分多個校區(qū)辦學,校內濱湖公園、休閑景觀、綠化帶與教學建筑交相輝映.因此,采用虛擬建模技術,建立學院虛擬校園漫游系統(tǒng),對于展示校園文化和擴大學院知名度具有重要的意義.
建立基于VRML的虛擬校園,需要考慮真實感、繪制速度和交互方式等重要因素.通常VRML文件較大,難以達到平滑的運行效果,實時瀏覽較慢;在交互方式上限于VRML插件提供的功能,用戶在漫游過程中可能由于不清楚當前所在的位置,所以難以獲得當前視點所在場景的信息.因此,本文在場景建模時主要實現生成文件量較小的三維模型,模擬場景的真實感;在交互控制中,運用Java和VRML實現信息查詢和視點跟蹤,增強用戶與虛擬場景的交互.
VRML是一種建立在Internet上的交互式三維多媒體的建模語言,它具有分布式、三維、交互性、多媒體集成、境界逼真等特征,被稱為第二代Web語言[1].
VRML文件是虛擬現實的文本性描述文件,可由任一文本編輯器編寫,例如vrmlpad.該文件以擴展名 .wrl的格式進行保存.一個VRML文件包括了一些主要的功能部件:文件頭、場景圖、原型和事件路由等.它的解釋、執(zhí)行和顯示一般由專門的瀏覽器來完成,通過瀏覽器對VRML進行處理后,以聲音和圖像的形式展現出來,即所謂的“虛擬世界”.
用戶除了可以在“虛擬世界”中漫游外,瀏覽器還允許用戶通過場景圖層次中的感知器節(jié)點與虛擬世界進行交互[2].交互性是VRML 2.0最大的改進[3],它支持Java、腳本語言,從而可以產生全新的交互式應用.VRML 2.0也支持外部編程接口(EAI),它是一種介于VRML世界與外部環(huán)境的創(chuàng)作接口,通過該接口,用戶可以訪問當前運行的VRML世界,控制VRML世界內部的場景[4],可以通過創(chuàng)建Java小程序,與相應的VRML場景一起嵌入到Web頁面中實現相互通信,訪問和控制VRML場景中的節(jié)點,實現外部程序對VRML虛擬場景的訪問和控制.VRML 2.0不僅制定了標準的EAI,而且允許瀏覽器廠商開發(fā)EAI,這就意味著VRML具有強大的擴充性[5].
河南工程學院虛擬校園漫游系統(tǒng)采用客戶層、業(yè)務邏輯層和數據層的三層體系結構,見圖1.瀏覽器處于客戶層,用戶使用內嵌VR插件(cortvrml),采用HTTP協(xié)議與服務器端進行通訊,提供三維虛擬場景的顯示、操作、漫游和發(fā)出請求信息等;業(yè)務邏輯層包括Web 服務器和應用服務器.Web服務器接收客戶層發(fā)出的請求,調用應用服務器的服務模塊,向數據服務器發(fā)出數據交互的請求.數據層包括SQL Server數據庫和VRML文件(*.wrl).
圖1 系統(tǒng)的體系結構Fig.1 Structure of the system
該系統(tǒng)的功能包括場景介紹、三維漫游、二維導航、數據查詢、交互控制等.
(1)場景介紹.對用戶當前所處位置進行文字性描述,讓用戶不僅能直觀地感受到景物,而且也能夠從文字上了解景物的名稱和用途,從而對學院有更深刻的了解.
(2)二維導航.用戶通過導航地圖,了解校園場景的整體分布和當前所在校園中的位置,單擊導航地圖中某一位置,可以快速進入該景點.
(3)三維漫游.通過鍵盤或鼠標,使用戶能在虛擬校園中漫游,場景隨著觀察者所在位置的變化而變化.
(4)數據查詢.通過輸入景物屬性信息,能夠顯示景物和鄰近景觀;在景觀中瀏覽,單擊景物對象,能夠顯示景物的屬性數據.
(5)交互控制.在虛擬校園中,用戶瀏覽不僅能被動地欣賞,還可以參與、介入虛擬世界中的物體及表現方式,與虛擬場景進行實時交互.例如用戶在校園場景中隨意瀏覽時,如遇到教學樓的門可以把它打開,進入教室可以把燈打開,把窗簾拉開.
三維建模是建立虛擬校園的基礎,應該盡量將模型做得逼真、美觀.
(1)基礎數據準備.將河南工程學院多個校區(qū)的平面圖通過掃描得到圖片,通過等高線圖生成具有地形特征的DEM作為整個系統(tǒng)的矢量化底圖;通過Google Earth軟件,獲取多個校區(qū)的衛(wèi)星圖片;用數碼相機多角度的拍攝辦公樓、教學樓、圖書館、操場等景觀照片,再把所拍攝的照片進行優(yōu)化.
(2)設置空間背景及建立底圖.VRML 2.0提供了54種標準的節(jié)點類型.利用Box節(jié)點建立一個立方體,再使用Texture image texture的貼圖功能把學院的平面圖貼到該立方體上,得到系統(tǒng)需要的底圖.通過Backgroud這個節(jié)點在VRML中編輯系統(tǒng)的空間背景色,其中造型顏色使用RGB色彩進行度量,造型材質色外觀分別使用三原色進行調整設置.
(3)三維建模過程.工程學院校區(qū)多,占地面積大,景觀復雜,尤其是南校區(qū)有溝壑和天然槐樹林.在虛擬場景構造時,往往需要構建復雜的三維幾何體,并且需要將普通的文本和三維景觀直接聯系起來.VRML 2.0提供了54種標準的節(jié)點類型,包括組節(jié)點、通用節(jié)點、幾何體節(jié)點、幾何屬性等.VRML沒有提供高級的幾何造型,可利用VRML結合3DSMAX建立模型.一般基礎模型盡可能用VRML建模,并進行VRML優(yōu)化.然后,利用Inline節(jié)點進行插入,以減少文件所占存儲空間,提供瀏覽器的讀取速度.對于復雜物體,在使用3DSMAX建模時,盡量減少弧形、圓形以及各種光滑表面的使用,而多用直線、直面,即使使用曲線、曲面,也盡可能減少頂點和面片數.為了模擬虛擬場景的真實性,采用基于相對坐標的方法,對于規(guī)模大、精度要求高的模型以同一場景中的相對坐標來構建.
模型建立完畢之后,模型導出為VRML語言識別的 .wrl格式,通過Vrmlpad編輯器對 .wrl文件進行代碼的完善,加入Navigation節(jié)點實現漫游,運用LOD技術進行設置模型可視距離.為了做到真實的碰撞效果,在每一個 .wrl文件中對每一個不可穿越的物體設置Collision節(jié)點,防止出現因碰撞而穿墻過的問題.
2.3.1 景物與屬性互查詢功能
利用VRML的Anchor節(jié)點以及網頁與場景中的對象連接功能,實現對場景中建筑、道路、操場等景物屬性數據的查詢.如:對建筑可查詢的內容包括建筑名稱、功能、層高等信息.反之,輸入景物名稱可以顯示出相對應的景觀.
2.3.2 數據查詢功能
利用Java編寫的程序調用VRML虛擬場景Scene對象,獲取瀏覽者所在位置的坐標、方位等信息,還可以進行建筑、綠地等面積的查詢與統(tǒng)計.
2.3.3 虛擬場景動態(tài)控制功能
VRML中的EAI是與VRML插件相聯系的Java包,允許Java Applet訪問VRML中的場景,實現用Java實現虛擬場景動態(tài)控制功能.用戶控制虛擬場景流程見圖2.
圖2 虛擬場景控制流程圖Fig.2 Flow chart of virtual scene control
以打開虛擬教室里的燈的交互為例設計如下.
DEF TS Touchsensor{…} #定義 “接觸感應器”節(jié)點
DEF lamp Transform{… } #定義“燈”的節(jié)點
DEF lamplight DirectionalLight{ #定義光源節(jié)點
color 1.0 1.0 1.0 #光源在場景中的顏色
on FALSE #設置光源初值為“關閉”
}
DEF Change Script{ #定義腳本節(jié)點
eventOut SFBool lampset #定義腳本執(zhí)行后的發(fā)出事件
eventIn SFTime to touch #定義腳本啟動后的發(fā)入事件
url"vrmlscript: # 定義腳本中的描述語言
function totouch(){ #定義腳本中的執(zhí)行函數
lampset=TURE;}" #設定發(fā)出事件
}
ROUTE Ts.touchTime To Change.totouch #設定感應器觸發(fā)腳本執(zhí)行的路由
ROUTE Change.lampset To lamplight.set-on #設定腳本輸出到場景節(jié)點改變的路由
系統(tǒng)的開發(fā)方法:將VRML和Java Applet置于同一頁面下,以Java Applet為控制的核心;三維模型以*.wrl文件格式通過HTML的標記嵌入到網頁中; Java Applet代碼先生成相應的class文件,然后通過HTML的標記
開發(fā)語言:Java
建模語言:VRML
建模工具:VrmlPad
展示平臺:IE 6.0 (安裝VRML瀏覽器插件Cortvrml及插件Quicktime 7.0)
初步開發(fā)的河南工程學院虛擬校園漫游系統(tǒng)主界面如圖3所示.通過點擊主界面上的衛(wèi)星圖片,可以選擇其中一個校區(qū)進行虛擬校園漫游.進入校本部頁面,單擊圖書館鏈接后,可實現任意方向的實時實景漫游,其余景點類似.
圖3 主界面Fig.3 The main interface
教學樓虛擬教室如圖4所示,操作鼠標或鍵盤,可在虛擬教室中進行實時漫游、交互.
圖4 教學樓虛擬教室Fig.4 Virtual classroom of a teaching building
本文運用VRML建模與Java交互技術設計了河南工程學院虛擬校園漫游系統(tǒng),實現了網絡化校園電子地圖和虛擬現實技術的良好結合以及三維虛擬現實場景的交互式瀏覽.系統(tǒng)在繪制速度、真實感和交互性等方面取得了很好的效果.但是由于學院校區(qū)多,景觀復雜,尤其是南區(qū)特有的地貌,該系統(tǒng)還有很多需要完善的地方,如三維場景建模的逼真度可進一步增強,虛擬場景中多用戶交互的功能有待實現.
參考文獻:
[1] 張昌明,張 虹.基于VRML-Java的網絡虛擬現實的實現[J]. 計算機工程與設計,2005,26(9):2 410-2 412.
[2] 陽化冰.虛擬現實構造語言VRML[M].北京:北京航空航天大學出版社,2000:9-18.
[3] ANCLRE G, CRABRIEL T, BILL H. A framework for streaming geometry in VRML[J].IEEE Computer Graphics and Applications,1999,19(2):68-78.
[4] 王玉田,孔德慧.虛擬校園漫游系統(tǒng)的實現[J].北京工業(yè)大學學報,2006,32(4):316-320.
[5] 賽博科技工作室.VRML與Java編程技術[M].北京:人民郵電出版社,2002:36-58.