DrawCall 最佳化 .

來源:互聯網
上載者:User

標籤:blog   http   使用   資料   2014   art   

unity3D 對於移動平台的支援無可厚非,但是也有時候用Unity3D 開發出來的應用、遊戲在移動終端上的運行有著明顯的效率問題,比如卡、畫質等各種問題。自己在做遊戲開發的時候偶有所得。對於主要影響效能的因素做個總結。

 

主要因素有:

        1.      Saved by batching 值過大   ---- > 這個值主要是針對Mesh的批處理,這個值越高,應用就越卡   

        2.     Drawcall 值過大 ---- >  Drawcall 值過大,所需要的 GPU 的處理效能較高,從而導致CPU的計算時間過長,於是就卡了

        3.     點、面過多           ---- > 點、面過多,GPU 根據不同面的效果展開計算,並且CPU計算的資料也多,所以效果出來了,但是卡巴斯基

由於 Saved by batching 和 Drawcall 值過大所引起的卡的問題我所做的最佳化方式有:

        1.    對於模型 :Mesh 合并,有個不錯的外掛程式(DrawCall Minimizer   --->  直接上Asset Store 下載即可,免費的,而且有文檔,很容易上手)

        2.    對於UI  :  盡量避免使用Unity3D內建的 GUI 換用 NGUI或者EZGUI;因為這兩個UI外掛程式對於UI中的圖片處理是將UI圖片放置在一個 Atlas 中,一個 Atlas 對應一個Drawcall

        3.   對於燈光: 可以使用 Unity3D 內建的  Lightmapping 外掛程式來烘焙情境中的燈光效果到物體材質上 

        4.  對於情境: 可以使用 Unity3D 內建的 Occlusion Culling 外掛程式把靜止不動的情境元素烘焙出來

        4.   對於特效:盡量把材質紋理合并

對於Unity3D 在移動終端上支援的Drawcall 數到底多少,主要是跟機子效能有關的,當然也不是說值小效能就一定沒問題(本人親測,也有17就卡的,主要是模型材質紋理過大所引起的),目前我做的是70左右的,還OK,挺正常的

 http://blog.csdn.net/jeksonal/article/details/8804196

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.