Unity中图像设置与常用压缩算法

图片导入面板

在这里插入图片描述
官方文档参考:https://docs.unity3d.com/Manual/class-TextureImporter.html
其中sRGB选项涉及到Gamma校正相关,这篇文章进行了较透彻的讲解:https://blog.csdn.net/candycat1992/article/details/46228771
总的来说:
在这里插入图片描述
除了HDR纹理,以及纹理中存储的是一些特定含义的值(需要在着色器中取得确切值)。其它的纹理都要勾选此项(美术给的图默认都是gamma空间下的)。

导入设置需要注意的一些问题

在这里插入图片描述
1.对于我们的使用的纹理,需要尽量为POT,这样能提高渲染性能,原理参考:
为什么纹理尺寸需要为POT
2.Read/Write Enabled:该选项打开时,可以在代码中直接获取图片的像素信息。但会使占用内存翻倍。一般需要取消勾选。
3.Generate Mip Maps:这个是用来生成Mipmaps的,UI元素中一般用不到。不要打开。
4.Filter Mode:一般选Blinear。具体参考:catcoding纹理过滤中的双线,三线过滤,各项异性过滤

纹理的压缩

纹理压缩的必要性

在日常生活中,我们用来一般用png,jpg等压缩格式来保存图片。
1、无须CPU解压即可被GPU读取,节省CPU时间和带宽。
2、节省大量内存,极限时可以减少16倍消耗。
3、可以减小图片打包时的体积,减小包体大小。
unity官方参考链接:https://docs.unity3d.com/cn/current/Manual/class-TextureImporterOverride.html

常见的纹理压缩格式:

DDS 或 S3TC:有时称为 DXTC 或 DXTn。。OpenGL 支持此格式的三种形式。
ETC1:大多数设备都支持此格式。这种格式不支持透明度,但游戏可将第二个纹理文件用于 Alpha 通道组件。
ETC2:支持 GLES3 的所有设备均支持此格式。
PVRTC:iOS 游戏常用的格式,在某些 Android 设备上也受支持。
ASTC:专为取代之前的格式而设计的新格式。比先前的格式更加灵活,因为它支持各种块大小。使用这种格式可以帮助您优化游戏大小。

以下列出了使用 2020 年 9 月从活跃 Google Play 设备收集的数据计算的百分比 Android 设备支持的格式及支持相应格式的 Android 设备所占的百分比:

纹理压缩格式 提供支持的 Google Play 设备的百分比
ETC1 99%
ETC2 87%
ASTC 77%
ATC 35%
PVRTC 11%
DXT1 0.7%

另一篇

Unity中纹理压缩格式的名称的含义

如:RGB Compressed PVRTC 2 bits
RGB : 纹理包含的通道以及排列顺序。
PVRTC : 压缩格式。
2 bits : 每个像素占的比特位。
在这里插入图片描述

主流压缩格式详解:

ASTC压缩格式详解
ETC与PVRTC

最后的总结

PC平台不探讨了。
到底使用哪种压缩格式需要依据不同的情况进行取舍。
这里是Unity官方文档的建议:
各平台的推荐、默认和支持的纹理压缩格式
如果需要尽可能的支持更多的设备:IOS端可以使用PVRTC或ETC,安卓使用ETC。
如果愿意抛弃一部分低端的机器:IOS可以用ETC2或ASTC,Android用ETC2或ASTC。但ASTC的效果更好,压缩比更高。
在国内的话,按这篇文章提供的数据:Unity移动平台贴图格式总结,基本上可以统一用ASTC格式了。
对于一些如灰度图等只有单个通道有效的图可以指定为针对单通道的格式。如R8等。
https://blog.uwa4d.com/archives/TechSharing_142.html

  • 0
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值