基于VRML的虛擬機(jī)房的設(shè)計(jì)與實(shí)現(xiàn)
現(xiàn)實(shí)生活中的任何物體都是由各個(gè)平面組合而成的,而VRML的IndexedFaceSet面集節(jié)點(diǎn)就是通過創(chuàng)建物體造型的各個(gè)面,再賦予材質(zhì)和顏色,還可以添加不同的紋理貼圖,從而創(chuàng)建逼真的物體造型。利用VRML的IndexedFaceSet面集節(jié)點(diǎn)幾乎可以創(chuàng)建現(xiàn)實(shí)生活中存在的任何物體造型。虛擬機(jī)房中的房屋造型、電腦桌、電腦椅、電腦等造型都是使用IndexedFaceSet面集節(jié)點(diǎn)創(chuàng)建,再添加上實(shí)拍的紋理貼圖,創(chuàng)建而成的。
2.3 交互功能的實(shí)現(xiàn)
在虛擬機(jī)房場(chǎng)景中,使用Touchsensor節(jié)點(diǎn)、TimeSensor節(jié)點(diǎn)、OrientationInterpolator節(jié)點(diǎn)和Script節(jié)點(diǎn),并用ROUTE把各個(gè)事件聯(lián)系起來,創(chuàng)建了門的開、關(guān)的交互動(dòng)作。
在虛擬機(jī)房的虛擬場(chǎng)景中,當(dāng)鼠標(biāo)指向門時(shí),會(huì)出現(xiàn)一個(gè)手形指針,這時(shí)單擊鼠標(biāo),門就會(huì)緩慢地開開,再單擊鼠標(biāo),門又會(huì)緩慢地關(guān)閉。實(shí)現(xiàn)代碼如下所示。
3 虛擬文件性能優(yōu)化
三維場(chǎng)景的呈現(xiàn)是通過瀏覽器已默認(rèn)視點(diǎn)為參照對(duì)場(chǎng)景描述文件的解釋而完成的,每當(dāng)視點(diǎn)發(fā)生改變,瀏覽器就會(huì)重新計(jì)算場(chǎng)景中各對(duì)象的新位置并重新進(jìn)行渲染,因而會(huì)出現(xiàn)當(dāng)改變視點(diǎn)時(shí),瀏覽器渲染的速度跟不上視點(diǎn)的變化速度,從而產(chǎn)生停頓的現(xiàn)象。為了解決此問題,采取了如下措施:
(1)最大可能地使用重用機(jī)制。在場(chǎng)景內(nèi),有不少反復(fù)出現(xiàn)的物體,比地板磚、電腦、電腦桌、椅子、燈等,這些對(duì)象中形狀完全相同者,采用DEF和USE的實(shí)例引用法進(jìn)行復(fù)制,極大地簡(jiǎn)化了文件,減輕了瀏覽器的負(fù)擔(dān)。
(2)利用Inline節(jié)點(diǎn),減少文件的體積,提高代碼的 重用率;
(3)利用LOD細(xì)節(jié)層次節(jié)點(diǎn)實(shí)現(xiàn)場(chǎng)景切換技術(shù),實(shí)現(xiàn) 同一對(duì)象模型的自動(dòng)轉(zhuǎn)換。為場(chǎng)景中某一對(duì)象建立多個(gè)不同的模型,當(dāng)視點(diǎn)離對(duì)象較遠(yuǎn)時(shí)采用簡(jiǎn)單模型,較近時(shí)采用細(xì)化模型。
4 總結(jié)
文章介紹了在線虛擬機(jī)房的模型、場(chǎng)景建模技術(shù)的詳細(xì)設(shè)計(jì)和實(shí)現(xiàn),構(gòu)建了一個(gè)基于VRML虛擬現(xiàn)實(shí)建模語(yǔ)言的虛擬機(jī)房。VRML具有語(yǔ)法簡(jiǎn)單、三維建模功能強(qiáng)大、便于網(wǎng)上發(fā)布等優(yōu)點(diǎn),但仍不能滿足各行各業(yè)的需求,一些高級(jí)交互功能的實(shí)現(xiàn)必須借助于Java等功能強(qiáng)大的高級(jí)語(yǔ)言來實(shí)現(xiàn)。Java和VRML相結(jié)合來建立三維虛擬世界,將會(huì)在網(wǎng)絡(luò)上展現(xiàn)更逼真的三維虛擬場(chǎng)景,給使用者更真實(shí)的感覺。
評(píng)論