馮珊珊
(遼寧建筑職業學院 遼寧 遼陽 111000)
?
虛擬仿真系統建設技術的分析與應用
馮珊珊
(遼寧建筑職業學院 遼寧 遼陽 111000)
本文以虛擬仿真實訓平臺開發設計過程為例,對建設過程中的常用軟件進行比較和分析,重點論述Unity3D的建模規范,及如何有效進行模型建立。
虛擬仿真系統;建設技術;應用
隨著時代的發展和科技的進步,越來越多的企業和學校在案例展示和教學實訓中采用虛擬仿真的形式,更好的突出企業的品牌形象或教學效果。無論是哪種應用場合,虛擬環境的建立都離不開三維建模軟件、數據庫和系統設計軟件三大類軟件,下面以虛擬仿真實訓平臺的建設為例對建模技術進行介紹。
(一)建模軟件簡介。常用的三維建模軟件主要有以下三種:3DMAX,SketchUp,以及Maya。下面對三種軟件的特點和優勢進行詳細介紹。
1.3DMAX。它功能非常強大,廣泛應用于游戲模型制作,近年在建筑設計領域也得到了廣泛的應用。該軟件中文版本和英文版本同樣具備,操作便捷簡單,發展的已經非常成熟了。
本設計選擇使用3DMAX,由于其在建立靜態的三維模型時,動畫可以用代碼來實現,在制作精度要求較高的場合非常合適。而且,絕大多數的3D引擎平臺都支持3DMAX導出的模型,它是目前市場上三維的建模平臺中最受推崇使用的。
2.SketchUp。它是GOOGLE(谷歌)公司所開發的三維建模軟件。它具備自動捕捉功能,能將模擬使用鉛筆繪制的圖形線條自動捕捉。同時,GOOGLE公司的3D模型庫中具有很多既定的SketchUp格式的模型。因此,采用SketchUp軟件可以避免很多繁重的、重復的模型建立工作,所以,SketchUp的學習也非常必要。
3.Maya。它是AutoDesk公司研發的一款應用廣泛、功能強大的建模軟件,它的功能與3DMAX類似,但更適用于動畫和特效的制作。
(二)數據庫軟件。伴隨著現代技術的發展,數據管理已經從以往簡單的數據存儲和數據管理逐步轉變成按照數據的結構來組織數據、管理數據、存儲數據的大型倉庫,而這種大倉庫就是我們常用的數據庫。
SQLserver是微軟公司開發的關系數據庫管理系統,它作為平臺兼容性能良好,是WINDOWS操作系統中最為方便的數據庫平臺。并且界面友好,容易操作,編程接口豐富。
本次設計采用SQLserver2000數據庫,它與Unity3D更便于連接,并且應用廣泛,出于通用性的考慮,采用SQLserver2000數據庫。需要強調的是:SQL數據庫如果要連接Unity3D,則需要版本保持在SQLserver2000SP4以上,否則無法完成連接。
(三)系統設計軟件。虛擬仿真實訓平臺以游戲模式設計任務環節,包括第一視角虛擬漫游,也包括任務的領取、完成和晉級。其模式與游戲有很多相似之處,采用游戲引擎完成平臺系統的設計可以說是一個非常好的選擇[1]。
Unity是一款全面整合了三維場景、動畫效果和三維視頻的專業游戲引擎,它是UnityTechnologies公司開發的。虛擬電子車間實訓平臺選擇Unity3D作為系統開發平臺,主要由于它具備以下三個突出優點:(1)操作簡便、容易上手。(2)開發語言多樣。(3)發布范圍廣,通用性良好。
(一)Unity3D的主要特征
1.層級性綜合開發環境,視覺化編輯手段,詳盡的屬性編輯器及動態資源預覽。具有獨特的層級性組織架構,可以將物體之間建立母子關系,使系統層次更加明確。層級性的組織管理形式也更符合人們的思維模式,開發者使用起來更容易上手[2]。
2.資源的自動導入。項目中的資源可以被自動導入,還可以根據資源的改動進行自動更新。可以支持大部分主流三維建模軟件,包括3DMAX,SketchUp,以及Maya等。
3.支持凹凸貼圖(bumpmapping)、反射貼圖(reflectonmapping)、環境剔除(screenspace)、陰影貼圖(shadowmap)技術,并支持渲染紋理(rendertotexture)和后處理(postprocessing)效果。
4.支持使用shaderlab語言進行shader編寫,可分為頂點著色器和像素著色器。
5.內置使物體具備重力、阻力、速度以及加速度的屬性設置,對NIVDIA中的Physxphysicsengine支持,從而使虛擬的物體具備真實世界中物理反饋的表達。
(二)Unity3D的建模規范。Unity3D中模型的加載會占用內存,場景內如果模型數量較多,則系統很可能存在卡頓現象,無法流暢運行。因此,建模的標準之一就是重視簡模模型的使用,模型的面數盡量不要超過5000,將模型的面數盡可能的控制[3]。
下面簡要列出一些建模的準則和面精簡的小技巧:(1)巧用貼圖替代模型的建立。例如需要表現一些細長狀的物體,如窗欄、扶手等物體時,就可以采用這種技巧減少模型的數量,避免渲染時出現的鋸齒和閃爍等現象。(2)控制場景中模型數量,模型的分布要均勻,盡量轉化多邊形物體或使用塌陷命令。(3)合并場景中距離較近的同樣材質的模型,巧妙利用附加方式。(4)嚴格控制模型不同面之間的距離,以免彼此距離過近出現閃爍現象。確實距離過近時,可以通過面的嵌套完成制作。(5)刪減底面、高處邊沿等看不見或不被注意的面,從而減少面的總數。
在建模時,相似的保準始終存在,不論什么引擎平臺都對單位、材質球尺寸有明確要求。
Unity3D除了遵循這些必要的要求之外,還需要遵守一些要求:命名必須使用英文、材質支持有要求等。
下面具體介紹Unity3D的建模規范:
(1)建模單位的設定。建模一般以米為單位。為避免共、反面的出現可將面統一調到正視圖位置,直接在max中進行渲染,如果有閃爍出現則說明存在共面,如果看不到這個面則說明是反面。將模型導出模型文件(Fbx文件),存到Unity3D中,在非運行狀態下移動(上下左右方向)可檢查漏面。漏面是建模過程中出現的比較麻煩的一個問題,應在建模過程中及時檢查和修改。
(2)命名規則。Unity3D原則上不支持中文命名,原始模型、導出模型、貼圖文件必須要使用英文名稱。在max中,若采用中文名稱,子模型不容易被Unity找到。那是因為模型是以子模型的名稱出現在Unity菜單中的,中文名能造成模型的丟失。只有材質的名稱可以使用中文名。
(3)材質要求。Unity3D對材質有特殊要求,僅標準材質和標準材質下的多維子材質(Multidimensionalsub-materials)被Unity支持。貼圖方面,只有位圖文件類型貼圖、不帶通道的JPG貼圖以及帶通道的TGA貼圖被Unity3D所支持。并且通道要求顏色反射、自發光以及不透明度。
(4)模型備份標準和提交方式。所有烘焙貼圖、原始貼圖、烘焙前后模型以及未塌陷的原始模型,即全部貼圖和相應文件都應該保存在統一的文件夾下。保存時注意文件齊全,便于后續的修改和使用。
綜上,本文重點論述虛擬仿真實訓平臺開發過程中所用到的軟件,對所用軟件Unity3D、3DMAX與其他同類軟件進行比較分析,并詳細分析Unity3D在建模過程中的規范標準、技術難題,希望能為其他虛擬系統的建設提供參考意見。
[1]孫長勇.虛擬現實中三維建模技術方法的分析與研究[D].解放軍信息工程大學,2004
[2]楊建強.虛擬現實認識問題研究[D].重慶大學,2006
馮珊珊(1981.2-),工學碩士,現就職于遼寧建筑職業學院,研究方向:應用電子、虛擬仿真系統建設。