亚洲v欧美v日韩,精品视频一区二区三区在线观看,精精国产XXXX视频在线直,91国在线高清视频

    1. <dfn id="7gofa"></dfn>
    2. <object id="7gofa"><tt id="7gofa"></tt></object>

        游戲鳥手游網(wǎng),重度移動(dòng)游戲垂直門戶!

        最新游戲 | 最新軟件 | 游戲更新 | 軟件更新 | 推薦游戲 | 推薦軟件 | 合集排行
        您當(dāng)前位置:游戲鳥手游網(wǎng) > 游戲產(chǎn)業(yè) > 手機(jī)游戲開發(fā)如何選擇和優(yōu)化圖像素材?

        手機(jī)游戲開發(fā)如何選擇和優(yōu)化圖像素材?

        發(fā)布時(shí)間:

        手機(jī)游戲開發(fā)如何選擇和優(yōu)化圖像素材?

        回答的前提是:使用OpenGL來渲染。

        分幾個(gè)點(diǎn)來回答。

        1. RGBA4444真的比RGBA8888占用的RAM要少

        其實(shí)這里說的RAM,是指的顯存而非內(nèi)存。OpenGL支持以這幾種形式來使用紋理資源(viahttp://www.khronos.org/opengles/sdk/docs/man/xhtml/glTexImage2D.xml):

        GL_UNSIGNED_BYTE(RGBA8888或RGB888)

        GL_UNSIGNED_SHORT_5_6_5

        GL_UNSIGNED_SHORT_4_4_4_4

        GL_UNSIGNED_SHORT_5_5_5_1

        在程序?qū)D片載入系統(tǒng)內(nèi)存后,會(huì)根據(jù)你選擇的形式(RGBA8888/RGB565 etc.)對(duì)其做一些處理(怎么處理后面說),然后就將這些紋理上傳到顯卡的顯存,之后會(huì)把這些圖片占用的內(nèi)存刪除掉。

        也就是說,載入的圖片在變成了顯卡能處理的紋理之后,就根本不會(huì)保存在內(nèi)存中,所以你可能看不到內(nèi)存占用的變化。

        當(dāng)然,這個(gè)處理操作是由程序員自行控制(或者由你選擇的框架來決定)的,你如果決定不刪除它們而讓它們留在內(nèi)存中,那當(dāng)然會(huì)占用系統(tǒng)內(nèi)存。

        2. TexturePackger導(dǎo)出的圖片是個(gè)什么情況?

        你可以拿一張圖片嘗試,在導(dǎo)出為RGBA8888和RGBA4444的時(shí)候,它們的文件大小確實(shí)是不同的。請(qǐng)看下面的圖片,并注意我加亮的部分:

        4215616d24c1677c.jpg

        a24bc6818da74d27.jpg

        對(duì)于同一張圖片,在RGBA8888格式下,唯一顏色數(shù)是5864;而RGBA4444格式下,唯一顏色數(shù)是1454,文件大小減少了80KB左右。

        至于圖片信息中顯示的 Original Colors依然是32Bit,這是因?yàn)樵趫D像處理軟件顯示圖像的時(shí)候,內(nèi)部使用的色彩是8888的。
        #p#副標(biāo)題#e#

        3. 保存的文件是個(gè)什么情況?

        上面的RGBA4444是否就真的使用的16bit(4x4)來保存每個(gè)像素呢?

        不是。

        我們知道,PNG格式可以保存成 8bit 、 24bit 和 24bit(with alpha channel)=32bit 三種格式。而JPEG格式只能保存為24bit。RGBA4444有16bit,無論如何是不能使用8bit格式來保存的。

        因此,這個(gè)RGBA4444是使用24bit(或者32bit)格式來保存的。

        既然同為24bit or 32bit,為什么RGBA4444的文件體積會(huì)比RGBA8888小呢?

        注意上面的兩個(gè) Number of unique colors。在這里,壓縮算法起了作用,將相同的顏色壓縮了,總顏色數(shù)量少了,文件體積就變小了。

        不過,即使是采用同樣的色深(24bit or 32bit)保存,我仍然要說的是,RGBA4444比RGBA8888的圖像質(zhì)量會(huì)差一些。

        4. 怎么做到的?

        要解釋最后一個(gè)下劃線內(nèi)容,我們需要提出一個(gè)新的問題:RGBA8888轉(zhuǎn)換成RGBA4444,發(fā)生了什么變化?

        先來看看它們分別代表什么:

        RGBA8888 : R 8bit + G 8bit + B 8bit + A 8bit

        RGBA4444 : R 4bit + G 4bit + B 8bit + A 8bit

        8bit 能代表的最大數(shù)字是256,也就是說每種顏色可以表達(dá)256個(gè)級(jí)別,那么8x3=24bit(不算A)就能表現(xiàn)

        2^{24}

        =167772165種顏色。

        同樣的,RGBA4444能表現(xiàn)的顏色是

        2^{12}

        =4096種(不算A)。

        也就是說,進(jìn)行這種轉(zhuǎn)換,是一定會(huì)丟失顏色信息的。

        以 0xFFFFFFFF 這個(gè)RGBA8888顏色為例,轉(zhuǎn)換成 RGBA4444可以這樣做:

        unsigned int pixel32 = 0xFFFFFFFF; unsigned short pixel16 = ((((pixel32 >> 0) & 0xFF) >> 4) << 12) | // R ((((pixel32 >> 8) & 0xFF) >> 4) << 8) | // G ((((pixel32 >> 16) & 0xFF) >> 4) << 4) | // B ((((pixel32 >> 24) & 0xFF) >> 4) << 0); // A

        最終的結(jié)果是 0xFFFF。

        5. iOS用什么?

        當(dāng)然是用pvr格式。

        pvr是iOS設(shè)備的圖形芯片 PowerVR 圖形 支持的專用壓縮紋理格式。它在PowerVR圖形芯片中效率極高,占用顯存也小。

        性能對(duì)比可以看這里:In Depth iOS & Cocos2D Performance Analysis with Test Project。

        6. Android用什么?

        Android設(shè)備就沒有那么好的運(yùn)氣了。由于硬件平臺(tái)不統(tǒng)一,每個(gè)廠商的GPU可能使用不同的紋理壓縮格式。所以還是老老實(shí)實(shí)用PNG比較好。

        以上就是手機(jī)游戲開發(fā)如何選擇和優(yōu)化圖像素材?全部?jī)?nèi)容,希望對(duì)你有幫助。想查找更多游戲資訊,歡迎持續(xù)關(guān)注游戲鳥查看。
        復(fù)制本文鏈接攻略文章為游戲鳥手游網(wǎng)所有,未經(jīng)允許不得轉(zhuǎn)載。
        玩家要聞更多
        相關(guān)資訊更多
        熱門資訊更多
        1. 1 魔獸世界冰dk天賦加點(diǎn)推薦
        2. 2 NS2發(fā)布會(huì)匯總:港版售價(jià)3450港幣,馬車新作首發(fā)護(hù)航,支持4K120FPS輸出!
        3. 3 可能漲價(jià)?CDPR稱《GTA6》漲價(jià)對(duì)他們來說是有利的。
        4. 4 期待不?巴西博主曝Faker的S14冠軍皮膚選擇為永恩!
        5. 5 罵歸罵買歸買?育碧官宣《刺客信條:影》首日玩家數(shù)突破100萬人!
        6. 6 《云族裔(inZOI)》售價(jià)188元!3月20日開啟部分系統(tǒng)免費(fèi)體驗(yàn)!
        7. 7 大火!《雙影奇境》官宣發(fā)售僅一周,銷量已突破200萬份!
        8. 8 《天國(guó):拯救2》新更新超過60G!一共修復(fù)超1000項(xiàng)BUG!
        玩玩用用更多
        精選資訊更多
        熱門專題全部>
        熱門標(biāo)簽全部>