栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 游戏开发 > 其他

【Unity性能优化】ASTC压缩格式(Android)

其他 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

【Unity性能优化】ASTC压缩格式(Android)

ASTC中ARM研发的一种贴图压缩格式,相对于ASTC,ETC2他对贴图尺寸没有要求。

iOS端游戏开发逐渐从PRVTC转到了ASTC。iOS9(A8架构)(iphone6)开始支持ASTC压缩格式。

Android支持 OpenGL ES 3.1 和 Vulkan 设备。目前有约5%的Android尚不支持ASTC

可以通过下面函数判断是否支持ASTC格式

SystemInfo.SupportsTextureFormat(TextureFormat format)

 

foreach (TextureFormat textureFormat in Enum.GetValues(typeof(TextureFormat)))
{
    try
    {
        _sb.Append($"({textureFormat}):");
        _sb.AppendLine(SystemInfo.SupportsTextureFormat(textureFormat).ToString());
    }
    catch(Exception e)
    {
            _sb.AppendLine(e.ToString());
    }
}

 当某台android设备不支持ASTC面到用到ASTC格式的贴图时,会出现如下解压日志,解压后图片格式为RGBA32

WARNING: RGBA Compressed ASTC4X4 sRGB format is not supported, decompressing texture
WARNING: RGBA Compressed ASTC4X4 UNorm format is not supported, decompressing texture

特殊情况:

三星手机a02s SystemInfo.SupportsTextureFormat 判断结果为支持ASTC_RGB这一批(如:ASTC_RGB_8x8 = 51)面不支持ASTC_RGBA这一批(如ASTC_RGBA_8x8 = 57)面实际测试发现即使是支持带Alpha的ASTC贴图的,因为内存中的贴图大小并没有变大,同时日志中也没有看因不支持ASTC而解压的日志。

实际应用:

Android上当因ETC2达不到美术要求的精度,而又不希望用RGBA时,可以考虑用ETC2和ASTC两套贴图,在那些不支持ASTC的5%android上用ETC2的贴图。当然,如果这些贴图是引用加载的,那么实现起来会很麻烦。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/906721.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号