網格優化:潰堤之穴,一個也不能放過
在之前的《網格優化中,你遇到過哪些吃效能的設定》一文中,我們簡單講解了在專案開發過程中容易被忽略的網格相關的屬性設定。無論是大家在開發時的疏忽,還是相關知識點的缺失,這些問題的積累最終都會反映到專案的效能表現上。為此,我們將這些規則列出,並且以一個個知識點的形式逐一解讀。
今天,我們來繼續剖析【UWA本地資源檢測】中和網格設定相關的規則:“Normal屬性的網格”,“開啟Read/Write選項的網格”和“蒙皮網格骨骼數過大”。我們將力圖以淺顯易懂的表達,讓職場萌新或優化萌新深入理解。
1、包含Normal屬性的網格
本條規則針對的是網格的Normal屬性。在實際運用中,如果網格涉及到了光照、陰影等的應用與計算,那麼就需要在網格中匯入Normal屬性,以達到更好的例如高光、漫反射等表現效果。
和前文講述的網格Tangent屬性類似,Normal屬性匯入後會對空間和載入效能造成影響。所以在不需要的情況下,我們最好去除網格資源冗餘的Normal屬性。
2、開啟Read/Write選項的網格
如同Tips裡面指出的,Read/Write 選項啟用後,將會允許CPU對網格的頂點、三角形等屬性進行讀寫,這就需要在記憶體中產生網格資料的副本,便於對網格進行實時的編輯和修改,用來達成例如某些網格的動態效果的展示。下圖所展示的Demo就在Runtime使用指令碼對Mesh屬性進行了動態地修改:
開啟Read/Write後,一個網格資料就會有接近2倍的記憶體消耗。不需要進行動態編輯和修改的網格一旦開啟了Read/Write選項,就會產生不必要的記憶體開銷。
本條規則會篩選出所有開啟了Read/Write選項的網格,以供開發團隊進行相應的選項關閉和優化。需要提醒的是,對於需要呼叫函式StaticBatchingUtility.Combine進行合批的Mesh,以及部分Unity版本中粒子系統裡使用到的Mesh,它們的Read/Write選項依然需要保持開啟。
UWA曾對網格資源進行過相關的深度解析和對比測試,大家可以參考一下相關的文章:《Unity載入模組深度解析(網格篇)》
3、蒙皮網格骨骼數過大
對於帶有SkinnedMeshRenderer的模型,UWA本地資源檢測會掃描其繫結的骨骼。
如果模型的骨骼數量較大,那麼在執行時會有較高的效能開銷,從而對整體的專案效能造成影響。對於該規則目前UWA給的推薦閾值為50,我們建議研發團隊對模型的骨骼數進行限制,將該類美術資源的效能開銷控制在一個合理的範圍內。
需要說明的是,每一項檢測規則的閾值都可以由開發團隊依據自身專案的實際需求去設定合適的閾值範圍,這也是本地資源檢測的一大特點。同時,也歡迎大家來使用UWA推出的本地資源檢測服務,可幫助大家儘早對專案建立科學的美術規範。
萬行程式碼屹立不倒,全靠基礎掌握得好!
效能黑榜相關閱讀
《那些年給效能埋過的坑,你跳了嗎?》
《那些年給效能埋過的坑,你跳了嗎?(第二彈)》
《掌握了這些規則,你已經戰勝了80%的對手!》
相關文章
- 網格優化中,你遇到過哪些吃效能的設定?優化
- 我的if else程式碼純淨無暇,一個字也不能簡化
- 優化同事發過來的一個sql優化SQL
- VuePress 部落格之 SEO 優化(三)標題、連結優化Vue優化
- VuePress 部落格之 SEO 優化(二)之重定向Vue優化
- VuePress 部落格之 SEO 優化(一)之 sitemap 與搜尋引擎收錄Vue優化
- 通過 Docker 化一個部落格網站來開啟我們的 Docker 之旅Docker網站
- 透過 Docker 化一個部落格網站來開啟我們的 Docker 之旅Docker網站
- Ol4網格生成以及優化優化
- VuePress 部落格優化之開啟 HTTPSVue優化HTTP
- 九、Android效能優化之網路優化Android優化
- Android 效能優化(八)之網路優化Android優化
- 一個缺乏索引和統計資訊的優化過程索引優化
- oracle優化一例之sql優化Oracle優化SQL
- 廣電:電視不能播的 網路也不能播
- 一個SQL優化SQL優化
- netty系列之:一個價值上億的網站速度優化方案Netty網站優化
- VuePress 部落格優化之擴充 Markdown 語法Vue優化
- VuePress 部落格優化之開啟 Gzip 壓縮Vue優化
- VuePress 部落格之 SEO 優化(四) Open Graph protocolVue優化Protocol
- VuePress 部落格之 SEO 優化(六)站長工具Vue優化
- 無所不能的人工智慧也會被一張圖片騙過?人工智慧
- 18個網站優化技巧網站優化
- 「GAN優化」什麼是模式崩潰,以及如何從優化目標上解決這個問題優化模式
- 一個sql的優化SQL優化
- 一個網站完整詳細的SEO優化方案網站優化
- VuePress 部落格優化之新增資料統計功能Vue優化
- VuePress 部落格優化之增加 Vssue 評論功能Vue優化
- VuePress 部落格優化之開啟 Algolia 全文搜尋Vue優化Go
- 一個空間可以放幾個網站嗎網站
- 海量之道之弱聯網優化優化
- 一條sql的優化過程SQL優化
- 【MySQL】效能優化之 order by (一)MySql優化
- oracle之優化一用group by或exists優化distinctOracle優化
- 記一個SQL優化案例SQL優化
- 一個效能優化的案例優化
- VuePress 部落格優化之增加 Valine 評論功能Vue優化
- Android記憶體優化之封裝九宮格Android記憶體優化封裝