張 鶴,徐承志
(湖北工業(yè)大學(xué)計(jì)算機(jī)學(xué)院,湖北 武漢430068)
由于Virtools不是三維模型制作軟件,模型從3ds Max導(dǎo)入到Virtools時(shí)可能會(huì)出現(xiàn)不被識(shí)別的特征屬性等問題[1]。當(dāng)模型中部分信息不被Virtools支持,那么在輸出時(shí),編譯器將根據(jù)自己的編譯辦法,對(duì)相應(yīng)的信息進(jìn)行轉(zhuǎn)化,其中格式和特征的本質(zhì)發(fā)生了變化,但是保留了模型在視覺等方面的感覺特征。
本文作者參與國家級(jí)大學(xué)生創(chuàng)新創(chuàng)業(yè)項(xiàng)目——“基于虛擬校園的軟件生態(tài)系統(tǒng)研究”。由于項(xiàng)目需要,作者根據(jù)所在學(xué)校實(shí)際校園環(huán)境,在3ds Max中創(chuàng)建虛擬校園模型作為Virtools場(chǎng)景模型。在建模和使用Virtools軟件過程中,通過不斷地學(xué)習(xí)與實(shí)踐,總結(jié)出一些3ds Max靜態(tài)模型導(dǎo)入Virtools后出現(xiàn)的常見問題及解決辦法。
插件是一種十分常見的技術(shù),插件結(jié)構(gòu)有利于編寫有良好的擴(kuò)充和定制功能的應(yīng)用程序[2]。3ds Max默認(rèn)的安裝程序沒有導(dǎo)出Virtools支持格式文件的插件,因此需安裝第三方導(dǎo)出插件。
3ds Max中的場(chǎng)景模型導(dǎo)出成Virtools支持的格式即.nmo文件,需要下載 Max To Virtools插件。其中.nmo文件是Virtools默認(rèn)的用于存儲(chǔ)角色和場(chǎng)景以及物體等信息的文件格式,其中包含了一個(gè)或者多個(gè)單元信息[3]。自2012版本后,達(dá)索公司不再發(fā)布導(dǎo)出插件,目前網(wǎng)上下載到的最新版本是 Max To Virtools 5.0.0.134,最高版本只支持2012的Max版本。
由于2013或2014版本Max制作的靜態(tài)模型可以在低版本Max中打開,制作的動(dòng)畫則不能在低版本中打開。因此,高版本制作的靜態(tài)模型可以通過2012及以下版本導(dǎo)出成nmo格式。
3ds Max模型在導(dǎo)出成nmo格式時(shí),會(huì)顯示一個(gè)輸出參數(shù)表,在此主要介紹導(dǎo)出靜態(tài)模型的參數(shù)設(shè)置(表1)。
表1 導(dǎo)出插件參數(shù)
根據(jù)產(chǎn)品對(duì)模型的要求,在建模時(shí)要采用相應(yīng)的建模標(biāo)準(zhǔn),這樣不僅能減少模型導(dǎo)出時(shí)出現(xiàn)的錯(cuò)誤,模型的質(zhì)量也能得到很好的控制。
3ds Max模型在導(dǎo)入Virtools后,通常比例與要求不符,會(huì)在Virtools中自動(dòng)進(jìn)行縮放操作,運(yùn)行時(shí)經(jīng)常遇到異?,F(xiàn)象,即場(chǎng)景中模型的各個(gè)部分有時(shí)并不按照規(guī)定的尺寸進(jìn)行縮放。
在三維軟件中制作一個(gè)較大或較為復(fù)雜的場(chǎng)景時(shí),如果在一個(gè)3ds Max文件中直接導(dǎo)出,會(huì)出現(xiàn)“應(yīng)用程序錯(cuò)誤”。更為復(fù)雜的大場(chǎng)面則需要多人協(xié)同完成。然而一些人建模時(shí)沒有在意模型的尺寸,因此在整合場(chǎng)景的時(shí)候,還需要調(diào)整每個(gè)物體的尺寸比例。
建議建模前先測(cè)量好物體的尺寸,由于Virtools中模型單位為m,將3ds Max的系統(tǒng)單位統(tǒng)一設(shè)置為m,場(chǎng)景合并時(shí)就不需要進(jìn)行放縮操作了,自然不會(huì)出現(xiàn)相關(guān)的問題。
一般模型的頂點(diǎn)數(shù)太多,常常出現(xiàn)的問題一個(gè)是在導(dǎo)出時(shí)出現(xiàn)“應(yīng)用程序錯(cuò)誤”,另一個(gè)是導(dǎo)入到Virtools后造成程序運(yùn)行慢,下面用一個(gè)實(shí)例來說明:
新建一個(gè)由多個(gè)立方體組成的模型,改變立方體的數(shù)量和分段數(shù),觀察導(dǎo)出效果(表2)。實(shí)驗(yàn)電腦配置:操作系統(tǒng),Windows7;CPU,AMD A4-3300MAPU with Radeon (tm)HD Graphics;內(nèi)存,4GB。表2中的數(shù)據(jù)是模型文件大小,單位是MB。其中,帶括號(hào)的數(shù)據(jù)表示模型導(dǎo)出報(bào)錯(cuò),“-”表示模型保存報(bào)錯(cuò)。當(dāng)模型中立方體分段數(shù)不變,立方體數(shù)量增加時(shí),文件大小增加,當(dāng)達(dá)到一定大小時(shí),出現(xiàn)保存出錯(cuò)情況;當(dāng)立方體的數(shù)量不變,立方體的分段數(shù)增加時(shí),文件大小增加,當(dāng)達(dá)到一定大小時(shí),導(dǎo)出報(bào)錯(cuò)。通過綜合比較得出:3ds Max模型在導(dǎo)出時(shí)出現(xiàn)"應(yīng)用程序錯(cuò)誤"與模型的大小及頂點(diǎn)數(shù)有關(guān)。
表2 應(yīng)用程序錯(cuò)誤實(shí)例數(shù)據(jù)
制作3ds Max模型時(shí),在確保形體準(zhǔn)確且達(dá)到要求的前提下,頂點(diǎn)數(shù)越少越好。盡量用最少的線來確保模型的基本形態(tài)和特征[4]。在建模時(shí)需要養(yǎng)成一個(gè)好的習(xí)慣,同時(shí)參考一些優(yōu)秀的模型。具體模型優(yōu)化,可以從簡(jiǎn)化模型和提高渲染速度[5]進(jìn)行優(yōu)化。利用3ds Max新功能建模,用算法簡(jiǎn)化模型,簡(jiǎn)化紋理處理。3ds Max場(chǎng)景模型太大,導(dǎo)出時(shí)會(huì)出現(xiàn)錯(cuò)誤,可以采用場(chǎng)景分塊技術(shù),把一個(gè)復(fù)雜的場(chǎng)景劃分成多個(gè)子場(chǎng)景分別導(dǎo)出,最后在Virtools中加載。
燈光是舞臺(tái)的生命[6],同樣每一個(gè)3D場(chǎng)景都少不了燈光,燈光在場(chǎng)景中不僅起到了照明的作用,而且決定了場(chǎng)景的基調(diào)和氣氛。相比于Virtools中只有三種燈光類型,3ds Max中燈光種類和參數(shù)更多,燈光搭配也更復(fù)雜。
Virtools中有三種光源:點(diǎn)光源是理想化為質(zhì)點(diǎn)的向四面八方發(fā)出光線的光源,為最常使用的光源種類;聚光燈有注視的放射光,適合突出局部部位的照明;平行光為全場(chǎng)景照明的方向性光源,無法設(shè)置衰減效果。
3ds Max中創(chuàng)建的燈光在導(dǎo)入Virtools后燈光類型會(huì)發(fā)生相應(yīng)的轉(zhuǎn)變(表3)。
表3 燈光類型變化表
3ds Max中模型受光與燈光照射方向有關(guān),在Virtools中除了平行光(Directional)與方向有關(guān),點(diǎn)光源(Point)和聚光燈(Spot)都有照射距離限制,最大照射距離為200m。
如圖1,在3ds Max中,沿著建筑物四周打上12盞聚光燈,調(diào)整燈光到物體的距離以及角度,距離主要取值150m,198m,200m,202m,250m,角度取值-45°,0°,45°,90°,以.nmo文件的形式輸出,導(dǎo)入Virtools,觀察單個(gè)燈光照射時(shí)模型效果。根據(jù)效果最后得出:當(dāng)距離超過200m時(shí),物體變黑,模型沒有受光。通過同樣的方式,得出點(diǎn)光源(Point)效果也是如此,而平行光(Directional)在方向確定后,模型在燈光方向上的受光面都能被照亮。
因此,在3ds Max中非平行光源到模型之間距離超過200m,導(dǎo)入到Virtools后,會(huì)出現(xiàn)物體變黑,不受光現(xiàn)象。此時(shí)燈光參數(shù)調(diào)節(jié)失去作用。建議遇到這種情況,一種方法是把燈光類型改成平行光(Directional),第二種方法是調(diào)整模型或燈光的實(shí)際坐標(biāo),使燈光與模型之間的距離控制在200m以內(nèi)。
圖1 燈光照射范圍實(shí)驗(yàn)
3ds Max中已經(jīng)賦好材質(zhì)的模型在導(dǎo)入Virtools后常常出現(xiàn)變黑、材質(zhì)顯示不完全等現(xiàn)象。由于兩個(gè)軟件系統(tǒng)之間的差異性,造成一些模型效果不一樣。那么在制作模型之前,則需要了解產(chǎn)生的原因。
模型在3ds Max中,材質(zhì)顯示正常,在導(dǎo)入到Virtools后,材質(zhì)呈黑色。
解決辦法:在virtools中首先檢查燈光,燈光與模型的距離不能超過200m,點(diǎn)擊show light,燈光便會(huì)顯示,黑色的圈表示燈光的范圍(圖2),要保證模型在燈光的照明范圍內(nèi)。第二檢查模型材質(zhì)(圖3),漫反射(Diffuse)顏色以及所使用貼圖為黑色,模型也會(huì)呈黑色。第三檢查插件參數(shù)設(shè)置,詳述在1.2節(jié)。最后檢查模型,詳述在本文4.2節(jié)。
圖2 Virtools燈光顯示設(shè)置
圖3 Virtools材質(zhì)屬性面板
對(duì)于材質(zhì)和紋理,輸出后,Virtools并不支持雙重材質(zhì)的導(dǎo)入。并且,Virtools只支持3ds Max中的標(biāo)準(zhǔn)材質(zhì),在導(dǎo)入Virtools后就會(huì)出現(xiàn)材質(zhì)只顯示部分或完全呈黑色。
3ds Max模型材質(zhì)賦貼圖需要模型具有貼圖坐標(biāo),一般模型貼圖有自己的貼圖坐標(biāo)。貼圖坐標(biāo)也可以使用UVW展開編輯,同時(shí)利用展開的UV貼圖,能繪制和制作更多需要的貼圖。有時(shí)根據(jù)項(xiàng)目需要,不能利用UV制作貼圖,而模型又需要賦多種材質(zhì),此時(shí)在模型輸出之前需要對(duì)材質(zhì)進(jìn)行烘焙。所謂烘焙,就是一種把Max光照信息渲染成貼圖的方式,而后把這個(gè)烘焙后的貼圖再貼回到場(chǎng)景中去的技術(shù)。
如圖4所示,在3ds Max創(chuàng)建一個(gè)簡(jiǎn)易飛機(jī)模型。烘焙之前,先展開模型UV貼圖(圖5),把飛機(jī)機(jī)身,機(jī)翼等不同部位展開,再繪制貼圖,繪制好后賦給飛機(jī),調(diào)整材質(zhì)參數(shù),在場(chǎng)景中打上燈光,進(jìn)行烘焙,這樣就得到了模型的最終貼圖。
圖4 飛機(jī)模型俯視圖
圖5 飛機(jī)UV展開圖
Max模型導(dǎo)入到Virtools后,材質(zhì)紋理丟失,可以在Virtools中把貼圖加載進(jìn)來。圖6中,模型wuding的貼圖“瓦”如果沒有導(dǎo)入進(jìn)來,則需在Textures把貼圖“瓦”直接拖進(jìn)來。之后右鍵材質(zhì)wuding,即圖7,在下拉列表中選中貼圖“瓦”,則材質(zhì)上賦好貼圖了。最后右鍵網(wǎng)格wuding_M(jìn)esh中“Setup”,即圖8,在 Channels中右鍵“Add Channel”,下拉列表選擇材質(zhì)wuding。模型wuding紋理便加載完成了。
圖6 紋理組件面板
圖7 材質(zhì)設(shè)置面板
圖8 材質(zhì)通道添加面板
綜上,在制作Virtools場(chǎng)景模型時(shí),3ds Max版本盡量選擇2012版本。模型盡量優(yōu)化。由于Virtools中燈光距離限制,在3ds Max布局燈光時(shí)可以根據(jù)場(chǎng)景大小來選擇燈光類型,一般的燈光打法可以使用常見的三點(diǎn)光源法[7]。材質(zhì)使用標(biāo)準(zhǔn)材質(zhì),貼圖盡量烘焙。
通過在3ds Max中制作模型過程中遇到的問題得出的經(jīng)驗(yàn),用具體的數(shù)據(jù)分析了模型導(dǎo)入到Virtools中出現(xiàn)的問題及解決辦法。有些方法還需要改進(jìn),一些具體的細(xì)節(jié)可以查閱相關(guān)資料??傊谥谱鱒irtools場(chǎng)景模型過程中,要不斷地學(xué)習(xí)和實(shí)踐來總結(jié)經(jīng)驗(yàn)。在模型的優(yōu)化上還需要進(jìn)一步探究,建出更加符合要求的模型。
[1] 孫 倩.基于3DS MAX的三維建模及其在Virtools環(huán)境中的應(yīng)用[J].中國科技信息,2008(06):241-243.
[2] 李延春.軟件插件技術(shù)的原理與實(shí)現(xiàn)[J].計(jì)算機(jī)系統(tǒng)應(yīng)用,2003(07):41-44.
[3] 王 方,王 崢.3ds Max模型及動(dòng)畫輸出為 Virtools格式的方法[J].現(xiàn)代電影技術(shù),2007(10):94-95.
[4] 劉婧婧.3ds Max模型與動(dòng)畫導(dǎo)入Virtools時(shí)遇到的問題以及解決方法[J].現(xiàn)代電影技術(shù),2010(07):49-54.
[5] 趙 玲.基于3DMAX的模型優(yōu)化的研究[J].科學(xué)技術(shù)與工程,2010(09):6 565-6 568.
[6] 王士軍.淺談燈光藝術(shù)的作用[J].文化時(shí)空,2002(08):90.
[7] 雷兆云.照明語言與技法[M].北京:中國傳媒大學(xué)出版社,2009.