ASTC压缩格式总结

本文介绍了ASTC纹理压缩在Unity3D中的应用,着重于其在iOS和Android设备上的优势,如更高的压缩比和更好的显示效果,以及支持的GPU类型和设备范围。文章还详细讨论了压缩原理和不同尺寸块的压缩效果实例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 https://www.jianshu.com/p/8f96bb7732e5

ASTC图片纹理压缩探讨
Unity3D - 关于ASTC压缩格式的一些资料搜集
Using ASTC Texture Compression for Game Assets
Texture compression formats for platform-specific overrides

ASTC中ARM研发的一种贴图压缩格式,从iOS9(A8架构)开始支持ASTC压缩格式 ,相对于PVRTC2/4而言,ASTC(4X4)的压缩比会增加到0.25,不过显示效果也会好很多,而且不要求图片长宽相等且为2的幂次方。支持Android OpenGL ES 3.1 和 Vulkan 设备。

支持的GPU:
tvOS (all), iOS (A8), Android (PowerVR 6XT, Mali T600 series, Adreno 400 series, Tegra K1).
如果GPU不支持这种压缩格式,则解压为RGB或者RGBA。会增加cpu解压时间,并占用较多内存
2016年之后的安卓手机基本支持这种压缩格式
iphone6以及之后的机型支持这种压缩格式

图片压缩核心思想是将大图分为多个颜色块,每个颜色块固定大小为16-bytes,单个颜色块里的颜色像素怎么划分不关心。意思是将图片分成多个颜色块,每个颜色块固定大小为16-bytes,但是每一个16-bytes的颜色块中放多少个像素是可选的,分别为4x4,5x5,6x6,8x8,10x10和12x12,单颜色块中放的像素越多那么压缩率越高,相应的质量也越差

公式

像素大小 = 16-bytes / 分块宽高 * 8-bit;
压缩率 = 原始像素大小(32-bit) / 像素大小;
图像大小 = 原始图片大小 / 压缩率;

假设一张4MB的1024*1024原始图片:

块宽高像素大小(bits)压缩率压缩后图片大小
4*4841MB
5*55.126.25655KB
6*63.568.99455.62KB
8*8216256KB
10*101.2825163KB
12*120.8935.95113.93KB

图片大小(MB)=长x宽x像素大小(bits)/8/1024/1024



作者:雄关漫道从头越
链接:https://www.jianshu.com/p/8f96bb7732e5
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值