cocos2d-x 優化(紋理渲染優化、資源快取、記憶體優化)
概述
引擎優化
紋理優化
紋理是最消耗記憶體的,而且會降低渲染速率。
二的冪次方
OpenGL在申請記憶體存放紋理時,是按2的冪次方申請的,即對應480*320的圖片,它申請的是512*512空間。可見,會有相當多的記憶體被浪費。所以,我們設計的圖片,最好是2的冪次方,不然OpenGL最終還是申請2的冪次方記憶體空間。
由於不是所有圖片都剛好能設計成2的冪次方,因此通過“拼圖”方法解決。這就是為啥要使用TexturePacker的原因。如圖:
色深優化
圖片所佔記憶體的大小用這條公式計算:高度畫素*寬度畫素*色深。如色深RGBA8888,是32個bit,每8bit是一個位元組,因此一個畫素點佔4位元組,就是一個整形字元大小。例子。一個480*320的圖片大小,佔記憶體480*320*4位元組。
通常,如果對圖片的色彩要求不是很高的話。ARGB8888(佔4位元組)可以改為,ARGB1555(2位元組)(透明通道A佔1位一般是用做圖片混合運算)或者ARGB4444(如果不是做混合運算,用4位比較合適)。或者,如果不需要使用圖片透明,就不需要A通道,直接使用RGB888(3位元組)改為RGB565(2位元組)。這樣,圖片的最終記憶體大小就會佔用更少的空間。
紋理壓縮格式
IOS系統使用PowerVR顯示晶片,可以直接硬解碼PVR格式,該格式可以直接被IOS讀取。不過該方式不適合Android等平臺。
PVR格式實際上就是把ARGB8888轉成ARGB1555色深進行儲存的。
骨骼動畫
cocos2d-x 2.0.3開始支援骨骼動畫,cocos2dBuilder2.1版本也可以進行動畫編輯。在處理動畫時,對記憶體優化也是很好的方案。
紋理尺寸限制
不同裝置支援的紋理尺寸不一樣,iphone4支援最大的是4096*4096,iphone4s是4096*2048。有的android裝置,僅僅限制在1024*1024。拼圖的時候要避免把圖片拼的太大。為了提高遊戲的相容性,圖片的尺寸最好都設定在1024*1024範圍內(主流裝置都支援)。
渲染優化
批次處理
使用CCSpriteBatchNode,準備好Sprite的座標資訊後,進行一次性渲染。
傳統渲染處理是這樣的:不同的切換紋理,不同地載入和渲染。而批次處理是一次載入完所有紋理,然後一次渲染,這樣效率就提高了。
資源快取
記憶體優化
資源佔用的記憶體優化
記憶體池方案
相關文章
- Android 效能優化之記憶體優化Android優化記憶體
- 實時渲染不是夢:通過共享記憶體優化Flutter外接紋理的渲染效能記憶體優化Flutter
- Android記憶體優化之圖片優化Android記憶體優化
- Android效能優化篇之記憶體優化--記憶體洩漏Android優化記憶體
- Android記憶體優化Android記憶體優化
- Web靜態資源快取及優化Web快取優化
- 記憶體優化相關記憶體優化
- Android Note - 記憶體優化Android記憶體優化
- 效能優化:紋理檔案優化
- 實踐App記憶體優化:如何有序地做記憶體分析與優化APP記憶體優化
- 2.記憶體優化(二)優化分析記憶體優化
- 頁面快取優化快取優化
- redis快取優化案例Redis快取優化
- Android深度效能優化--記憶體優化(一篇就夠)Android優化記憶體
- 渲染引擎的資源載入優化優化
- 前端效能和載入體驗優化實踐(附:PWA、離線包、記憶體優化、預渲染)前端優化記憶體
- JNI記憶體管理及優化記憶體優化
- mariadb 記憶體佔用優化記憶體優化
- iOS圖片記憶體優化iOS記憶體優化
- App記憶體優化-實踐APP記憶體優化
- 淺談Android記憶體優化Android記憶體優化
- Android記憶體優化全解析Android記憶體優化
- Redis-記憶體優化(一)Redis記憶體優化
- Laravel Passport 使用快取優化記錄LaravelPassport快取優化
- css 渲染優化CSS優化
- Android效能優化,Startalk會話頁GIF記憶體優化實踐Android優化會話記憶體
- 關於redis記憶體分析,記憶體優化Redis記憶體優化
- win10怎麼優化記憶體 win10系統記憶體優化的方法Win10優化記憶體
- iOS 使用Instruments優化記憶體效能iOS優化記憶體
- Linux 效能優化之 記憶體 篇Linux優化記憶體
- MongoDB記憶體使用分析和優化MongoDB記憶體優化
- HBase記憶體配置及JVM優化記憶體JVM優化
- Android效能優化:手把手帶你全面實現記憶體優化Android優化記憶體
- win10虛擬記憶體如何優化_win10怎麼優化虛擬記憶體Win10記憶體優化
- 1.記憶體優化(一)記憶體洩漏記憶體優化
- 前端多資料渲染優化前端優化
- React渲染效能優化React優化
- VUE 渲染效能優化Vue優化