W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗(yàn)值獎勵
不規(guī)范的資源管理方式,容易導(dǎo)致游戲加載速度慢、運(yùn)行內(nèi)存大,影響游戲的體驗(yàn)和性能。下面列出一些需要注意的地方:
UI 輸出資源時,應(yīng)該優(yōu)先使用 png 格式而不是 jpg 格式。png 格式采用無損壓縮算法,jpg 使用的是有損壓縮算法,用 png 格式輸出資源,獲得的圖片質(zhì)量是好于使用 jpg 格式的。如果圖片的大小比較大,可以使用 tinypng、pngquant 這類的工具提高壓縮率(有損壓縮)或者使用 ect2 等格式的壓縮紋理。但是最好使用初始的 png 圖片而不是用 tiny 等工具壓縮后的 png 圖片生成壓縮紋理,因?yàn)閴嚎s紋理也是采用有損壓縮算法。多次對圖片使用有損壓縮算法進(jìn)行壓縮,會進(jìn)一步降低圖片質(zhì)量,導(dǎo)致資源效果差。
在保證外觀效果的情況下,盡可能地減小圖片尺寸。以臉萌沖撞游戲,球的臉表情為例,最初版本為 512x512 尺寸,后面優(yōu)化成 128x128 尺寸。80 張 512x512 尺寸的 RGB888 png 圖片,需要占用 80x512x512x3byte = 60M 內(nèi)存,而優(yōu)化成 128x128 尺寸后,僅需要 80*128*128*3byte = 3.75M 內(nèi)存。占用內(nèi)存減少了 93.75%。像海水這種模式重復(fù)的場景,也盡量使用較小尺寸的紋理。
下面左邊的圖片,一半的面積,都是透明部分,浪費(fèi)大量的空間,在 UI 輸出資源時應(yīng)該盡量避免,或者用工具修剪掉透明部分。右邊是修剪后的圖片。尺寸由 750*375 變?yōu)?466*284,占用內(nèi)存減小 50%。
合并圖片的目的是為了減少引擎讀取文件的次數(shù),加快加載速度。合圖的關(guān)鍵問題是,合出的大圖, 空間利用率是否足夠高 ,較低的空間利用率,會造成游戲運(yùn)行內(nèi)存的增大。合圖要注意的幾個問題如下:
對尺寸比較大的資源,盡量進(jìn)行復(fù)用。像界面背景圖片這樣的資源,應(yīng)該抽取出,單獨(dú)出資源。
當(dāng)界面資源要顯示的圖片尺寸比較大,且中間部分是由連續(xù)有規(guī)則的像素組成時,通常使用九宮格拉伸的辦法,大幅度減小圖片尺寸的大小。對于可以進(jìn)行拉伸的圖片,劃分成以下 9 個部分:
拉伸規(guī)則如下:
下面的圖片尺寸是 612*946,格式是 RGBA8888,如果使用九宮格拉伸的辦法,那么尺寸可以做到小于 300*300,占用內(nèi)存減小 80%以上。
像場景貼圖、界面背景圖等資源,占用內(nèi)存比較大,但為了保證效果,不能去減小尺寸,這種情況下可以考慮使用壓縮紋理。壓縮紋理采用的是有損的壓縮算法,一般效果都是可以接受的。下面是兩張對比圖:左邊是 s3tc 格式的壓縮紋理資源,右圖是未壓縮的圖片資源。對比下兩張資源圖,大部分地方肉眼不容易識別出差別,左邊圖片在邊緣細(xì)節(jié)上,要差一些(可以雙擊放大看)。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: