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