zoukankan      html  css  js  c++  java
  • Unity优化之贴图

      默认情况下当你把图片导入到unity中时,unity会自动把图片转换成最适合当前平台的压缩格式。如果你有一些特殊的需求,unity也提供了覆盖默认压缩格式的方法,如下图

      在图片的Inspector窗口可以选择相应平台然后重写图片的压缩方式。

      下图展示了不同平台可以使用的贴图格式

      

      在项目的开发中会根据不同需求来调整贴图的压缩方式。对于大部分贴图资源,使用默认的压缩格式即可。如果一些UI需要特别高的清晰度可以使用RGBA32/RGB24,看起来和原图一样。在安卓平台ETC2 是unity在官方文档中推荐的方式,支持alpha通道,在内存占用和贴图质量上提供了最好的平衡,并且可以适应大部分安卓手机。但如果项目要考虑某些低端机型(如红米的部分机型),还是要使用ETC1。

    在IOS平台,默认的压缩格式是RGBA Compressed PVRTC 4 / RGB Compressed PVRTC 4。但RGBA的图片压缩后的效果看起来要比RGB的图片效果差很多,所以通常的解决办法是将带alpha通道的贴图分成两个不带通道的贴图,一张储存颜色信息,另一张存alpha值,和在安卓平台中使用ETC1时拆分RGBA贴图的处理方式一样。下图展示了原图和在IOS平台中压缩为RGBA Compressed PVRTC 4后的效果,可以看到图片糊了很多。

      

      另外贴图的宽高要是2的次方,因为只有这样的图片unity才可以将其压缩为ECT或PVRTC4格式,这类格式的图片在内存中无需解压,可以直接被GPC支持,占用内存少,效率还高。对于IOS平台不仅需要宽高是2的次方,还要求宽高要相等。

      所以最后结论是:

      Android:如果对贴图质量要求高比如某些UI,使用RGBA32/RGB32。如果对质量无特殊要求而且目标机型是中高端机型,使用ETC2。如果是全机型通用,使用ECT1拆分alpha通道的方式。

      IOS:如果对贴图质量要求高比如某些UI,使用RGBA32/RGB32。如果对质量无特殊要求,使用RGB Compressed PVRTC 4拆分alpha通道的方式。

      压缩质量:仅比较RGB这三个通道的质量,RGBA32 > RBG16 > RGBA16 > RGB PVRTC4/ETC4 > RGB PVRTC2

      

  • 相关阅读:
    JMeter工具基础知识篇-使用命令行生成html报告
    解决jmeter请求不成功或者报403错误
    jmeter之JDBC Request各种数据库配置
    Jmeter模拟不同带宽
    SQL语句大全
    Jmeter 吞吐量控制器的使用
    如何找出系统能承受的最大在线用户数
    Jmeter之函数的应用
    jmeter如何设置IP欺骗
    华为云分布式缓存服务DCS与开源服务差异对比
  • 原文地址:https://www.cnblogs.com/ssw-men/p/10472007.html
Copyright © 2011-2022 走看看