Unity图片纹理的压缩格式详解

以下内容是根据Unity 2020.1.01f版本进行编写的

1、全部纹理格式

Alpha8:只有8位alpha通道的格式。

在这里插入图片描述
此格式仅存储 Alpha 通道,不保存任何颜色数据。自定义着色器可以使用它来独立于其他通道计算 Alpha。以与其他纹理相同的方式设置纹理数据,例如使用Texture2D.SetPixels,除了只使用来自Color的 alpha 分量。

ARGB4444:16 位/像素纹理格式。纹理使用 Alpha 通道存储颜色。

(没有在Unity2020.1.0f1版本中看到这个压缩格式)

RGB24:颜色纹理格式,每个通道8位。

在这里插入图片描述
每个 RGB 颜色通道都存储为 [0…1] 范围内的 8 位值。在内存中,通道数据是这样排列的:R、G、B 字节一个接一个。请注意,几乎没有 GPU 本身支持这种格式,因此在纹理加载时它被转换为RGBA32格式。因此,RGB24 仅对节省一些游戏构建大小有用。

RGBA32:颜色纹理格式,每个通道8位,多了a通道。

在这里插入图片描述
每个 RGBA 颜色通道都存储为 [0…1] 范围内的 8 位值。在内存中,通道数据是这样排列的:R、G、B、A字节一个接一个。

ARGB32:颜色纹理格式,每个通道8位,多了a通道。

(没有在Unity2020.1.0f1版本中看到这个压缩格式)
每个 RGBA 颜色通道都存储为 [0…1] 范围内的 8 位值。在内存中,通道数据是这样排列的:A、R、G、B 字节一个接一个。请注意,RGBA32格式的效率可能稍高一些,因为内存中的数据布局更接近图形 API 的预期。

RGB565:16位颜色纹理格式。

(没有在Unity2020.1.0f1版本中看到这个压缩格式)

R16:单通道16位纹理格式。

在这里插入图片描述
目前,这种纹理格式仅对运行时或本机代码插件有用,因为不支持这种格式的纹理导入。注意并不是所有的显卡都支持所有的纹理格式,使用SystemInfo.SupportsTextureFormat来检查。

DXT1:压缩的RGB纹理格式。

在这里插入图片描述
DXT1 (BC1) 格式将纹理压缩到每像素 4 位,并在 PC 和控制台平台上得到广泛支持。它是压缩大多数 RGB 纹理的好格式。对于 RGBA(带 alpha)纹理,使用DXT5。

DXT5:压缩的RGBA纹理格式。

在这里插入图片描述
DXT5 (BC3) 格式将纹理压缩到每像素 8 位,并在 PC 和控制台平台上得到广泛支持。它是压缩大多数 RGBA 纹理的好格式。对于 RGB(无 alpha)纹理,DXT1更好。在针对 DX11 级硬件(现代 PC、PS4、XboxOne)时,使用BC7可能有用,因为压缩质量通常更好。

RGBA4444:4通道纹理格式,每个通道4位。

(没有在Unity2020.1.0f1版本中看到这个压缩格式)

BGRA32:4通道纹理格式,每个通道8位。

在这里插入图片描述
在某些平台上BGRA32 格式被WebCamTexture所使用。每个 RGBA 颜色通道都存储为 [0…1] 范围内的 8 位值。在内存中,通道数据是这样排列的:B、G、R、A字节一个接一个。

RHalf:精度为16位的通道纹理格式,只有R通道。

(没有在Unity2020.1.0f1版本中看到这个压缩格式)
注意并不是所有的显卡都支持所有的纹理格式,使用SystemInfo.SupportsTextureFormat来检查。

RGHalf:精度为16位的通道纹理格式,包含RG通道。

(没有在Unity2020.1.0f1版本中看到这个压缩格式)
注意并不是所有的显卡都支持所有的纹理格式,使用SystemInfo.SupportsTextureFormat来检查。

RGBAHalf:精度为16位的通道纹理格式,包含RGBA通道。

在这里插入图片描述
注意并不是所有的显卡都支持所有的纹理格式,使用SystemInfo.SupportsTextureFormat来检查。

RFloat:精度为32位的通道纹理格式,只有R通道。

(没有在Unity2020.1.0f1版本中看到这个压缩格式)
注意并不是所有的显卡都支持所有的纹理格式,使用SystemInfo.SupportsTextureFormat来检查。

RGFloat:精度为32位的通道纹理格式,包含RG通道。

(没有在Unity2020.1.0f1版本中看到这个压缩格式)
注意并不是所有的显卡都支持所有的纹理格式,使用SystemInfo.SupportsTextureFormat来检查。

RGBAFloat:精度为32位的通道纹理格式,包含RGBA通道。

(没有在Unity2020.1.0f1版本中看到这个压缩格式)
注意并不是所有的显卡都支持所有的纹理格式,使用SystemInfo.SupportsTextureFormat来检查。

YUY2:一种使用YUV颜色空间的格式,通常用于视频编码或播放。

(没有在Unity2020.1.0f1版本中看到这个压缩格式)
目前,这种纹理格式只对原生代码插件有用,因为这种格式不支持纹理导入或像素访问。YUY2 是为 Direct3D 9、Direct3D 11 和 Xbox One 实现的。

RGB9e5Float:RGB HDR格式,每个通道9位尾数和5位共享指数。

在这里插入图片描述
(在Unity上的压缩格式名字是RGB9e5 32 bit Shared Exponent Float)
编码为单个 32 位值的三个部分精度浮点数都共享相同的 5 位指数(s10e5 的变体,即符号位、10 位尾数和 5 位偏置 (15) 指数)。没有符号位,每个通道都有一个共享的 5 位偏置 (15) 指数和一个 9 位尾数。RGB9e5Float 适用于 Direct3D 11、Direct3D 12、Xbox One、Playstation 4、OpenGL 3.0+、metal 和 Vulkan。该格式用于支持平台上的预计算 Enlighten 实时全局照明纹理。

BC4:压缩单通道®纹理格式。

在这里插入图片描述
BC4 格式将纹理压缩到每像素 4 位,仅保留红色通道。它在 PC 和控制台平台上得到广泛支持。这是一种压缩单通道纹理(如高度场或蒙版)的好格式。对于两个通道纹理,请参阅BC5。

BC5:压缩双通道(RG)纹理格式。


BC5 格式将纹理压缩到每像素 8 位,仅保留红色和绿色通道。它在 PC 和控制台平台上得到广泛支持。这是一种压缩双通道纹理的好格式,例如作为切线空间法线贴图或速度场的压缩格式。对于单通道纹理,请参见BC4。

BC6H:HDR压缩颜色纹理格式。

![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/49ef04d4e4a14493b9aa3ccf66630f0e.png
BC6H 格式将 RGB HDR 纹理压缩到每像素 8 位,并在 DX11 级 PC 硬件以及 PS4 和 XboxOne 上受支持。它是一种用于压缩浮点纹理数据(天空盒、反射探针、光照贴图、自发光纹理)的好格式,例如,未压缩的纹理将采用RGBAHalf或RGBAFloat格式。注意BC6H不保留alpha通道;它只存储 RGB 颜色通道。在不支持的平台上加载 BC6H 纹理时,纹理将在加载时解压缩为RGBAHHalf格式(每像素 64 位)。请注意,使用 OpenGL 时,BC7 在 Mac 上不可用。

BC7:高质量压缩颜色纹理格式。

在这里插入图片描述
BC7 格式将纹理压缩到每像素 8 位,并在 DX11 级 PC 硬件以及 PS4 和 XboxOne 上受支持。通常,它比更广泛使用的DXT5格式产生更好的质量,但是它需要现代 GPU,并且导入期间的纹理压缩通常也较慢。请注意,使用 OpenGL 时,BC7 在 Mac 上不可用。在不支持的平台上加载 BC7 纹理时,纹理将在加载时解压缩为RGBA32格式(每像素 32 位)。

DXT1Crunched:用紧缩压缩更小的存储大小的压缩颜色纹理格式(不带a通道)。

在这里插入图片描述
DXT1Crunched 格式类似于DXT1格式,但具有额外的类似 JPEG 的有损压缩以减少存储大小。纹理在加载时被转码为 DXT1 格式。

DXT5Crunched:用紧缩压缩更小的存储大小的压缩颜色纹理格式(带a通道)。

在这里插入图片描述
DXT5Crunched 格式类似于DXT5格式,但具有额外的类似 JPEG 的有损压缩以减小存储大小。纹理在加载时被转码为 DXT5 格式。

PVRTC_RGB2:PowerVR (iOS) 2位/像素压缩颜色纹理格式。

在这里插入图片描述

PVRTC_RGBA2:PowerVR (iOS) 使用 Alpha 通道纹理格式压缩的 2 位/像素。

在这里插入图片描述

PVRTC_RGB4:PowerVR (iOS) 4位/像素压缩颜色纹理格式。

在这里插入图片描述

PVRTC_RGBA4:PowerVR (iOS) 4 位/像素,使用 Alpha 通道纹理格式压缩。

在这里插入图片描述

ETC_RGB4:ETC (GLES2.0) 4位/像素压缩RGB纹理格式。

在这里插入图片描述

EAC_R:ETC2 / EAC (GL ES 3.0) 4位/像素压缩无符号单通道纹理格式。

在这里插入图片描述

EAC_R_SIGNED:ETC2 / EAC (GL ES 3.0) 4位/像素压缩签名单通道纹理格式。

(没有在Unity2020.1.0f1版本中看到这个压缩格式)

EAC_RG:ETC2 / EAC (GL ES 3.0) 8位/像素压缩的无符号双通道(RG)纹理格式。

在这里插入图片描述

EAC_RG_SIGNED:ETC2 / EAC (GL ES 3.0) 8 位/像素压缩有符号双通道 (RG) 纹理格式。

(没有在Unity2020.1.0f1版本中看到这个压缩格式)

ETC2_RGB:ETC2 (GL ES 3.0) 4位/像素压缩的RGB纹理格式。

在这里插入图片描述

ETC2_RGBA1:ETC2 (GL ES 3.0) 4位/像素RGB+1位alpha纹理格式。

在这里插入图片描述

ETC2_RGBA8:ETC2 (GL ES 3.0) 8位/像素压缩的RGBA纹理格式。

在这里插入图片描述

ASTC_4x4:ASTC (4x4像素块128位)压缩的RGB(A)纹理格式。

在这里插入图片描述

ASTC_5x5:ASTC (5x5像素块128位)压缩的RGB(A)纹理格式。

在这里插入图片描述

ASTC_6x6:ASTC(6x6像素块128位)压缩RGB(A)纹理格式。

在这里插入图片描述

ASTC_8x8:ASTC(8x8像素块128位)压缩RGB(A)纹理格式。

在这里插入图片描述

ASTC_10x10:ASTC(10x10像素块128位)压缩RGB(A)纹理格式。

在这里插入图片描述

ASTC_12x12:ASTC(12x12像素块128位)压缩RGB(A)纹理格式。

在这里插入图片描述

RG16:两种颜色(RG)纹理格式,每通道8位。

(没有在Unity2020.1.0f1版本中看到这个压缩格式)
注意并不是所有的显卡都支持所有的纹理格式,使用SystemInfo.SupportsTextureFormat来检查。

R8:单通道纹理格式,8位整数。

在这里插入图片描述
目前,这种纹理格式仅对运行时或本机代码插件有用,因为不支持这种格式的纹理导入。注意并不是所有的显卡都支持所有的纹理格式,使用SystemInfo.SupportsTextureFormat来检查。

ETC_RGB4Crunched:带有 Crunch 压缩的压缩颜色纹理格式,用于更小的存储空间。

在这里插入图片描述
ETC_RGB4Crunched 格式类似于ETC_RGB4格式,但具有额外的类似 JPEG 的有损压缩以减少存储大小。纹理在加载时被转码为 ETC_RGB4 格式。

ETC2_RGBA8Crunched:具有 Alpha 通道纹理格式的压缩颜色,使用 Crunch 压缩以实现更小的存储大小。

在这里插入图片描述
ETC2_RGBA8Crunched 格式类似于ETC2_RGBA8格式,但具有额外的类似 JPEG 的有损压缩以减少存储大小。纹理在加载时被转码为 ETC2_RGBA8 格式。

ASTC_HDR_4x4:ASTC (4x4像素块128位)压缩的RGB(A) HDR纹理格式。

在这里插入图片描述

ASTC_HDR_5x5:ASTC (5x5像素块128位)压缩的RGB(A) HDR纹理格式。

在这里插入图片描述

ASTC_HDR_6x6:ASTC (6x6像素块128位)压缩的RGB(A) HDR纹理格式。

在这里插入图片描述

ASTC_HDR_8x8:ASTC (8x8像素块128位)压缩的RGB(A) HDR纹理格式。

在这里插入图片描述

ASTC_HDR_10x10:ASTC (10x10像素块128位)压缩的RGB(A) HDR纹理格式。

在这里插入图片描述

ASTC_HDR_12x12:ASTC (12x12像素块128位)压缩的RGB(A) HDR纹理格式。

在这里插入图片描述

RG32:两通道(RG)纹理格式,每通道16位整数。

(没有在Unity2020.1.0f1版本中看到这个压缩格式)
注意并不是所有的显卡都支持所有的纹理格式,使用SystemInfo.SupportsTextureFormat来检查。

RGB48:三通道(RGB)纹理格式,每通道16位整数。

(没有在Unity2020.1.0f1版本中看到这个压缩格式)
注意并不是所有的显卡都支持所有的纹理格式,使用SystemInfo.SupportsTextureFormat来检查。

RGBA64:四通道(RGBA)纹理格式,每通道16位整数。

(没有在Unity2020.1.0f1版本中看到这个压缩格式)
注意并不是所有的显卡都支持所有的纹理格式,使用SystemInfo.SupportsTextureFormat来检查。

以上数据来源于Unity官方文档:https://docs.unity3d.com/ScriptReference/TextureFormat.html

2、各平台默认的纹理格式

在这里插入图片描述
PC,MAac,Linux:RGBA Compressed DXT5
在这里插入图片描述
ios:RGBA Compressed PVRTC 4 bits
在这里插入图片描述
Android:RGBA Compressed ETC2 8 bits

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值