韓桂明
(桂林電子科技大學(xué)信息科技學(xué)院,廣西桂林,541004)
虛擬現(xiàn)實(shí)技術(shù)今年來在計(jì)算機(jī)領(lǐng)域引起廣泛關(guān)注,采用現(xiàn)代化的計(jì)算機(jī)技術(shù)生成逼真的視、聽、觸覺等多重感應(yīng)的虛擬環(huán)境。隨著社會(huì)的發(fā)展,虛擬現(xiàn)實(shí)技術(shù)在軍事、信息技術(shù)等各個(gè)領(lǐng)域應(yīng)用越來越廣泛。
Unity3d 平臺(tái)作為一種三維虛擬現(xiàn)實(shí)游戲平臺(tái),可以充分、實(shí)時(shí)的處理大量的三維模型。本文旨在Unity3d 平臺(tái)上,對(duì)門關(guān)鍵技術(shù)碰撞檢測(cè)展開研究及實(shí)現(xiàn),包括碰撞區(qū)域觸發(fā)和射線觸發(fā)碰撞兩種開門關(guān)門方式,還有自動(dòng)開門和按鍵觸發(fā)兩種操作方式。
在Unity3d 平臺(tái)中對(duì)房間模型進(jìn)行操作之前,首先在3DMax三維軟件中建立教室房間的模型,包括房間的墻壁、窗戶、門、地板和玻璃等模型,并賦予相應(yīng)的材質(zhì),使房間模型呈現(xiàn)更加逼真。房間的模型如圖1 所示:
圖1 3DMax 房間模型
本文討論的三維房間模型是利用三維軟件3DMax 完成建模和貼圖后,導(dǎo)出為FBX 文件導(dǎo)入到Unity3d 平臺(tái)中。在導(dǎo)出FBX文件之前,需要將3DMax 中的單位設(shè)置為m,并且Y 軸方向向上。
通過在Unity 平臺(tái)中建立C#腳本,并附到相應(yīng)物體對(duì)象門上,可以實(shí)現(xiàn)開門關(guān)門和自動(dòng)開啟按鍵觸發(fā)開啟等功能。
碰撞區(qū)域觸發(fā)可以實(shí)現(xiàn)自動(dòng)開啟和關(guān)閉門,也可以實(shí)現(xiàn)鍵盤觸發(fā)開啟和關(guān)閉門,這里選擇碰撞區(qū)域觸發(fā)自動(dòng)開啟和關(guān)閉門對(duì)象,射線觸發(fā)碰撞按鍵觸發(fā)開啟和關(guān)閉門對(duì)象。
所謂“碰撞區(qū)域觸發(fā)”是指以門對(duì)象為中心,建立一個(gè)立方體碰撞區(qū)域,如圖2 所示:
圖2 場(chǎng)景中的碰撞區(qū)域
2.1.1 碰撞區(qū)域算法
碰撞區(qū)域的立方體區(qū)域有三維圖形坐標(biāo),因此三維坐標(biāo)變量分別設(shè)為,碰撞區(qū)域觸發(fā)函數(shù)設(shè)為
F(X,Y,Z)=1 表示進(jìn)入碰撞區(qū)域
F(X,Y,Z)=0,表示離開碰撞區(qū)域。
2.1.2 碰撞區(qū)域觸發(fā)門對(duì)象程序流程
圖3 碰撞區(qū)域觸發(fā)門對(duì)象程序流程圖
當(dāng)?shù)谝蝗朔Q的中心三維坐標(biāo)在碰撞區(qū)域的范圍之內(nèi),則表示進(jìn)入觸發(fā)區(qū)域,相應(yīng)門對(duì)象會(huì)自動(dòng)開啟或者關(guān)閉。
2.1.2 碰撞區(qū)域觸發(fā)C#腳本
所謂“射線觸發(fā)碰撞”是指獲取鼠標(biāo)的坐標(biāo),從Main Camera 到鼠標(biāo)的坐標(biāo)處發(fā)出一條射線,并用hit.collider.gameObject
.tag 判斷是否掃描對(duì)象是Door,如果是,則執(zhí)行相應(yīng)的動(dòng)作。
2.2.1 射線觸發(fā)碰撞程序流程
圖4 射線觸發(fā)碰撞程序流程圖
2.2.2 射線觸發(fā)碰撞C#腳本
當(dāng)掃描對(duì)象是門時(shí),此時(shí)判斷鍵盤P 是否按下,如果按下P,則門會(huì)開啟或關(guān)閉。通過判斷掃描對(duì)象、鍵盤按鍵P 以及門的狀態(tài),實(shí)現(xiàn)相應(yīng)的開門關(guān)門功能。
通過對(duì)門對(duì)象的碰撞檢測(cè)關(guān)鍵技術(shù)研究,討論并實(shí)現(xiàn)了虛擬現(xiàn)實(shí)在室內(nèi)漫游和室內(nèi)設(shè)計(jì)系統(tǒng)中的關(guān)鍵應(yīng)用技術(shù)。實(shí)現(xiàn)了在Unity3d 中,通過鍵盤控制、檢測(cè)門的狀態(tài),且給出了可行、高效的碰撞檢測(cè)算法及其實(shí)現(xiàn)。
通過使用以上關(guān)鍵技術(shù)的室內(nèi)設(shè)計(jì)和漫游系統(tǒng),設(shè)計(jì)簡(jiǎn)單方便,可以進(jìn)一步突出場(chǎng)景的真實(shí)感和實(shí)時(shí)性,功能更加完善,人機(jī)界面更加友好、互動(dòng)性更強(qiáng)。另外本文討論研究的關(guān)鍵技術(shù)可以應(yīng)用于其它包括電子、科技、安全、醫(yī)學(xué)成像等相關(guān)的虛擬現(xiàn)實(shí)和仿真。
[1] 卞峰,江漫清,桑永英,等.虛擬現(xiàn)實(shí)及其應(yīng)用進(jìn)展 [J]. 計(jì)算機(jī)仿真,2007(6):1-4.
[2] 倪樂波,戚鵬,遇麗娜,等.Unity3d 虛擬展示技術(shù)的研究與應(yīng)用 [J].數(shù)字技術(shù)與應(yīng)用,2010(12):54-55.
[3] 干建松.基于Unity3d 的室內(nèi)漫游的關(guān)鍵技術(shù)研究 [J].鹽城工學(xué)院學(xué)報(bào),2011(4):56-59.