ios和android遊戲紋理優化和記憶體優化

2021-08-29 20:30:43 字數 948 閱讀 9032

pvrtc 和 etc是硬體支援的格式,因此,不會進行記憶體和視訊記憶體解碼,將會省許多

同時,由於不會解碼,那cpu到gpu的傳輸量就會變少,在手機平台這種匯流排頻寬小的裝置上,可以得到一定量的效能提公升。

但pvrtc只適合ios,etc適合android, 需要做兩個平台的分別優化,並且etc1(剛剛有修改,先前是說的etc,隨著opengl es 3.0的發布,etc2也出了,支援alpha通道,但就目前的市場,可以不用考慮)不支援alpha通道,所以需要解決一些問題。

png24/32是無壓縮格式的rgba通道,質量是最好的

jpg是有失真壓縮的格式,不支援alpha通道,但是是安裝包最小的。

但jpg會進行記憶體解壓,也就是說,乙個jpg讀入到記憶體後,與png24/32讀入記憶體是一樣的。

prvtc,etc不僅可以減少安裝包大小,也能減少記憶體視訊記憶體開銷,並能提公升一定的效能

png24/32可以保證原始質量,但記憶體和安裝包大小 會很大

jpg不能省記憶體視訊記憶體,但jpg可以使安裝包較小,且它不支援alpha通道。

而對於pvrtc,etc打出來的檔案大小,比jpg要大得多。

在此,我們還可能會用到一種叫 grunt - png8的壓縮格式,這種格式可以將png24/32壓縮到1/4的大小,且幾乎可以維持影象質量需求,這個比jpg大,但支援alpha通道。

那選擇策略就需要針對不同的資源進行優化了

1、如果遊戲是那種大量關卡資源,但同關卡中出現的資源和元素較少,這種一般不會有記憶體和效能瓶頸,那可以選擇jpg+grunt-png8,這樣一來,可以將安裝包大小減少到1/4左右

2、如果遊戲是那種同屏複雜度較大的,那就需要對遊戲中的元素分類處理了, 一般對於ui,直接使用png8即可, 對於單張場景,我們使用jpg,對於裡面的小元素,比如特效,人物精靈動畫等,則建議使用pvrtc或者etc格式。

紋理格式的選擇不是死的,只要你明白了不同格式的優缺點,那就可以很容易地做出判斷。。

紋理矩陣和自動生成紋理

glmatrixmode gl texture 將矩陣變換對應到紋理座標上,這個時候使用gltranslatef glrotatef,glscalef所對應的座標變化都對映到紋理座標上,也可以使用glmultimatrixf,直接進行座標變換,紋理的自動生成 glfloat s vector 4 g...

遊戲中的壓縮紋理格式

歸納總結遊戲中使用到的各種紋理壓縮格式,詳解各自的 和原理。格式,是檔案的儲存格式,用於檔案的儲存和傳輸,通常在磁碟檔案,記憶體以及網路傳輸中使用。紋理格式是顯示卡能夠直接進行取樣的紋理資料的格式,是向顯示卡中載入紋理時使用的資料格式。格式和紋理格式的關係,就是沒有關係。如果要傳輸給顯示卡使用,則必...

OpenGL遊戲引擎開發 10 多重紋理

有時候我們在遊戲,會看到類似這樣裸露的土地 沼澤之類的 這是遊戲 自然之力 的地圖,在草地上會有 粘土 黑土 這樣裸露的區域,玩家能夠在這片區域挖土,不同的材料可以製作不同的道具。那這個是怎麼做的呢?比如,unity中刷地形的時候,就是使用第二種辦法,事先載入好紋理,再使用 刷子 在地形上畫對應的紋...