Unity優化之貼圖


  默認情況下當你把圖片導入到unity中時,unity會自動把圖片轉換成最適合當前平台的壓縮格式。如果你有一些特殊的需求,unity也提供了覆蓋默認壓縮格式的方法,如下圖

  在圖片的Inspector窗口可以選擇相應平台然后重寫圖片的壓縮方式。

  下圖展示了不同平台可以使用的貼圖格式

  

  在項目的開發中會根據不同需求來調整貼圖的壓縮方式。對於大部分貼圖資源,使用默認的壓縮格式即可。如果一些UI需要特別高的清晰度可以使用RGBA32/RGB24,看起來和原圖一樣。在安卓平台ETC2 是unity在官方文檔中推薦的方式,支持alpha通道,在內存占用和貼圖質量上提供了最好的平衡,並且可以適應大部分安卓手機。但如果項目要考慮某些低端機型(如紅米的部分機型),還是要使用ETC1。

在IOS平台,默認的壓縮格式是RGBA Compressed PVRTC 4 / RGB Compressed PVRTC 4。但RGBA的圖片壓縮后的效果看起來要比RGB的圖片效果差很多,所以通常的解決辦法是將帶alpha通道的貼圖分成兩個不帶通道的貼圖,一張儲存顏色信息,另一張存alpha值,和在安卓平台中使用ETC1時拆分RGBA貼圖的處理方式一樣。下圖展示了原圖和在IOS平台中壓縮為RGBA Compressed PVRTC 4后的效果,可以看到圖片糊了很多。

  

  另外貼圖的寬高要是2的次方,因為只有這樣的圖片unity才可以將其壓縮為ECT或PVRTC4格式,這類格式的圖片在內存中無需解壓,可以直接被GPC支持,占用內存少,效率還高。對於IOS平台不僅需要寬高是2的次方,還要求寬高要相等。

  所以最后結論是:

  Android:如果對貼圖質量要求高比如某些UI,使用RGBA32/RGB32。如果對質量無特殊要求而且目標機型是中高端機型,使用ETC2。如果是全機型通用,使用ECT1拆分alpha通道的方式。

  IOS:如果對貼圖質量要求高比如某些UI,使用RGBA32/RGB32。如果對質量無特殊要求,使用RGB Compressed PVRTC 4拆分alpha通道的方式。

  壓縮質量:僅比較RGB這三個通道的質量,RGBA32 > RBG16 > RGBA16 > RGB PVRTC4/ETC4 > RGB PVRTC2

  

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM