當前位置:
首頁 > 科技 > Unity場景美術資源優化,可以從這幾方面著手

Unity場景美術資源優化,可以從這幾方面著手

作者:喬長磊

概述:

在遊戲製作中,絕大部分遊戲的場景美術資源都會佔用設備相當大的儲存和計算量,而且遊戲運行起來還有其他如角色、動畫、特效、UI、貿易和戰鬥交互及AI、尋路等程序系統的調用和運行。對場景美術資源進行一定的優化就可以為其他資源留出更多的空間,使得遊戲跑起來更為流暢。

unity這個遊戲引擎在大部分移動平台上對遊戲場景美術資源量的支持還是很高的。在主流的手機上(驍龍835晶元手機或IPHONE7)純美術場景同屏面數30萬左右運行流暢,遊戲實際製作中控制在5-6萬面以內應該沒什麼壓力。當然根據不同類型遊戲和使用的不同技術製作的遊戲對美術資源支持大小有所不同。

下面是一些用Unity引擎開發遊戲時對場景美術資源優化的總結和基於U11手機用Unity開發VR內容的場景美術的優化測試。

主要從模型、貼圖、燈光、鏡頭和場景設定幾個方面講述。

一、模型

減面:對場景模型減面優化是最常見的優化操作。主要是去掉對模型造型沒有影響的面,用儘可能少的面數表達清楚模型的結構和造型。比如:物件非關節點及物件背面、內部不會看見的面刪掉。

合併模型:合併同一小範圍內的非交互類的靜態小物件,同時合併小物件的貼圖。這樣可以減少DRAW CALL的數量。如,一組不同大小的小草,一組大小形狀不同的石頭,一個書架和上面放置的很多書籍等。把這些小物件合併成一個object,貼圖也合成成一張貼圖。高端手機平台上draw call一般控制在300左右。

LOD:建築和複雜的物件用LOD模型和遠處剔除來減少同屏面數。地形的LOD系統也可以對地形的面數做很大的優化。

模型的重複利用:相同的多個物件在unity內複製使用,複製的多個物體在引擎計算上算一個物體。但也不可複製太多個,太多會對內存帶來很大壓力。相同的物件太多,建議把幾個合併成一組做為一個Object,多做幾組,再進行複製。參考。

地形優化:如果是用unity自帶的地形工具製作的地形,可以用T4M插件轉化成T4M格式地形,設置一個頂點值轉化後可以對地形優化很多。T4M也可以設置lod模型。

以我做過的一個測試為例:優化前,地形是1000*1000的。就是(1000-1)*(1000-1)=998001(面),將近100萬面。轉化頂點值設為100,轉化後的面為19602,才近2萬面。

二、材質貼圖

貼圖大小:在移動設備上的貼圖最大要控制在1024和512大小,可少量使用2048大小的貼圖,以1024、512大小貼圖為主。

重複貼圖的使用:大面積相同材質使用1-3種貼圖交替重複覆蓋,通過光影變化打破貼圖的重複感。

小物件的貼圖合併,上文有講,單個物體的貼圖最好是一張,最多不易超過3張。相同貼圖的材質球統一。

少用透明貼圖,能不用就不要用。透明貼圖非常消耗GPU資源。

支持Mipmap, Mipmap 會增加遊戲包體的大小和佔用一定量的內存,但在遊戲中Mipmap的渲染可以減少顯存帶寬,降低渲染壓力,隨著相機的推遠貼圖會隨之切換成低像素的體貼,從而節省資源開支。過的Mipmap使用會對內存造成很大壓力,因此建議只對大物件設置Mipmap。

(unity會根據相機距離由近到遠生成8張像素逐漸降低的貼圖,這裡只截取了5張,從左往右依次是原圖至Mipmap生成的低像素貼圖)

小場景可以用PBR材質,用PBR材質就一定要用實時燈光才有效果。大場景避免使用PBR材質,大場景儘可能用烘焙光影來達到光照效果。烘焙的場景模型就不要用法線貼圖了,貼了也沒效果,還佔空間資源。

貼圖壓縮,對貼圖進行PVRT(Ios)或是ETC(Android)格式的壓縮可以減少大量內存消耗。

建議場景的材質可以用substance材質系統轉成.sbsar 格式材質。 Substance材質可以大大壓縮貼圖數據的大小但不損失貼圖質量。

如下圖所示:33.8MB的.tga格式貼圖製作成.Sbsar格式材質之後只有3.8MB。

三、燈光

1、燈光的數量:室外開放式大場景建議只用一盞平行光。室內場景可適當多一點,室內環境可以用reflection probe來加強反射效果。

2、場景烘焙:大場景和比較複雜的室內場景要避免實時燈光的使用。利用UNITY的烘焙系統把光影烘焙成貼圖來實現光影效果。烘培貼圖本身是一個浩大的工程,大場景的烘培可以選擇性的去烘焙。UNITY里自動分UV功能不好控制,所以一般在maxMaya里分好第2套UV,也可以直接在maxMaya里烘焙好lightmap導入到unity里。

UNITY提供了混合模式燈光,所以我們可以用混合燈光來實現LIGHTMAP與實時燈光結合。既:一個大場景中,大件如建築、地形佔據畫面較大的物件烘焙lightmap,小物件繁多,佔據畫面的面積很小可以不用烘焙,把燈光設置為mixed模式。

四、其他

攝像機上少用鏡頭效果,有選擇性的使用。

特殊的Shader慎用。

美術資源的優化可以從最早設定場景的時候就開始考慮。如ARPG遊戲的關卡根據情況能用管道式的場景就避免設定成全開放式的室外場景。

(這是仙劍奇俠傳5的場景和地圖,根據劇情需要著重製作路徑兩邊的場景,其他地方利用障礙遮擋,使玩家不能過去,就可以概括簡化交代一下。)

在陸地上玩為主的遊戲就避免設計飛到空中的設計。在近空俯視場景非常耗資源。

開放式大場景中從設計上就要避免有過多的可破壞性物件,場景中可交互的點要清晰,避免大而全的設計,要注意取捨。

(這也是仙劍奇俠傳的一個小鎮場景,可交互的點很清晰,其他建築NPC交互就可簡化製作或者不做交互。)

我做過的一個場景優化測試的數據如下:

優化前:

1、這個場景使用UNITY自帶地形,上面有大量的植被草地,30多棟廢棄建築,地上和建築上有繁多的植被野草、廢紙、酒瓶、石塊等,橫豎大小10條街道左右,街上有大量路燈、路牌、油桶等細節。

2、場景本身用了LOD系統。

3、總體面數在200多萬。小物件在15000多個。

在PC上跑起來幀數只有40多幀,在835晶元手機上畫面嚴重卡頓,跳幀嚴重。

優化方案:

1、把地形用T4M插件轉化成T4M格式,大規模減少遠處樹木植被。優化下來提高了5幀左右。

2、街道上的小物件刪減和合併,原場景中界面上小物件過多,路燈過密,做了適當刪減,對小範圍內的小物件模型進行模型和貼圖的合併。大概提高7幀左右

3、透明貼圖的減少,原場景是廢墟,所以建築上用了大量的透明題圖做藤蔓,對渲染消耗太大,進行適度刪減,大概刪掉一半,提高10幀左右。

4、對建築,街道和大地形、大物件進行了lightmap烘焙。小物件用燈花的混合模式實時照明。大概提高30幀左右

5、減少原場景中的鏡頭特效。原場景中鏡頭特效用了7個,關掉了Antialiasing As Post Effect、Vignetting、SSAO三個鏡頭效果,這三個特效對畫面影響較小,大概提高了10幀左右。

最終優化後面數為70多萬面。FPS為100幀左右。

總結:

美術場景資源的優化主要從模型、貼圖、燈光、特效等方面去著手,對應的是提高CPU、GPU、內存等硬體的使用效率。優化的細節還有很多,比如場景特效可盡量用動畫去實現,避免過多的粒子特效,場景的碰撞體單獨用建模去做不要用unity默認的碰撞體等等。一個遊戲的後期優化是多方面的,包括場景、角色、動作、特效、音效、動畫、AI及程序運算等等,場景上能多優化一點,就可以給其他資源讓出一點空間。

----------------------

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!

TAG: |