#<center>Laya資源優化(圖片、Josn、3D模型文件)</center> ##一、圖片佔用內存計算: 在webGL
模式下:圖片高度 * 圖片寬度 * 一個像素佔用的字節數(width * height * 4 byte,如:800 * 600的圖片佔用內存1.83M = 1875KB = 1920000B = 600 * 800 * 4 byte)。 ##二、紋理壓縮(2D、3D) 效果:降低顯存約75%,減少圖片解碼卡頓現象。 <br> ###1、在遊戲中,不使用紋理壓縮時,爲了節省顯存的佔用。通常的做法是: 將原圖按低分辨率的機型進行設計,然後在遊戲中拉伸適配高分辨率的機型。這樣就會導致遊戲的馬賽克現象(很多小遊戲在安卓的某些高清分辨機型上出現這種問題,一定是該問題導致的)。 ###2、在遊戲中,使用紋理壓縮時: 使用紋理壓縮的模式即使按高分辨率進行設計也是佔用較小的顯存,所以在同等顯存佔用情況下,在高分辨率的機型上,2D圖片壓縮效果會比拉伸效果更好。 3D貼圖在壓縮後效果更好,壓縮對於原因的損失在視覺效果上幾乎忽略不計。
PS: ①、3D使用紋理壓縮後,視覺上基本看不出來,所以推薦使用。 ②、但在2D使用紋理壓縮要慎重,靜態圖片(如:UI)儘量不要使用紋理壓縮功能,動態圖片(2D角色動畫等)則不會太明顯沒有高清畫質表現需求的可以使用。
遊戲中常見的圖片文件格式通常是png
和jpg
等,這些圖片需要先經過CPU解碼,然後傳送到GPU進行使用。而紋理壓縮後的格式,是無需解碼即可直接被GPU讀取並顯示的格式,所以,一方面是節省大量的顯存,另一方面也可以減少圖片解碼帶來的CPU壓力。
Ps: ①、紋理壓縮因爲要依託於顯卡的硬件加速,所以只能是
webGL
模式下可用。 ②、不同平臺(操作系統)也有所不同。例如:Android
平臺是ktx
格式,在ios
平臺是pvr
格式。
由於不同平臺的格式不同,所以跨平臺的遊戲,使用紋理壓縮在降低顯存的同時,代價是增加了文件的大小,所以最終是要依據項目的情況來找到一個平衡點。
##三、3D模型文件壓縮 效果:降低模式文件尺寸約60%。 3D遊戲中模型是遊戲資源體積的重要組成部分,所以減少模型文件的大小,可以縮短遊戲的加載時長,加快玩家進入遊戲的速度。在當前網速環境下,減少遊戲體積還是比較重要的增值功能。
##四、3D動畫文件壓縮 效果:降低3D動畫文件尺寸約40%。 3D動畫文件壓縮與模型壓縮一樣,作用是減少文件下載的大小,用於加快玩家進入遊戲的速度。
##五、文件合併(json與二進制) 效果:可合併json類型
的文本文件,大幅減少文件下載交互數量,提升遊戲加載效率。 當遊戲的小文件比較多時,會大量增加http
請求,使得加載變量,而合併文件功能可以將json類型
的文件進行合併,這將減少文件的http
請求數,從而提高加載效率。當然,如果盲目合併,也會在打包後增加文件的一次性下載時長。所以,開發者要依據項目的實際情況來使用,尤其是在小文件多的時候再用。