1.ugui纹理格式分析

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了1.ugui纹理格式分析相关的知识,希望对你有一定的参考价值。

参考技术A        TEC1内存大小: 1024 X 1024 X 0.5= 0.5M;不带透明通道优先使用

       ETC2内存大小:1024 X 1024 X 1= 1M;带透明通道使用

       ETC1、ETC2 长宽没要求,但必须被4整除,ETC2只支持OpenGL ES 3.0以上的Android手机(大概2013年以后的手机都支持)

        PVRTC内存大小:1024 X 1024 X 0.5= 0.5M  压缩的效果是比较差的,尤其是有透明通道的UI几乎是无法接受的。

        ASTC 4*4内存大小:1024 X 1024 X 1= 1M    不带透明通道可以使用ASTC 5X5(表示每个压缩块的大小是5 X 5=25),带透明通道可以使用 ASTC 4X4(表示每个压缩块的大小是4 X 4=16)

        PVRTC压缩格式要求图片的宽高必须相等并且是2的整数次幂,ASTC 长宽没要求,但必须被4整除,还得A8以上的设备

    RGBA32 内存大小 1024 X 1024 X 4 = 4M ,RGBA16 内存大小 1024 X 1024 X 2= 2M,质量无法达到要求可以提升使用以上2种

       针对Android平台Unity还实现了一套Crunched(紧缩)压缩方式,比如RGBA Crunched ETC2,先ETC2先压缩,然后在Crunched压缩,运行时在额外解压缩,所以大小更下,加载更快。

IOS自动设置压缩格式无法灵活满足需求,需要勾选Override for Ios,手动设置。附加编辑器脚本,方便快速修改

```

Using UnityEditor;

public class TextureImport : AssetPostprocessor



  void OnPreprocessTexture()

 

      if (assetPath.Contains("Assets"))

     

          TextureImporter textureImporter = AssetImporter.GetAtPath(assetPath) as TextureImporter;

          TextureImporterPlatformSettings settings = new TextureImporterPlatformSettings();

          settings.overridden = true;

          settings.name = "iPhone";

          settings.format = TextureImporterFormat.ASTC_RGBA_4x4;

          textureImporter.SetPlatformTextureSettings(settings);

     

 



```

以上是关于1.ugui纹理格式分析的主要内容,如果未能解决你的问题,请参考以下文章

使用vue学习three.js之加载和使用纹理-加载DDSPVRTGA格式的纹理,使用纹理材质创建模型

游戏内图片-文件格式与纹理格式

常用纹理和纹理压缩格式

移动平台纹理压缩格式选择

Unity 之 纹理类型导入设置和压缩格式介绍

如何添加/乘以 USDZ 格式的纹理?