以下内容是根据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压缩颜色纹理格式。
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