馮珊珊 遼寧建筑職業(yè)學(xué)院
Unity軟件在建模體系中的應(yīng)用及難點分析
馮珊珊 遼寧建筑職業(yè)學(xué)院
本文簡要論述的Unity 3D作為主流三維開發(fā)軟件的特點及建模規(guī)范,以及其在使用過程中比較關(guān)鍵的技術(shù)問題,如建模、渲染、碰撞檢測等難點問題,并為問題的解決提供有效的解決方案。
Unity軟件 建模體系 應(yīng)用 難點分析
Unity是一款全面整合了三維場景、動畫效果和三維視頻的專業(yè)游戲引擎,它是Unity Technologies公司開發(fā)的。Unity之所以能為眾多軟件開發(fā)人員使用、成為三維開發(fā)的主流軟件,主要由于它具備以下三個突出優(yōu)點:
1.操作簡便、容易上手。可以從外部導(dǎo)入FBX格式模型文件,還自帶第一人稱視角,只要在Unity中編輯地面信息資料,基本的虛擬漫游操作就可以被實現(xiàn)。
2.開發(fā)語言多樣。C語言和JAVASCRIP T語言都可以對Unity 3D進行開發(fā),而且,Unity 3D程序的封裝性能非常好,有豐富的插件資源可以選用,只需要相關(guān)的函數(shù)調(diào)用即可實現(xiàn)很多功能。
3.發(fā)布范圍廣,通用性良好。采用Unity 3D制作的系統(tǒng)可以發(fā)布在個人電腦、網(wǎng)頁、安卓手機系統(tǒng)、游戲盒子以及Windows電話等當(dāng)今主流平臺上,只需要修改非常少量的代碼,就可以實現(xiàn)平臺的移植。 Unity 3D的主要特征為層級性綜合開發(fā)環(huán)境,視覺化編輯手段,詳盡的屬性編輯器及動態(tài)資源預(yù)覽;、項目中的資源可以被自動導(dǎo)入,還可以根據(jù)資源的改動進行自動更新;支持凹凸貼圖(bump mapping)、反射貼圖(re fl ecton mapping)、環(huán)境剔除(screen space)、陰影貼圖(shadow map)技術(shù),并支持渲染紋理(render to texture)和后處理(post processing)效果;支持使用shader lab語言進行shader編寫,可分為頂點著色器和像素著色器;內(nèi)置使物體具備重力、阻力、速度以及加速度的屬性設(shè)置,對NIVDIA中的Physx physics engine支持,從而使虛擬的物體具備真實世界中物理反饋的表達。
Unity 3D中模型的加載會占用內(nèi)存,場景內(nèi)如果模型數(shù)量較多,則系統(tǒng)很可能存在卡頓現(xiàn)象,無法流暢運行。因此,建模的標(biāo)準(zhǔn)之一就是重視簡模模型的使用,模型的面數(shù)盡量不要超過5000,將模型的面數(shù)盡可能的控制。
(一)建模單位的設(shè)定
建模一般以米為單位。為避免共、反面的出現(xiàn)可將面統(tǒng)一調(diào)到正視圖位置,直接在max中進行渲染,如果有閃爍出現(xiàn)則說明存在共面,如果看不到這個面則說明是反面。將模型導(dǎo)出模型文件(Fbx文件),存到Unity 3D中,在非運行狀態(tài)下移動(上下左右方向)可檢查漏面。漏面是建模過程中出現(xiàn)的比較麻煩的一個問題,應(yīng)在建模過程中及時檢查和修改。
(二)命名規(guī)則
Unity 3D原則上不支持中文命名,原始模型、導(dǎo)出模型、貼圖文件必須要使用英文名稱。在max中,若采用中文名稱,子模型不容易被Unity找到。那是因為模型是以子模型的名稱出現(xiàn)在Unity 菜單中的,中文名能造成模型的丟失。只有材質(zhì)的名稱可以使用中文名。
(三)材質(zhì)要求
Unity 3D對材質(zhì)有特殊要求,僅標(biāo)準(zhǔn)材質(zhì)和標(biāo)準(zhǔn)材質(zhì)下的多維子材質(zhì)(Multidime nsional sub - materials)被Unity支持。貼圖方面,只有位圖文件類型貼圖、不帶通道的JPG貼圖以及帶通道的TGA貼圖被Unity 3D所支持。并且通道要求顏色反射、自發(fā)光以及不透明度。
(四)模型備份標(biāo)準(zhǔn)和提交方式
所有烘焙貼圖、原始貼圖、烘焙前后模型以及未塌陷的原始模型,即全部貼圖和相應(yīng)文件都應(yīng)該保存在統(tǒng)一的文件夾下。保存時注意文件齊全,便于后續(xù)的修改和使用。
(一)模型優(yōu)化
建模的過程中,一定要重視模型優(yōu)化,具體包括盡量將看不見的或相交的面刪除,盡量減少模型頂點數(shù),盡量利用Unity中的Prefab物體預(yù)置屬性。
因此模型建模上主要以效率和細(xì)節(jié)為重要指標(biāo),在確保高效率的基礎(chǔ)上,將角色的細(xì)節(jié)盡量展現(xiàn)。在實際的項目制作中,通過反復(fù)實驗,驗證了人物在B/S架構(gòu)中模型三角面確定在4500~5000左右最為合適。這個層級上的模型面數(shù)對顯示效率和渲染效果來說都是最均衡的體現(xiàn)。
(二)交互操作
交互操作是除場景模型建立和優(yōu)化之外的關(guān)鍵所在。整個場景中交互功能的開發(fā)都是由Unity 3D負(fù)責(zé)實現(xiàn)的,它將用戶和虛擬場景聯(lián)系在一起,協(xié)調(diào)整個平臺的運行。建立好的模型要先導(dǎo)入材質(zhì)后才能導(dǎo)入Unity,以免模型丟失紋理材質(zhì)。
(三)碰撞檢測
系統(tǒng)中用戶的真實感受不僅僅只是外在感覺的設(shè)計,更重要的是可以真實展現(xiàn)物體的物理特性。Unity內(nèi)置的Nvidia具有physx物理引擎,設(shè)計者可以利用該引擎高效率,且逼真的模擬剛體碰撞、摩擦效果及重力效果,從而讓虛擬場景更加生動形象。
Unity 3D 內(nèi)置了剛體碰撞檢測,也就是在物體上直接添加各種碰撞檢測。還可以對兩個碰撞體中的其中之一進行剛體組件的添加,這樣既可將物體輕松轉(zhuǎn)換為剛體。
(四)渲染
系統(tǒng)設(shè)計過程中,為了場景更加真實,對不同模型、材質(zhì)設(shè)置不同的陰影效果,從而控制模型表面不同的反射效果和折射效果,經(jīng)過渲染后的場景效果更加逼真,更利于沉浸感的增強。
綜上,本文簡要闡述了Unity 3D作為開發(fā)平臺在使用過程中比較關(guān)鍵的技術(shù)問題,如建模、渲染、碰撞檢測等難點問題,并為問題的解決提供有效的解決方案,希望能在今后的開發(fā)過程中不斷深入探索,發(fā)揮Unity軟件更大的作用。
[1]金漢均.虛擬環(huán)境中物體碰撞檢測算法研究[D](博士學(xué)位論文).華中科技大學(xué).2006.
[2]孟飛.在Direct3D程序中運用碰撞檢測[J].科技廣場.2008,(1):136-137.
馮珊珊(1981-),女,遼寧建筑職業(yè)學(xué)院自動控制系教師,研究方向:應(yīng)用電子及虛擬仿真系統(tǒng)開發(fā)。