馬阿曼
(武夷學院數學與計算機學院,福建 武夷山 354300)
2013-05-22
馬阿曼(1981-),女,碩士,講師,現主要從事圖形圖像方面的教學與研究工作。
基于VRML的虛擬多媒體教室室內場景制作
馬阿曼
(武夷學院數學與計算機學院,福建 武夷山 354300)
近些年來虛擬現實技術和網絡技術以及其他相關的計算機技術的迅速發展和互相融合,給VRML技術的發展和深入應用提供了廣泛的空間,三維虛擬漫游技術越來越受到人們的重視,其波及的領域也越來越寬廣。利用VRML語言制作多媒體教室的室內場景,將多媒體教室場景總共分為9個模塊進行場景建模(依次為總的背景節點、整體建模、教室的前邊、教室的右邊、教室的后邊、教室的下邊、教室的左邊、教室的上邊、教室里的物體等),建立好各模塊以后通過節點將其聯接在一起,實現了用戶與虛擬室內場景的交互。
VRML;虛擬現實;多媒體教室;室內場景
虛擬現實是一種對真實世界的模擬,它不僅能對現實環境作逼真的描述,還能使得人們在觀察虛擬環境的時候猶如身臨其境,可以與之進行交互。參與者能夠在虛擬環境中具有自己的視點并且環境能夠迅速反映參與者視點的變化[1]。虛擬現實的實現總的可以分為2類:高級的虛擬現實系統以及桌面虛擬現實系統。作為虛擬現實的高級應用,其特征是借助于各種硬件設備(如跟蹤傳感設備、顯示設備、虛擬手設備),通過這種方式實現的系統本身技術復雜,造價也高,用于專門的應用[2]。
下面筆者談到的虛擬室內場景屬于桌面虛擬現實系統,這種系統是無需借助特別的硬件設備,甚至可以僅用軟件實現,實現費用低。這種系統往往應用在各種虛擬的演示上,大多借助于網絡傳播。
VRML是一種建模語言[3],用來在Web環境中描述三維物體及其行為,從而在網絡環境中構建虛擬場景,VRML文件的編輯需要借助專門的編輯器來編寫。VRMLPad是一個功能強大的VRML編輯器,它能高效及便捷的編寫VRML文件。如果瀏覽者要在瀏覽器中觀察VRML場景,需要一種插件,這個插件就是VRML瀏覽器插件,常見的插件有Blaxxun Contact、CosmoPlayer、Cortona等[2]。
筆者采用VRMLPad編輯器進行編輯并選擇使用CosmoPlayer瀏覽器插件進行場景觀察。CosmoPlayer的整個操作畫面簡潔、方便和快捷,使VRML開發人員和用戶都能感受到VRML虛擬現實三維立體中身臨其境的感覺。
VRML虛擬現實建模語言的模塊化很強。在建立模型時,可以把整個多媒體教室分割成許多部分。如可以把整個多媒體教室的各個部分分別建模,然后通過節點聯接在一起。對于教室里的物體,如桌子、椅子、日光燈等,可以分別建模,再用Inline節點聯接到教室的大虛擬空間中。
筆者將多媒體教室場景總共分為9個模塊進行場景建模(依次為總的背景節點、整體建模、教室的前邊、教室的右邊、教室的后邊、教室的下邊、教室的左邊、教室的上邊、教室里的物體等),建立好各模塊以后通過節點將其聯接在一起。下面給出部分模塊建模結構圖及各部分使用的節點信息。
2.1總的背景節點
總的背景節點示意圖如圖1所示。

圖1 總的背景節點示意圖
1)WorldInfo(場景信息節點) 是信息化的節點。它提供了VRML程序的標題和認證信息。標題信息可以表達程序的意義,而認證信息則可以提供軟件開發者信息、完成時間、版本、版權等信息。
2)ProximitySensor(親近度傳感器節點) 也被稱為接近感知器節點,用來感知瀏覽者即用戶何時進入、退出和移動于坐標系內的一個長方體區域[3]。該系統使用該節點感應用戶進入和移動VRML虛擬現實場景中的長方體感知區域。當用戶穿越這個長方體感知區域時,可以使親近度傳感器啟動某個動態對象;當用戶離開這個長方體感知域,將停止某個動態對象。
3)NavigationInfo(視點導航信息節點) 系統使用這個節點就可以得到有關用戶如何在三維虛擬世界里導航的信息,如以行走、移動、飛行等[3],相當于該節點為用戶提供了一個替身且該替身可在虛擬現實世界里遨游馳騁。
4)Viewpoint(視點節點) 該節點決定了觀察角度[3]。系統使用它為用戶指定了觀察的位置信息,如:立體空間的三維坐標、立體空間朝向及視野范圍等。
5)PointLight(點光源節點) 是VRML場景效果節點[3]。它可以生成一個點光源,即生成的光線是射向四面八方的。

圖2 整體建模示意圖

圖3 教室的前邊示意圖
2.2整體建模
整體建模把教室分割成好幾部分分別進行建模,即教室前面、教室后面、教室上面、教室下面、教室的左邊、右邊和中間。整體建模示意圖如圖2所示。
2.3教室的前邊
教室的前邊示意圖如圖3所示。
1)TouchSensor(觸摸傳感器節點) 該節點是用戶與虛擬對象之間相接觸型傳感器節[3]點。該系統用它來測試用戶觸摸事件,如對多媒體的觸摸的事件。
2)TimeSensor(時間傳感器節點) 該系統使用此節點創建一個虛擬時鐘,對其他節點發送時間值,并控制立體空間的中的多媒體對象的開始、變化和結果過程的時間,實現多媒體的升降自動變化。

圖4 教室的上邊示意圖

圖5 教室里的物體示意圖
3)Script(腳本節點) 它可以描述一些由用戶自定義制作的檢測器和插補器。
4)Route(路由) 是連接一個節點的eventIn入事件和eventOut出事件的節點之間的通道。
5)sound(聲音節點) 在該系統中使用該節點為VRML世界中添加了一個聲音,并指定聲源的位置和聲音的立體化表現等。
2.4教室的上邊
教室的上邊示意圖如圖4所示。
1)Group(編組節點) 是將多個節點進行組合創建更復雜的立體空間造型。使用它將多個節點進行編組,編組后即視為一個整體,當作一個完整的空間造型來對待。
2)Fog(霧節點) 可為場景添加霧氣,制造出空間大氣效果,使背景空間具有更好的效果。使用該節點為場景增加真實感。
3)OrientationInterpolator(朝向插補器節點) 為方位變換節點,使用該節點為電風扇制作旋轉效果
4)CylinderSensor(單軸旋轉型檢測器節點) 可以檢測鼠標的拖動動作,被鼠標拖動的對象以VRML坐標系中Y軸旋轉,但不改變對象的位置。使用該節點來感應用戶的拖動鼠標的動作。
2.5教室里的物體
教室里的物體示意圖如圖5所示。
1)Transform(空間坐標變換節點) 使用該此節點可在VRML立體空間中創建一個局部空間坐標系。利用該節點在VRML場景中創建多個局部坐標系,而這些坐標系可隨意平移、旋轉和縮放,從而使坐標系上的造型(如座椅)實現平移、旋轉和縮放。
2)Shape(空間物體造型模型節點) 使用該此節點制作了教室虛擬空間中的空間造型(如桌椅、風扇、講桌、門、窗等等)。它定義了一個VRML空間造型所具有的幾何尺寸、材料、紋理和外觀特征等,這些特征定義了VRML虛擬空間中創建的空間造型。
3)TextureTransform(紋理坐標變換節點) 該系統使用它為立體空間中的三維物體貼圖,即通過轉動、平移、改變圖像的尺寸為座椅表面貼圖,實現了三維的物體。
教室的右邊、教室的后邊、教室的下邊、教室的左邊等也使用同樣的方式建立。
2.6最終實現的場景漫游部分效果
最終實現的場景漫游部分效果,如教室后面往前看以及漫游的效果和教室側門進入教室這2個角度的效果截圖,如圖6所示。

圖6 場景漫游部分效果示意圖
以上就是筆者在學習VRML的過程中,使用VRML語言制作一室內場景的過程以及對VRML的前景用途、語言的編輯、建模過程的一些理解?;赩RML的程序設計,有許多可以改進的地方,如可以使用LOD優化技術快速地渲染VRML三維場景;用2種外置的語言VRML Script和JAVA/JAVA Script,加強VRML的人工智能;在聯機環境中加入人體建模,建立多用戶環境通訊機制;利用頭盔式顯示器或其他設備實現沉浸式PC虛擬現實系統[2]等。這些在以后的學習和研究過程中可以進一步掌握。
[1]申蔚.虛擬現實技術[M].北京:清華大學出版社,2009.
[2]張武軍.VRML虛擬現實技術基礎與實踐教程[M].北京:冶金工業出版社,2008.
[3]吳北新.虛擬現實建模語言VRML[M].北京:高等教育出版社,2004.
TP391.9
A
1673-1409(2013)28-0082-04
[編輯] 洪云飛