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