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