移動端紋理壓縮格式
非壓縮格式
格式 | 記憶體消耗 (bytes/pixel) | 描述 |
---|---|---|
RGBA8888(RGBA32) | 4bpp | RGBA通道各佔用8位 |
RGBA4444(RGBA16) | 2bpp | 每個畫素2位元組 |
RGB888(RGB24) | 3bpp | 每個畫素3位元組,RGB通道各佔用8位,無透明通道 |
RGB565(RGB16) | 2bpp | 每個畫素2位元組,RGB通道各佔用5/6/5位,無透明通道 |
壓縮格式
格式 | 壓縮比 | GPU支援 | 描述 | 圖片要求 |
---|---|---|---|---|
DXT | DXT1:0.3/DXT5:0.6 | Windows\Android(Nvidia Tegra and Intel Bay Trail) | 分為DXT1-DXT5這五個級別,DXT1 適用於不具有透明度或者僅具有一位Alpha的貼圖,DXT3和DX5支援包含4位alpha通道的RGB紋理 | 無 |
ATC RGBA/RGB | RGBA:0.25/RGB:0.125 | Qualcomm -Adreno | 高通GPU支援格式,支援帶有Alpha的RGB紋理壓縮。 | 無 |
PVRTC RGBA/RGB | 2bit:0.125/4bit:0.25 | PowerVR | IOS平臺都支援,支援每個畫素2位或者4位的紋理,包含或者不包含alpha通道都可以;PVRTC 2-bpp把一個8×4的畫素單元組壓成一個64位的資料塊,壓縮效果比較差;PVRTC 4-bpp把一個4×4的畫素單元組壓成一個64位的資料塊。遊戲中使用4位壓縮更多。 | 尺寸為2的N次冪,並且寬高相同。 |
ETC1 RGB 4Bit | 0.125 | 支援Opnegl ES2.0的GPU | OpenGL ES2.0版本支援,移動GPU均支援的一個格式,遺憾的是不支援Alpha通道。ETC1把一個4x4的畫素單元組壓成一個64位的資料塊。遊戲開發中採用最多的格式,不過麻煩的是需要對Alpha通道進行單獨儲存,Unity5.4.3版本之後提供了官方支援 | 尺寸為2的N次冪,長寬可不同 |
ETC2 ARGB/RGB 4bit | RGBA:0.25/RGB:0.125 | 支援Opnegl ES3.0的GPU | OpenGL ES 3.0以上才支援,補全了ETC1不支援Alpha通道,支援更高質量的壓縮。雖然如此,從Android官方資料來看,還有相當大的裝置是採用Opengl ES2.0;使用需要謹慎,不過隨著裝置更新換代,開發時間週期比較長的遊戲可以考慮直接使用 | 尺寸為4的倍數 |
Unity官網對每個平臺預設的紋理壓縮格式以及使用建議給出了詳細描述,需要注意的是:在不同移動GPU平臺下選擇GPU支援的壓縮紋理,就可以在不需要CPU解壓的情況下直接被GPU取樣,節省CPU記憶體和頻寬,也可以節省儲存的體積。如果目標平臺不支援設定的壓縮格式,紋理將解壓為RGBA32或者RGB24,浪費CPU時間和記憶體。
ASTC
從IOS9(A8架構)Apple 手機開始支援ASTC壓縮格式 ,如果考慮放棄Apple 6代之前的手機相容問題了,可以直接使用了。相對於PVRTC2/4而言,ASTC(4X4)的壓縮比會增加到0.25,不過顯示效果也會好很多,而且不需要把圖片設定為方形。
Using ASTC Texture Compression for Game Assets 說明的比較詳細,也給出了一些使用上的建議,即針對不同貼圖型別給出不同的壓縮方案。
ARM的參考資料: ASTC: The Future of Texture Compression
引用
[1]: "常用紋理和紋理壓縮格式" http://blog.csdn.net/ynnmnm/article/details/44983545
[2]:"Unity Compressed" https://docs.unity3d.com/Manual/class-TextureImporterOverride.html
[3]: "移動裝置的紋理壓縮方案" http://gad.qq.com/article/detail/72
[4]: "關於U3D貼圖格式壓縮" http://blog.sina.com.cn/s/blog_5b6cb9500102vi6i.html
[5]: "各種移動GPU壓縮紋理的使用方法" http://www.cnblogs.com/luming1979/archive/2013/02/04/2891421.html
[6] "版本分佈情況" https://developer.android.com/about/dashboards/index.html#Screens
紋理資源壓縮測試對比: http://gad.qq.com/article/detail/37502