cocos2dx 紋理快取的理解

2021-08-26 15:12:18 字數 692 閱讀 6661

在cocos2dx中顯示一張,需要首先把它從檔案讀取到記憶體,再根據檔案格式進行解碼,轉換為gpu可以識別的格式,

這塊可以被gpu識別的、記憶體中的影象資料,被稱為紋理

為了節省記憶體空間,減少大量瑣碎的小檔案的讀取引發的多次i/o操作,將多個紋理拼成為乙個大的紋理圖,成為紋理圖集。

就像是給別人看你所有的**,不需要一張張給,而是貼在乙個大白紙上,一次性給別人。 在opengl es處理影象也是類似,

使用紋理圖集(或精靈表單,spritesheet) 把所有影象一次**給opengl esk來處理,比單個處理要高效。

使用displa.newsprite(filename)建立精靈,引擎內部會自動把紋理載入到快取中。

精靈幀是在紋理的基礎上進一步封裝,它在紋理上定了乙個矩形區域,以確定紋理的可視範圍。 一張紋理可以變化為多個幀。

display.addspriteframes("fruit.plist",fruit.png)

display.addspriteframes一次性載入多個幀到幀快取,這些幀都有共同的紋理圖,即fruit.png。 如果用其中一幀來建立精靈,就不用紋理來建立,需要使用精靈幀。

cocos2dx 紋理快取

快取 cache 機制的原理是什麼?把新加進記憶體的資源做乙個hashmap儲存,每乙個資源加乙個key。每次載入資源,先從快取中尋找,如果找到就直接返回,否則載入到記憶體後再返回。一 自動快取紋理 直接使用display.newsprite filename 建立精靈,引擎內部會自動把紋理載入到快...

cocos2dx 紋理快取

在遊戲中需要載入大量的紋理,這些操作都是很耗記憶體和資源的。當遊戲中有個介面用到的非常多,第一次點進這介面時速度非常慢 因為要載入繪製很多 出現卡頓,我們可以使用texturecache提前非同步載入紋理,等載入結束,進入到這個介面再使用這些速度就會非常快。texture2d 紋理,即加載入記憶體後...

cocos2d x 紋理畫素格式

紋理的畫素格式是影象儲存在gpu記憶體的方式。你可能會見到以下畫素格式 紅色通道 綠色通道 藍色通道和alpha 通道各8位。如果想獲得最好的質量,使用這種格式是很靠譜的。但它會占用的記憶體會比16位的紋理多一倍,在iphone上記憶體是很寶貴的資源,這個 自然的,它的運算速度也是相對較慢的。常用的...