本篇計(jì)算機(jī)論文探討虛擬現(xiàn)實(shí)漫游系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn) ,漫游系統(tǒng)的設(shè)計(jì)以西北民族大學(xué)大學(xué)生實(shí)踐創(chuàng)新中心為研究對(duì)象,利用3DS MAX、Unity3D等軟件,探討了虛擬現(xiàn)實(shí)漫游系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)過程以及設(shè)計(jì)過程中需要注意的一些技術(shù)上的關(guān)鍵問題。漫游系統(tǒng)的設(shè)計(jì)實(shí)現(xiàn)了交互、自尋路徑、碰撞檢測(cè)等功能,真實(shí)的還原了大學(xué)生實(shí)踐創(chuàng)新中心場(chǎng)景。
《計(jì)算機(jī)系統(tǒng)應(yīng)用》(月刊)創(chuàng)刊于1991年,由中國(guó)科學(xué)院軟件研究所主辦。辦刊宗旨:宣傳推廣信息技術(shù)在各行各業(yè)的應(yīng)用。重點(diǎn)是宣傳介紹計(jì)算機(jī)應(yīng)用系統(tǒng)的建設(shè)(包括系統(tǒng)的規(guī)劃、設(shè)計(jì)與開發(fā)等方面)、信息技術(shù)的應(yīng)用研究與開發(fā)成果以及相關(guān)技術(shù)的分析、探討與應(yīng)用,系統(tǒng)建設(shè):面向中高層管理人員與應(yīng)用系統(tǒng)設(shè)計(jì)的專業(yè)人員。榮獲中文核心期刊(2000)。
1 系統(tǒng)概述
虛擬現(xiàn)實(shí)漫游系統(tǒng)是利用三維建模軟件3DsMAX、MAYA等加以游戲引擎如UDK、Unity3D等的配合來實(shí)現(xiàn)在電腦中再現(xiàn)現(xiàn)實(shí)世界的技術(shù)。西北民族大學(xué)大學(xué)生實(shí)踐創(chuàng)新中心的設(shè)計(jì)利用3ds max軟件建立模型,Photoshop軟件處理貼圖,最后將模型導(dǎo)入unity3d中設(shè)計(jì)游戲引擎并發(fā)布。
2 數(shù)據(jù)采集
數(shù)據(jù)采集階段是系統(tǒng)開發(fā)的基礎(chǔ),西北民族大學(xué)大學(xué)生實(shí)踐創(chuàng)新中心漫游系統(tǒng)的數(shù)據(jù)采集包括CAD圖紙的設(shè)計(jì)、建筑參數(shù)的測(cè)量、建筑實(shí)景照片的拍攝以及室內(nèi)數(shù)據(jù)的收集等。
利用計(jì)算機(jī)輔助設(shè)計(jì)CAD導(dǎo)出的圖紙,精確搭建西北民族大學(xué)大學(xué)生實(shí)踐創(chuàng)新中心建筑模型,不僅使工作效率得到極大的提高,同時(shí)模型的精度也是非常高的。建筑的高度難以測(cè)量,利用微積分思想,通過數(shù)臺(tái)階的方式。這樣只需測(cè)量每個(gè)臺(tái)階的高度,就能通過簡(jiǎn)單的計(jì)算得到建筑的高度。
3 模型建立
3.1建筑建模
漫游系統(tǒng)制作的第一步就是模型的建立,首先,利用已有的西北民族大學(xué)大學(xué)生實(shí)踐創(chuàng)新中心CAD圖紙,將其導(dǎo)入3Ds MAX軟件,采用分層導(dǎo)出的方法進(jìn)行外場(chǎng)景建筑的制作。
3.2室內(nèi)建模
室內(nèi)建模對(duì)于還原場(chǎng)景十分重要,直接關(guān)系到后期用戶界面的體驗(yàn)效果。模型精確程度關(guān)系到后期紋理貼圖,模型不能過于簡(jiǎn)單,因?yàn)槿绻P瓦^于簡(jiǎn)單,模型就會(huì)顯得粗糙,導(dǎo)致很多細(xì)節(jié)都不能表現(xiàn)出來,模型容易失真。但是如果物體的每一個(gè)面都用三維模型的面來模擬,又容易產(chǎn)生大量的三角面,增加了每一次的渲染時(shí)間。
3.3 建模流程和模型優(yōu)化
3.3.1 三維建模流程
①涉及到多人參加建模,必須統(tǒng)一單位。
②模型中面片之間的最小間距大于場(chǎng)景中最大尺寸的二千分之一。
如果三維模型中兩個(gè)面與面之間的距離小于此數(shù)值,會(huì)出現(xiàn)這兩個(gè)面交替渲染的現(xiàn)象,從而產(chǎn)生渲染時(shí)閃爍的情況。三維模型的面片之間不允許有交叉和疊加共面現(xiàn)象,單個(gè)的模型不允許出現(xiàn)有破洞的情況,也不可以有黑色反面出現(xiàn)的情況。
③關(guān)于模型的結(jié)合問題。當(dāng)三維物體的每一個(gè)模型中所有的面片都使用3DSMax軟件經(jīng)過三維建模和添加對(duì)應(yīng)的材質(zhì)之后,將材質(zhì)相同的三維模型附加為一個(gè)整體,便于后期的移動(dòng)和渲染。
④對(duì)在同一個(gè)平面上相鄰的兩個(gè)面可以刪除公共的邊,但是不要形成凹多邊形,保證每個(gè)面都是凸多邊形。
3.3.2模型優(yōu)化
由于系統(tǒng)的資源有限,為在有限資源下使程序運(yùn)行更加流暢,必須對(duì)模型進(jìn)行優(yōu)化。在3Ds MAX中,模型的面數(shù)對(duì)游戲流暢程度的影響極大,面數(shù)越多,資源消耗越大,從而游戲流暢程度越低,所以模型優(yōu)化的一類就是減少面數(shù)。減少面數(shù)并不能隨意的減少,只有那些沒有貼圖并且看不到的面才能優(yōu)化,否則就會(huì)影響模型的外觀。
4 材質(zhì)及貼圖的制作
貼圖對(duì)于整個(gè)漫游系統(tǒng)的真實(shí)度起著至關(guān)重要的作用,整個(gè)貼圖的設(shè)計(jì)過程包括照片采集、圖像處理、貼圖。
4.1 圖片處理
利用photoshop軟件對(duì)圖片進(jìn)行處理,除了對(duì)圖片的顏色、亮度、污點(diǎn)等調(diào)整處理之外,由于大多數(shù)照片都是以仰拍的形式進(jìn)行拍照的,所以將圖片調(diào)正是貼圖質(zhì)量的關(guān)鍵。將待修改圖片置入ps中,通過選擇扭曲、縮放等功能的配合使圖片調(diào)正。貼圖像素不能太高,因?yàn)閳D片像素過高在3ds Max里難以導(dǎo)入且會(huì)增加渲染負(fù)擔(dān)。
4.2 貼圖
貼圖主要過程包括,材質(zhì)球設(shè)計(jì)、將材質(zhì)賦予物體、添加UVW貼圖。在對(duì)外場(chǎng)景建筑貼圖過程中采用孤立物體、貼圖、隱藏已貼圖物體的方式進(jìn)行貼圖,使整個(gè)過程更加方便快捷。
對(duì)于地磚等進(jìn)行貼圖時(shí)注意不能在材質(zhì)球中更改平鋪次數(shù),可以通過UVW貼圖對(duì)平鋪次數(shù)進(jìn)行修改。因?yàn)槿绻苯有薷牟馁|(zhì)球中平鋪次數(shù),將模型導(dǎo)入U(xiǎn)3D時(shí)貼圖的平鋪次數(shù)實(shí)際上將不會(huì)改變。
貼圖過程中還有一個(gè)重要的修改器--法線。在貼圖過程中我們遇到貼完圖渲染出來的卻是黑色的問題,這時(shí)為模型添加法線修改器便能輕松解決。
4.3貼圖優(yōu)化
在添加UVW貼圖后,對(duì)其進(jìn)行塌陷全部命令,使模型轉(zhuǎn)換為可編輯多邊形。建模過程中會(huì)有很多命令?yuàn)A雜重疊在模型上,這樣就會(huì)占用很大一部分內(nèi)存和CPU,從而拖慢電腦的運(yùn)行速度,對(duì)模型進(jìn)行塌陷后就會(huì)去除那些多余的命令等,把所有附加在立體模型上的修改器、貼圖、形態(tài)等特征全部固化到模型上,從而節(jié)約出大量的內(nèi)存提高電腦速度。
5 引擎的設(shè)計(jì)與實(shí)現(xiàn)
模型設(shè)計(jì)完成后,將模型導(dǎo)入unity中從而實(shí)現(xiàn)計(jì)劃的功能。目標(biāo)包括:燈光、相機(jī)的設(shè)置,自尋路徑,語音播放,碰撞檢測(cè),人機(jī)交互等功能的實(shí)現(xiàn)。
5.1 模型導(dǎo)入前準(zhǔn)備
由于3ds Max和unity3d兩個(gè)不同軟件之間的差異,制作好的模型并不能直接導(dǎo)入到unity中,我們還必須進(jìn)行一系列的處理。
單位的處理
在導(dǎo)出模型前,必須在3DMAX中將系統(tǒng)默認(rèn)單位設(shè)置進(jìn)行修改,這樣才不會(huì)在unity中出錯(cuò)。在3DMAX中,默認(rèn)的單位是毫米,而在unity中默認(rèn)的單位是米,這兩個(gè)軟件中單位不同。如果不進(jìn)行相應(yīng)的處理,將會(huì)出現(xiàn)unity中的模型非常小的情況。
模型軸向的處理
模型導(dǎo)出前,必須在3DMAX中將模型的y軸設(shè)置為向上。因?yàn)樵?DMAX中,模型的z軸是向上的,而在unity中向上的是y軸。如果不處理軸向,在3dsmax中正常的模型,導(dǎo)入到unity中將會(huì)豎起來。
5.2功能實(shí)現(xiàn)
系統(tǒng)功能主要包括人機(jī)交互、碰撞檢測(cè)、自尋路徑等功能以及燈光、相機(jī)的設(shè)置。交互功能是實(shí)現(xiàn)漫游的重點(diǎn),將‘上’、‘下’等邏輯功能封裝成角色控制器組件實(shí)現(xiàn)第一人稱視角。
碰撞檢測(cè)在3D漫游系統(tǒng)中至關(guān)重要,是模擬物體遇到障礙物時(shí)的物理反應(yīng)。例如當(dāng)對(duì)象遇到墻壁時(shí),則不能繼續(xù)前進(jìn)。通過為對(duì)象添加相應(yīng)的碰撞器,物體便能夠?qū)崿F(xiàn)碰撞檢測(cè)。
Lightmapping(光照貼圖技術(shù))是一種增強(qiáng)靜態(tài)場(chǎng)景光照效果的技術(shù),它可以通過較少的性能消耗使得靜態(tài)場(chǎng)景看上去更真實(shí)、豐富,以及更具有立體感。
在使用這一技術(shù)的時(shí)候,必須進(jìn)行一定的設(shè)置。
①啟動(dòng)unity應(yīng)用程序,打開大學(xué)生創(chuàng)新中心的模型。
②選中模型,在Inspector視圖中,勾選該對(duì)象的Static復(fù)選框即可將模
型標(biāo)記為Static,即通知unity這些物體是不會(huì)移動(dòng)的靜態(tài)物體,這類對(duì)象將會(huì)參與到光照貼圖的烘焙。
③依次打開菜單欄中的Window-Lightmapping選項(xiàng),會(huì)彈出Lightmapping視圖。選中場(chǎng)景中的光源方向,在Lightmapping視圖中的Object標(biāo)簽頁下會(huì)出現(xiàn)該光源的設(shè)置。
④在Lightmapping視圖中的Bake標(biāo)簽頁下將Mode項(xiàng)選擇為Single Lightmaps類型。更改Bounces數(shù)值為2,設(shè)置Sky Light Intensity為0.4。
⑤調(diào)整Resolution數(shù)值到60,讓光影細(xì)節(jié)更精細(xì)些。
在Scene 視圖右下角的位置,在Lightmap Display 對(duì)話框中勾選Show Resolution復(fù)選框,即可看到光照?qǐng)D在模型上的分辨率。
⑥單擊Lightmapping視圖右下角的Bake Scene按鈕,即開始生成Lightmaps。同時(shí)unity主窗口右下角會(huì)出現(xiàn)進(jìn)度條。待進(jìn)度條完成后,結(jié)果會(huì)在Scene視圖中顯示烘焙的結(jié)果。
相關(guān)論文