紋理壓縮格式整理(持續(xù)更新)`
為什么用紋理格式?
? ? ? 自GPU誕生以來,開發(fā)人員一直試圖將更大更好的紋理塞進(jìn)內(nèi)存凳忙。有時(shí)這需要更多的RAM,但更多時(shí)候是通過本地支持壓縮紋理格式來實(shí)現(xiàn)的禽炬。紋理壓縮的目的是減少數(shù)據(jù)的大小涧卵,同時(shí)盡量減少對(duì)視覺質(zhì)量的影響。內(nèi)存通與CPU共享腹尖,因此內(nèi)存是稀缺資源柳恐。受制于移動(dòng)數(shù)據(jù)慢,設(shè)備存儲(chǔ)空間小等因素。傳輸更小的數(shù)據(jù)非常重要乐设。除了空間讼庇,還有電力的使用。紋理小可以在很多地方節(jié)能近尚。包括從存儲(chǔ)器讀取蠕啄,解包解壓縮或轉(zhuǎn)碼步驟,寫入內(nèi)存戈锻,以及在渲染過程中讀取數(shù)據(jù)歼跟。
? Unity支持常見的圖像格式導(dǎo)入紋理文件(如JPG? PNG?PSD、TGA)格遭,但3D圖形硬件(顯卡或移動(dòng)設(shè)備)求紋理用專門的格式進(jìn)行壓縮哈街,這些格式針對(duì)快速紋理采樣進(jìn)行了優(yōu)化,每個(gè)平臺(tái)都有自己不同的專有格式拒迅。以下是紋理壓縮的格式骚秦。
* Alpha8 (ios)
* R 8(ios )
* R 16 bit(ios)
* RGB 16 bit(ios)
* RGB 24 bit(ios)
* RGBA 16 bit(ios)
* RGBA 32 bit(ios)
* RGBA Half(ios)
* RGB9e5 32 bit Shared Exponent Float(ios)
* RGB Compressed PVRTC 2 bits(ios)
* RGB Compressed PVRTC 4 bits(ios)
* RGBA Compressed PVRTC 2 bits(ios)
* RGBA Compressed PVRTC 4 bits(ios)
* R Compressed EAC 4 bit(ios)
* RG Compressed EAC 8 bit(ios)
* RGB Compressed ETC 4 bits(ios)
* RGB Compressed ETC2? 4 bits(ios)
* RGBA Compressed ETC2? 8 bits(ios)
* RGB +1-bit Alpha Compressd ETC2 bits(ios)
* RGB Crunched ETC(ios)
* RGB Crunched ETC2(ios)
* RGB(A)Compressed ASTC 4*4 block(ios)
* RGB(A)Compressed ASTC 5*5 block(ios)
* RGB(A)Compressed ASTC 6*6 block(ios)
* RGB(A)Compressed ASTC 8*8 block(ios)
* RGB(A)Compressed ASTC 10*10 block(ios)
* RGB(A)Compressed ASTC 12*12 block(ios)
ASTC
? ? ? ? 英偉達(dá)官網(wǎng)鏈接:https://developer.nvidia.com/astc-texture-compression-for-game-assets
? ? ? ? 原理:ASTC采用固定的每塊128位,每個(gè)紋理在這些128位中可以具有不同大小的塊坪它。不僅是固定的4*4大小骤竹,可以用正方形和非正方形塊來達(dá)到精確的控制。從8bpp降到1bpp以下往毡。