馬阿曼
(武夷學(xué)院數(shù)學(xué)與計(jì)算機(jī)學(xué)院,福建 武夷山 354300)
2013-05-22
馬阿曼(1981-),女,碩士,講師,現(xiàn)主要從事圖形圖像方面的教學(xué)與研究工作。
基于VRML的虛擬多媒體教室室內(nèi)場(chǎng)景制作
馬阿曼
(武夷學(xué)院數(shù)學(xué)與計(jì)算機(jī)學(xué)院,福建 武夷山 354300)
近些年來(lái)虛擬現(xiàn)實(shí)技術(shù)和網(wǎng)絡(luò)技術(shù)以及其他相關(guān)的計(jì)算機(jī)技術(shù)的迅速發(fā)展和互相融合,給VRML技術(shù)的發(fā)展和深入應(yīng)用提供了廣泛的空間,三維虛擬漫游技術(shù)越來(lái)越受到人們的重視,其波及的領(lǐng)域也越來(lái)越寬廣。利用VRML語(yǔ)言制作多媒體教室的室內(nèi)場(chǎng)景,將多媒體教室場(chǎng)景總共分為9個(gè)模塊進(jìn)行場(chǎng)景建模(依次為總的背景節(jié)點(diǎn)、整體建模、教室的前邊、教室的右邊、教室的后邊、教室的下邊、教室的左邊、教室的上邊、教室里的物體等),建立好各模塊以后通過(guò)節(jié)點(diǎn)將其聯(lián)接在一起,實(shí)現(xiàn)了用戶與虛擬室內(nèi)場(chǎng)景的交互。
VRML;虛擬現(xiàn)實(shí);多媒體教室;室內(nèi)場(chǎng)景
虛擬現(xiàn)實(shí)是一種對(duì)真實(shí)世界的模擬,它不僅能對(duì)現(xiàn)實(shí)環(huán)境作逼真的描述,還能使得人們?cè)谟^察虛擬環(huán)境的時(shí)候猶如身臨其境,可以與之進(jìn)行交互。參與者能夠在虛擬環(huán)境中具有自己的視點(diǎn)并且環(huán)境能夠迅速反映參與者視點(diǎn)的變化[1]。虛擬現(xiàn)實(shí)的實(shí)現(xiàn)總的可以分為2類:高級(jí)的虛擬現(xiàn)實(shí)系統(tǒng)以及桌面虛擬現(xiàn)實(shí)系統(tǒng)。作為虛擬現(xiàn)實(shí)的高級(jí)應(yīng)用,其特征是借助于各種硬件設(shè)備(如跟蹤傳感設(shè)備、顯示設(shè)備、虛擬手設(shè)備),通過(guò)這種方式實(shí)現(xiàn)的系統(tǒng)本身技術(shù)復(fù)雜,造價(jià)也高,用于專門的應(yīng)用[2]。
下面筆者談到的虛擬室內(nèi)場(chǎng)景屬于桌面虛擬現(xiàn)實(shí)系統(tǒng),這種系統(tǒng)是無(wú)需借助特別的硬件設(shè)備,甚至可以僅用軟件實(shí)現(xiàn),實(shí)現(xiàn)費(fèi)用低。這種系統(tǒng)往往應(yīng)用在各種虛擬的演示上,大多借助于網(wǎng)絡(luò)傳播。
VRML是一種建模語(yǔ)言[3],用來(lái)在Web環(huán)境中描述三維物體及其行為,從而在網(wǎng)絡(luò)環(huán)境中構(gòu)建虛擬場(chǎng)景,VRML文件的編輯需要借助專門的編輯器來(lái)編寫。VRMLPad是一個(gè)功能強(qiáng)大的VRML編輯器,它能高效及便捷的編寫VRML文件。如果瀏覽者要在瀏覽器中觀察VRML場(chǎng)景,需要一種插件,這個(gè)插件就是VRML瀏覽器插件,常見的插件有Blaxxun Contact、CosmoPlayer、Cortona等[2]。
筆者采用VRMLPad編輯器進(jìn)行編輯并選擇使用CosmoPlayer瀏覽器插件進(jìn)行場(chǎng)景觀察。CosmoPlayer的整個(gè)操作畫面簡(jiǎn)潔、方便和快捷,使VRML開發(fā)人員和用戶都能感受到VRML虛擬現(xiàn)實(shí)三維立體中身臨其境的感覺。
VRML虛擬現(xiàn)實(shí)建模語(yǔ)言的模塊化很強(qiáng)。在建立模型時(shí),可以把整個(gè)多媒體教室分割成許多部分。如可以把整個(gè)多媒體教室的各個(gè)部分分別建模,然后通過(guò)節(jié)點(diǎn)聯(lián)接在一起。對(duì)于教室里的物體,如桌子、椅子、日光燈等,可以分別建模,再用Inline節(jié)點(diǎn)聯(lián)接到教室的大虛擬空間中。
筆者將多媒體教室場(chǎng)景總共分為9個(gè)模塊進(jìn)行場(chǎng)景建模(依次為總的背景節(jié)點(diǎn)、整體建模、教室的前邊、教室的右邊、教室的后邊、教室的下邊、教室的左邊、教室的上邊、教室里的物體等),建立好各模塊以后通過(guò)節(jié)點(diǎn)將其聯(lián)接在一起。下面給出部分模塊建模結(jié)構(gòu)圖及各部分使用的節(jié)點(diǎn)信息。
2.1總的背景節(jié)點(diǎn)
總的背景節(jié)點(diǎn)示意圖如圖1所示。
圖1 總的背景節(jié)點(diǎn)示意圖
1)WorldInfo(場(chǎng)景信息節(jié)點(diǎn)) 是信息化的節(jié)點(diǎn)。它提供了VRML程序的標(biāo)題和認(rèn)證信息。標(biāo)題信息可以表達(dá)程序的意義,而認(rèn)證信息則可以提供軟件開發(fā)者信息、完成時(shí)間、版本、版權(quán)等信息。
2)ProximitySensor(親近度傳感器節(jié)點(diǎn)) 也被稱為接近感知器節(jié)點(diǎn),用來(lái)感知瀏覽者即用戶何時(shí)進(jìn)入、退出和移動(dòng)于坐標(biāo)系內(nèi)的一個(gè)長(zhǎng)方體區(qū)域[3]。該系統(tǒng)使用該節(jié)點(diǎn)感應(yīng)用戶進(jìn)入和移動(dòng)VRML虛擬現(xiàn)實(shí)場(chǎng)景中的長(zhǎng)方體感知區(qū)域。當(dāng)用戶穿越這個(gè)長(zhǎng)方體感知區(qū)域時(shí),可以使親近度傳感器啟動(dòng)某個(gè)動(dòng)態(tài)對(duì)象;當(dāng)用戶離開這個(gè)長(zhǎng)方體感知域,將停止某個(gè)動(dòng)態(tài)對(duì)象。
3)NavigationInfo(視點(diǎn)導(dǎo)航信息節(jié)點(diǎn)) 系統(tǒng)使用這個(gè)節(jié)點(diǎn)就可以得到有關(guān)用戶如何在三維虛擬世界里導(dǎo)航的信息,如以行走、移動(dòng)、飛行等[3],相當(dāng)于該節(jié)點(diǎn)為用戶提供了一個(gè)替身且該替身可在虛擬現(xiàn)實(shí)世界里遨游馳騁。
4)Viewpoint(視點(diǎn)節(jié)點(diǎn)) 該節(jié)點(diǎn)決定了觀察角度[3]。系統(tǒng)使用它為用戶指定了觀察的位置信息,如:立體空間的三維坐標(biāo)、立體空間朝向及視野范圍等。
5)PointLight(點(diǎn)光源節(jié)點(diǎn)) 是VRML場(chǎng)景效果節(jié)點(diǎn)[3]。它可以生成一個(gè)點(diǎn)光源,即生成的光線是射向四面八方的。
圖2 整體建模示意圖
圖3 教室的前邊示意圖
2.2整體建模
整體建模把教室分割成好幾部分分別進(jìn)行建模,即教室前面、教室后面、教室上面、教室下面、教室的左邊、右邊和中間。整體建模示意圖如圖2所示。
2.3教室的前邊
教室的前邊示意圖如圖3所示。
1)TouchSensor(觸摸傳感器節(jié)點(diǎn)) 該節(jié)點(diǎn)是用戶與虛擬對(duì)象之間相接觸型傳感器節(jié)[3]點(diǎn)。該系統(tǒng)用它來(lái)測(cè)試用戶觸摸事件,如對(duì)多媒體的觸摸的事件。
2)TimeSensor(時(shí)間傳感器節(jié)點(diǎn)) 該系統(tǒng)使用此節(jié)點(diǎn)創(chuàng)建一個(gè)虛擬時(shí)鐘,對(duì)其他節(jié)點(diǎn)發(fā)送時(shí)間值,并控制立體空間的中的多媒體對(duì)象的開始、變化和結(jié)果過(guò)程的時(shí)間,實(shí)現(xiàn)多媒體的升降自動(dòng)變化。
圖4 教室的上邊示意圖
圖5 教室里的物體示意圖
3)Script(腳本節(jié)點(diǎn)) 它可以描述一些由用戶自定義制作的檢測(cè)器和插補(bǔ)器。
4)Route(路由) 是連接一個(gè)節(jié)點(diǎn)的eventIn入事件和eventOut出事件的節(jié)點(diǎn)之間的通道。
5)sound(聲音節(jié)點(diǎn)) 在該系統(tǒng)中使用該節(jié)點(diǎn)為VRML世界中添加了一個(gè)聲音,并指定聲源的位置和聲音的立體化表現(xiàn)等。
2.4教室的上邊
教室的上邊示意圖如圖4所示。
1)Group(編組節(jié)點(diǎn)) 是將多個(gè)節(jié)點(diǎn)進(jìn)行組合創(chuàng)建更復(fù)雜的立體空間造型。使用它將多個(gè)節(jié)點(diǎn)進(jìn)行編組,編組后即視為一個(gè)整體,當(dāng)作一個(gè)完整的空間造型來(lái)對(duì)待。
2)Fog(霧節(jié)點(diǎn)) 可為場(chǎng)景添加霧氣,制造出空間大氣效果,使背景空間具有更好的效果。使用該節(jié)點(diǎn)為場(chǎng)景增加真實(shí)感。
3)OrientationInterpolator(朝向插補(bǔ)器節(jié)點(diǎn)) 為方位變換節(jié)點(diǎn),使用該節(jié)點(diǎn)為電風(fēng)扇制作旋轉(zhuǎn)效果
4)CylinderSensor(單軸旋轉(zhuǎn)型檢測(cè)器節(jié)點(diǎn)) 可以檢測(cè)鼠標(biāo)的拖動(dòng)動(dòng)作,被鼠標(biāo)拖動(dòng)的對(duì)象以VRML坐標(biāo)系中Y軸旋轉(zhuǎn),但不改變對(duì)象的位置。使用該節(jié)點(diǎn)來(lái)感應(yīng)用戶的拖動(dòng)鼠標(biāo)的動(dòng)作。
2.5教室里的物體
教室里的物體示意圖如圖5所示。
1)Transform(空間坐標(biāo)變換節(jié)點(diǎn)) 使用該此節(jié)點(diǎn)可在VRML立體空間中創(chuàng)建一個(gè)局部空間坐標(biāo)系。利用該節(jié)點(diǎn)在VRML場(chǎng)景中創(chuàng)建多個(gè)局部坐標(biāo)系,而這些坐標(biāo)系可隨意平移、旋轉(zhuǎn)和縮放,從而使坐標(biāo)系上的造型(如座椅)實(shí)現(xiàn)平移、旋轉(zhuǎn)和縮放。
2)Shape(空間物體造型模型節(jié)點(diǎn)) 使用該此節(jié)點(diǎn)制作了教室虛擬空間中的空間造型(如桌椅、風(fēng)扇、講桌、門、窗等等)。它定義了一個(gè)VRML空間造型所具有的幾何尺寸、材料、紋理和外觀特征等,這些特征定義了VRML虛擬空間中創(chuàng)建的空間造型。
3)TextureTransform(紋理坐標(biāo)變換節(jié)點(diǎn)) 該系統(tǒng)使用它為立體空間中的三維物體貼圖,即通過(guò)轉(zhuǎn)動(dòng)、平移、改變圖像的尺寸為座椅表面貼圖,實(shí)現(xiàn)了三維的物體。
教室的右邊、教室的后邊、教室的下邊、教室的左邊等也使用同樣的方式建立。
2.6最終實(shí)現(xiàn)的場(chǎng)景漫游部分效果
最終實(shí)現(xiàn)的場(chǎng)景漫游部分效果,如教室后面往前看以及漫游的效果和教室側(cè)門進(jìn)入教室這2個(gè)角度的效果截圖,如圖6所示。
圖6 場(chǎng)景漫游部分效果示意圖
以上就是筆者在學(xué)習(xí)VRML的過(guò)程中,使用VRML語(yǔ)言制作一室內(nèi)場(chǎng)景的過(guò)程以及對(duì)VRML的前景用途、語(yǔ)言的編輯、建模過(guò)程的一些理解。基于VRML的程序設(shè)計(jì),有許多可以改進(jìn)的地方,如可以使用LOD優(yōu)化技術(shù)快速地渲染VRML三維場(chǎng)景;用2種外置的語(yǔ)言VRML Script和JAVA/JAVA Script,加強(qiáng)VRML的人工智能;在聯(lián)機(jī)環(huán)境中加入人體建模,建立多用戶環(huán)境通訊機(jī)制;利用頭盔式顯示器或其他設(shè)備實(shí)現(xiàn)沉浸式PC虛擬現(xiàn)實(shí)系統(tǒng)[2]等。這些在以后的學(xué)習(xí)和研究過(guò)程中可以進(jìn)一步掌握。
[1]申蔚.虛擬現(xiàn)實(shí)技術(shù)[M].北京:清華大學(xué)出版社,2009.
[2]張武軍.VRML虛擬現(xiàn)實(shí)技術(shù)基礎(chǔ)與實(shí)踐教程[M].北京:冶金工業(yè)出版社,2008.
[3]吳北新.虛擬現(xiàn)實(shí)建模語(yǔ)言VRML[M].北京:高等教育出版社,2004.
TP391.9
A
1673-1409(2013)28-0082-04
[編輯] 洪云飛