2021-4-9 | 旅游類論文
一、虛擬環(huán)境中碰撞檢測(cè)的研究
為了增強(qiáng)真實(shí)性、增加沉浸感,虛擬旅游系統(tǒng)不僅要保證用戶能從視覺上如實(shí)地看到虛擬環(huán)境中的對(duì)象,同時(shí)也要能夠身臨其境的與其進(jìn)行交互.如用戶進(jìn)行觸摸、抓取動(dòng)作時(shí),虛擬系統(tǒng)中的事物要做出相應(yīng)的反應(yīng).這就要求系統(tǒng)應(yīng)該及時(shí)準(zhǔn)確的檢測(cè)出這些碰撞,并給出對(duì)應(yīng)的碰撞變化.使用NavigationInfo節(jié)點(diǎn)創(chuàng)建的替身可以進(jìn)行碰撞檢測(cè),常用的碰撞檢測(cè)方法有層次包圍盒法和空間剖分法.實(shí)際上,在虛擬旅游系統(tǒng)中,大部分的對(duì)象碰撞檢測(cè)無需太過精確,我們知道兩個(gè)或多人物體想要發(fā)生碰撞,至少其中一個(gè)物體是運(yùn)動(dòng)狀態(tài)的,因此我們只要對(duì)運(yùn)動(dòng)的物體進(jìn)行碰撞檢測(cè)即可,這就大大降低了工作量和工作難度.本系統(tǒng)將2種常用的方法相結(jié)合,使用層次碰撞檢測(cè)的方法,將整個(gè)過程分為預(yù)處理、全局檢測(cè)和局部檢測(cè)3個(gè)階段.
1預(yù)處理階段
這一階段的工作是為虛擬旅游系統(tǒng)中的對(duì)象構(gòu)造層次包圍盒樹,為碰撞檢測(cè)打好基礎(chǔ).具體方法:每個(gè)虛擬對(duì)象元素最外層采用包圍球,以下各層采用軸對(duì)齊包圍盒.自頂向下地構(gòu)造二叉樹.
2全局檢測(cè)階段
虛擬旅游系統(tǒng)中的場(chǎng)景、對(duì)象非常之多,我們可能利用空間剖分法對(duì)場(chǎng)景進(jìn)行劃分.因?yàn)閷?duì)于一個(gè)運(yùn)動(dòng)的物體來說,在某一個(gè)時(shí)間段內(nèi),它只會(huì)與它鄰近的物體發(fā)生碰撞.這樣就大大降低了碰撞檢測(cè)的次數(shù).具體做法:使用均勻剖分法把虛擬場(chǎng)景劃分為一個(gè)a*b的矩陣,矩陣中的元素對(duì)應(yīng)場(chǎng)景中的任一單位格.場(chǎng)景中的每一個(gè)對(duì)象看作一個(gè)質(zhì)點(diǎn),該質(zhì)點(diǎn)的坐標(biāo)就是該對(duì)象包圍球的球心坐標(biāo).使用這種方法,將場(chǎng)景的所有對(duì)象都?xì)w入對(duì)應(yīng)的單元格中.這樣,確定了一個(gè)單元格之后,該單元格中的所有對(duì)象也被隨之確定.對(duì)于一個(gè)運(yùn)動(dòng)物體來說,根據(jù)該對(duì)象的坐標(biāo)就可以確定它所處的單元格,根據(jù)矩陣中元素之間的關(guān)系,再確定與之相鄰的單元格,進(jìn)而確定該運(yùn)動(dòng)物體可能會(huì)與哪些物體發(fā)生碰撞.
3局部檢測(cè)階段
通過空間剖分方法我們將大多數(shù)遠(yuǎn)處的碰撞對(duì)象已經(jīng)過濾掉,局部檢測(cè)的主要工作就是對(duì)運(yùn)動(dòng)對(duì)象附近的物體進(jìn)行碰撞檢測(cè).局部檢測(cè)階段分為粗略檢測(cè)層和精確檢測(cè)層兩個(gè)部分.在粗略檢測(cè)層中,我們知道虛擬場(chǎng)景中運(yùn)動(dòng)對(duì)象的速度一般不會(huì)太快,在某一很短的時(shí)間片內(nèi),只有與之特別貼近的極少物體才會(huì)與之產(chǎn)生碰撞,而該運(yùn)動(dòng)對(duì)象所處單元格及鄰近單元格的大多數(shù)物體是不必發(fā)生碰撞的.因此,我們?yōu)樵撨\(yùn)動(dòng)對(duì)象建立一個(gè)碰撞檢測(cè)空間如下圖1所示,即在某一時(shí)間片內(nèi)那些特別貼近并可能發(fā)生碰撞的物體的集合,將碰撞檢測(cè)范圍進(jìn)一步縮?。酉聛?,我們將進(jìn)入碰撞檢測(cè)空間的對(duì)象的層次包圍盒樹的信息調(diào)入內(nèi)存,進(jìn)行精確的碰撞檢測(cè),首先檢查兩物體最外層的包圍球是否相交,如果不相交,剛碰撞未發(fā)生.若相交,則進(jìn)一步對(duì)兩物體的層次包圍盒二叉樹進(jìn)行相交測(cè)試.
二、編程交互方法
在創(chuàng)建虛擬場(chǎng)景時(shí),我們也可以使用Script節(jié)點(diǎn)和外部程序接口EAI來實(shí)現(xiàn)功能復(fù)雜的交互.
1內(nèi)部Script節(jié)點(diǎn)
Script節(jié)點(diǎn)的基本功能是通過eventIn事件來接收其他節(jié)點(diǎn)發(fā)來的事件信息,在節(jié)點(diǎn)內(nèi)部使用程序設(shè)計(jì)語言對(duì)其進(jìn)行處理計(jì)算,然后再通過eventOut事件把信息回傳給Script節(jié)點(diǎn),使節(jié)點(diǎn)發(fā)生預(yù)期的變化效果.Script節(jié)點(diǎn)的url域中定義一個(gè)URL列表,該列表的URL值指定程序設(shè)計(jì)語言.一般常用Java或JavaScript語言.Script節(jié)點(diǎn)將程序設(shè)計(jì)語言和場(chǎng)景中的傳感器、插補(bǔ)器聯(lián)系起來.通過程序設(shè)計(jì)語言控制傳感器和插補(bǔ)器,實(shí)現(xiàn)場(chǎng)景中的交互.
2外部編程接口EAI方法
EAI定義了針對(duì)X3D的Java類,通過創(chuàng)建Java小程序接收和發(fā)送虛擬場(chǎng)景中的節(jié)點(diǎn)的事件信息,達(dá)到用戶與虛擬場(chǎng)景進(jìn)行溝通交互的目的.使用EAI方法創(chuàng)建的程序段可以與虛擬場(chǎng)景放在同一Web頁面中,Javaapplet與瀏覽器插件互相通信,使用戶真正的掌控虛擬場(chǎng)景,增強(qiáng)用戶與場(chǎng)景的交互程度.本文詳細(xì)地闡述虛擬旅游系統(tǒng)中交互技術(shù)的實(shí)現(xiàn)方法.虛擬旅游是現(xiàn)代計(jì)算機(jī)技術(shù)的全新產(chǎn)物,前景非常廣闊,它的成熟發(fā)展必將引領(lǐng)一種新的旅游風(fēng)尚.
本文作者:劉學(xué)超 單位:淮北職業(yè)技術(shù)學(xué)院