网易首页 > 网易号 > 正文 申请入驻

ASTC纹理压缩格式介绍

0
分享至

这是侑虎科技第1117篇文章,感谢作者Ssiya供稿。欢迎转发分享,未经作者授权请勿转载。如果您有任何独到的见解或者发现也欢迎联系我们,一起探讨。(QQ群:793972859)

作者主页:https://www.zhihu.com/people/ssiya-330

一、ASTC纹理压缩格式介绍

ASTC是在OpenGL ES 3.0出现后,在2012年中产生的一种业界领先的纹理压缩格式,它的压缩分块从4x4到12x12最终可以压缩到每个像素占用1bit以下,压缩比例有多种可选。ASTC格式支持RGBA,且适用于2的幂次方长宽等比尺寸和无尺寸要求的NPOT(非2的幂次方)纹理。

以ASTC 4x4 block压缩格式为例,每个像素占用1字节,8bits。一张1024x1024大小的贴图压缩后的大小为1MB。

ASTC在压缩质量和容量上有很大的优势。

文档中有详细的测试数据:

https://developer.nvidia.com/astc-texture-compression-for-game-assets

二、适配机型

1. iOS

苹果从A8处理器开始支持ASTC,iPhone6及iPad mini 4以上iOS设备支持,2014年的iPhone 5s及iPad mini 3以前的设备不支持。

2. 安卓

安卓主流压缩格式正在从ETC2转向ASTC。

Unity官方对安卓ASTC格式支持的说明:

https://docs.unity3d.com/Manual/class-TextureImporterOverride.html

官方文档中提到GPU对ASTC的支持情况:所有支持OpenGL ES 3.1和部分支持OpenGL ES 3.0的GPU。

鉴于OpenGL ES 3.0 GPU的不确定性,我们对一些当前用户占比较高的低配机型进行了ASTC格式兼容性测试,并补充了一些占比低的GPU型号Mali-G71、Adreno 306、Adreno 308、Adreno 405做测试(测试时间2020.5.21):

市面上大部分机型都支持OpenGL ES 3.1以上,少数GPU配置较低的机型支持OpenGL ES 3.0但不支持ASTC压缩格式,在2020年4月统计的市面占比不到1.5%,从个人角度看ASTC压缩格式是可以普及使用的。

补充:Unity官方文档2018.4版本中有介绍对ASTC压缩格式的支持:

https://docs.unity3d.com/2018.4/Documentation/Manual/class-TextureImporterOverride.html

Texture Compression ASTC Platform Support:tvOS (all), iOS (A8), Android (PowerVR 6XT, Mali T600 series, Adreno 400 series, Tegra K1)

三、压缩格式的选择

前文我们了解了不同的ASTC格式的Bits Per Pixel(在本文中翻译为像素占用),为了更直观的感受,使用一张容易产生压缩失真的贴图进行示例。

1. ASTC与ETC2格式的压缩结果与容量对比

从上图可以看出,一张512x512尺寸的贴图(不带Alpha通道,开启Mipmap)的容量为1MB,压缩为ETC2 4 bits后容量为170.7KB,有明显失真,压缩为ASTC 6x6后容量为154.7KB,无明显失真,ASTC 6x6的容量小于ETC2 4 bits,压缩质量高于ETC2 4 bits。

从上图可以看出,压缩为ASTC 8x8后容量为85.4KB,容量约为ETC2 4 bits的50%,压缩质量高于ETC2 4 bits。

2. 无Alpha通道,RGB 24 位/像素的压缩格式选择

从上图可以看出,一张512x512尺寸的贴图(不带Alpha通道),压缩为ASTC 6x6、ASTC 8x8、ASTC 10x10后均无明显失真,压缩为ASTC 8x8后容量与ASTC 6x6相比减小了约44.8%,压缩为ASTC 10x10后容量与ASTC 8x8相比减小了约33.7%。

以法线贴图举例:

从上图可以看出,一张512x512尺寸的法线贴图,压缩为ASTC 4x4无明显失真,压缩为ASTC 5x5肉眼可见失真,压缩为ASTC 6x6后明显失真。

以面部贴图举例:

从上图可以看出,压缩为ASTC 6x6无明显失真,压缩为ASTC 8x8后肉眼可见失真。

结论:无Alpha通道的贴图建议压缩格式为ASTC 8x8。如果贴图为法线贴图,建议压缩格式为ASTC 5x5。有更高要求的贴图(比如面部、场景地面),可以设置压缩格式为ASTC 6x6,法线贴图为ASTC 4x4。

结论与NV文档数据对比:

浅绿色表示基准推荐,深绿色表示有更高要求的推荐,唯一有出入的地方是普通贴图的压缩选择ASTC 6x6还是ASTC 8x8,从个人角度,8x8的推荐指数应该为0。

3. 带Alpha通道,RGBA 32 位/像素的压缩精度选择

从上图可以看出,压缩为ASTC 5x5肉眼可见失真,压缩为ASTC 6x6后有明显失真,压缩为ASTC 5x5后容量与ASTC 4x4相比减小了约34.9%。在同一压缩格式下,带Alpha通道比不带Alpha通道的压缩质量下降明显。

结论:有Alpha通道的贴图建议压缩格式为ASTC 5x5。有更高要求的贴图(比如特效、UI),可以设置压缩格式为ASTC 4x4

结论与NV文档数据对比一致:

4. 有无Alpha通道对压缩的影响

在同一压缩格式下,贴图容量不变,有无Alpha通道对压缩结果有很大影响,带Alpha通道的贴图压缩质量下降。

从上图可以看出,对于带Alpha通道的32位图和不带Alpha通道的24位图,选择同一压缩格式时,压缩结果有很大差异。

对于一张带Alpha通道的32位图,选择Import Settings中的Alpha Source为None,压缩结果与不带Alpha通道一致。

5. 其他问题

1)对Shader带来的影响

默认贴图是“black”时,如果贴图缺省,默认值是(0,0,0,0),A通道读取出来是0;使用RGB ETC2 4bits格式时,A通道读取出来是0;使用ASTC格式时,A通道读取出来是1。这里要注意Shader默认值的考虑。

2)JPEG格式已经是有损格式,在JPEG丢失的精度与ASTC压缩无关。

3)关于贴图尺寸。

压缩格式支持非2的幂次方时,只要硬件支持该压缩格式,就可以使用NPOT纹理。但是,2的幂次方纹理比其他尺寸更优,这里有复杂的图形学因素。

参考文章:《OpenGL支持非二次幂纹理的底层原理是什么?》

https://www.zhihu.com/question/376921536/answer/1063272336

简单的理解,贴图在GPU中是以块为单位存储的,为了尽可能节省内存和带宽,压缩格式对贴图也是分块存储的。在递归或循环时,如果一个数是2的幂次方,可以被2整除,而且商也是2的幂次方。OpenGL API支持非2的幂次方,是因为考虑到易用性隐藏了细节,在内部处理了一些必要的拉伸或填充操作。所以,在无特殊要求时,尽量使用POT纹理,并且制作时尽量按照实际应用尺寸来制作,避免一些高精度压缩到低精度使用的情况。

4)无论贴图本身是否带Alpha信息,ASTC压缩的不同设置直接决定压缩大小。控制贴图资源的包体大小,依赖于ASTC压缩格式的规范是否合理,毕竟压缩为ASTC 8x8后容量与ASTC 6x6相比减小了约44.8%(85.4KB vs 154.7KB),压缩为ASTC 8x8后容量与ASTC 4x4相比减小了约300%(85.4KB vs 341.4KB)。而我们通常检查Alpha通道是否为空,可以帮助我们判断Alpha的信息是否冗余,是否应该设置更低的压缩精度。

5)ASTC压缩的算法比较智能,它会为变化更大的通道RGB或者A分配更高的权重,而且对于单色图,RGB通道内容一样时,使用较低的像素占用就可以达到很好的效果。对于单色图完全没有必要使用R8压缩格式,而是应该将RGB通道填充一样的信息,选择ASTC较低的像素占比,如ASTC 8x8。

6)在项目实际使用中发现,对于法线贴图,ETC2 4bits的压缩效果比ASTC 5x5好,对于带透明通道的贴图,存在ETC2 8 Bits比ASTC 4x4更优的情况,之前在测试中漏掉了对比,还需要进一步对比,根据实际情况进行选择。

A通道细节多的情况下,选择ASTC,A通道细节少的情况下,选择ETC2。

文末,再次感谢Ssiya的分享,作者主页:https://www.zhihu.com/people/ssiya-330,如果您有任何独到的见解或者发现也欢迎联系我们,一起探讨。(QQ群:793972859)

近期精彩回顾

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
感受美国文化?盐贝健人:我在达拉斯理发,结果理发师带了一把枪

感受美国文化?盐贝健人:我在达拉斯理发,结果理发师带了一把枪

懂球帝
2026-06-22 07:32:09
《浪姐7》芒果是高级分猪肉的端水大师,总冠军几乎没有悬念

《浪姐7》芒果是高级分猪肉的端水大师,总冠军几乎没有悬念

八卦南风
2026-06-22 18:31:23
南京27公斤黄金盗窃案,童某某落网细节公布

南京27公斤黄金盗窃案,童某某落网细节公布

环球网资讯
2026-06-22 15:09:37
知名上市公司副总裁交通事故去世,年仅40岁

知名上市公司副总裁交通事故去世,年仅40岁

封面新闻
2026-06-22 00:34:04
皮尔洛解读时代双骄:梅西掌控全局,C罗专职门前致命一击

皮尔洛解读时代双骄:梅西掌控全局,C罗专职门前致命一击

体育闲话说
2026-06-23 06:33:02
英国十年七易首相,斯塔默辞职创45天最短

英国十年七易首相,斯塔默辞职创45天最短

梦在深巷aqa
2026-06-23 03:40:54
确实有狂的资本!姆巴佩世界杯16场16球,一纪录梅西都比不上

确实有狂的资本!姆巴佩世界杯16场16球,一纪录梅西都比不上

衣衫褴褛的文人
2026-06-23 09:42:27
53岁王姐丰满漂亮,相亲当天同居,第二天起床后:我还是太年轻

53岁王姐丰满漂亮,相亲当天同居,第二天起床后:我还是太年轻

大熊欢乐坊
2026-06-20 06:23:24
出狱人员纷纷吐槽:如今坐牢,和几十年前大不一样!说出来不敢信

出狱人员纷纷吐槽:如今坐牢,和几十年前大不一样!说出来不敢信

一曲一场談
2026-06-21 00:24:30
劳动性所得统一征税!国家新明确:未来五年,税收将迎来8大变化

劳动性所得统一征税!国家新明确:未来五年,税收将迎来8大变化

学税
2024-07-23 15:25:30
不撤案就杀你全家!运城13岁女孩称遭男子强奸,更多细节浮出水面

不撤案就杀你全家!运城13岁女孩称遭男子强奸,更多细节浮出水面

火山詩话
2026-06-23 05:04:29
全世界会发现,伊朗战争打完后,世界只剩下一个超级大国了!

全世界会发现,伊朗战争打完后,世界只剩下一个超级大国了!

史行途
2026-06-17 12:00:53
恭喜!中国女排留洋再添一人,最佳接应确定加盟,有望对阵朱婷

恭喜!中国女排留洋再添一人,最佳接应确定加盟,有望对阵朱婷

跑者排球视角
2026-06-22 23:03:58
伊朗飞行员披露内情:15米超低空炸美军基地,还“干掉”3架F-15

伊朗飞行员披露内情:15米超低空炸美军基地,还“干掉”3架F-15

军武次位面
2026-06-22 16:52:21
老公生病后我去公司请假,前台小姐懵:您要给我们董事长请假?

老公生病后我去公司请假,前台小姐懵:您要给我们董事长请假?

徐侠客有话说
2026-03-03 11:49:10
89岁SNL元老因台下“巨蟒”照走光?本人幽默回应

89岁SNL元老因台下“巨蟒”照走光?本人幽默回应

赴一场山海啊
2026-06-21 00:52:56
天要帮你的时候,才会让你刷到这篇文章,好日子马上就要到了

天要帮你的时候,才会让你刷到这篇文章,好日子马上就要到了

风起见你
2026-06-14 01:52:08
美股科技股深夜下挫,SpaceX跳水大跌16%,美光涨近7%创新高,国际油价跌3%,美国暂时解除对伊朗石油制裁

美股科技股深夜下挫,SpaceX跳水大跌16%,美光涨近7%创新高,国际油价跌3%,美国暂时解除对伊朗石油制裁

21世纪经济报道
2026-06-23 07:14:34
彻底炸了!俄罗斯,终极杀器重磅登场了!

彻底炸了!俄罗斯,终极杀器重磅登场了!

大嘴说天下
2026-06-21 22:50:05
特朗普:伊朗将同意接受大规模武器核查,确保保持“核诚信”,伊朗:未就核问题展开谈判,也未作出任何新的相关承诺

特朗普:伊朗将同意接受大规模武器核查,确保保持“核诚信”,伊朗:未就核问题展开谈判,也未作出任何新的相关承诺

政知新媒体
2026-06-23 07:46:38
2026-06-23 10:08:49
侑虎科技UWA incentive-icons
侑虎科技UWA
游戏/VR性能优化平台
1589文章数 987关注度
往期回顾 全部

科技要闻

SpaceX、谷歌重挫,市值蒸发超5000亿美元

头条要闻

山东一中学门口车祸致11死13伤 27名公职人员被处分

头条要闻

山东一中学门口车祸致11死13伤 27名公职人员被处分

体育要闻

法国球星祝中国队下届世界杯取得好成绩

娱乐要闻

陪睡陪玩是皮毛,向佐揭内娱暗规则

财经要闻

智谱万亿市值,国产Anthropic真来了?

汽车要闻

华为智驾ADS限时优惠月底结束 7月1日前下订立省3000元

态度原创

健康
艺术
亲子
房产
公开课

粽子还没吃完?专家教你“清库存”

艺术要闻

田卫平 2026静物油画选

亲子要闻

腭裂首次面诊时间最好是3-5个月

房产要闻

一年时间,36个盘“消失”!海口楼市,罕见“大收缩”!

公开课

李玫瑾:为什么性格比能力更重要?

无障碍浏览 进入关怀版