版本:2022.3
语言: 英文
纹理格式
米柏图(Mipmaps)

各平台推荐的、默认和受支持的纹理格式

本页包含以下信息

本页不包含关于游戏机平台的信息。有关游戏机平台的信息,请参阅特定平台的文档。

有关纹理格式的概述,请参阅纹理格式。有关纹理导入设置和如何设置每个纹理的平台特定覆盖,请参阅纹理导入设置。一些纹理导入设置也可以在构建设置中全局覆盖,通常是为了在开发过程中加快迭代时间。

术语

本页使用以下术语

  • 每像素位数(bpp)是单个纹理像素所需存储量。具有较低bpp值的纹理在磁盘和内存中的尺寸更小。较低的bpp值还意味着GPU可以在其缓存中存储更多像素,从而实现更快的纹理访问。
  • LDR(低动态范围)指的是颜色概念上位于0.0(黑色)和1.0(白色)之间的典型图像。大多数图像文件(如PNG和JPG)具有低动态范围。
  • HDR(高动态范围)指的是颜色范围可以超过0到1的特殊图像和纹理格式。像.exr和.hdr这样的图像文件格式经常用于HDR图像数据。在运行时和GPU上,有几种HDR格式,权衡准确性、范围和内存使用。
  • RGB是一种颜色模型,其中红色、绿色和蓝色结合以重现颜色数组。
  • RGBA是包含alpha通道的RGB版本,支持混合和透明度修改。
  • 可变比特率(VBR)意味着每像素位数不是一个固定值,而是取决于实际内容。VBR仅适用于RGB Crunch压缩,并且仅适用于磁盘上的纹理大小。内存中的大小与使用底层纹理格式时相同(例如,RGB Compressed DXT1对于RGB Crunch DXT1)。

各平台推荐的纹理格式

桌面

对于具备DirectX 11或更高性能级别GPU的设备,BC7和BC6H格式的支持可以确保可用,推荐的压缩格式选择是:RGB纹理 - 每像素四位的DXT1。RGBA纹理 - 更高质量的BC7(压缩较慢)或DXT5(压缩较快),两者均为每像素八位。HDR纹理 - 每像素八位的BC6H。如果您需要在PC上支持DirectX 10级别GPU(2009年以前的NVIDIA GPU,2009年以前的AMD,2012年以前的Intel),则应选择DXT5而不是BC7,因为这些GPU不支持BC7和BC6H。

有关所有受支持格式的详细信息,请参阅支持纹理格式参考表

iOS和tvOS

对于使用 A8 芯片(2014 年或更高版本)的苹果设备,ASTC 格式是推荐用于 RGB 和 RGBA 纹理的纹理格式。此格式允许您在细粒度级别选择纹理质量和大小:从每像素 8 位(4x4 块大小)一直降至每像素 0.89 位(12x12 块大小)。如果需要为旧设备提供支持,或您想使用额外的 Crunch 压缩,那么自 A7 芯片(2013 年)开始,苹果设备支持 ETC/ETC2 格式。对于更旧的设备,请使用 PVRTC 格式。在 iOS 上,您可以在 玩家设置让您设置各种玩家特定选项的设置,用于构建由 Unity 生成的最终游戏。 更多信息
词汇表 中查看
中配置默认纹理格式。PVRTC 提供最广泛的兼容性。尽管首选 ASTC,但 A7 设备(第一个支持 Metal 的设备)不支持它,并且将在运行时解包。

有关所有受支持格式的详细信息,请参阅支持纹理格式参考表

Android

Android 上的纹理格式支持很复杂。您可能需要构建几个具有不同 子目标 的应用程序版本。

您可以在 玩家设置 中选择默认格式。您的选项是 ASTC、ETC2 和 ETC(ETC1 用于 RGB,ETC2 用于 RGBA)。有关不同设置之间如何交互的更多信息,请参阅 纹理压缩设置

对于 LDR RGB 和 RGBA 纹理,大多数支持 OpenGL ES 3.1 或 Vulkan 的现代 Android GPU 也支持 ASTC 格式,包括:Qualcomm GPU 自 Adreno 4xx / Snapdragon 415(2015 年)、ARM GPU 自 Mali T624(2012 年)、NVIDIA GPU 自 Tegra K1(2014 年)、PowerVR GPU 自 GX6250(2014 年)。

如果您需要支持旧设备或想要额外的 Crunch 压缩,那么运行 Vulkan 或 OpenGL ES 3.0 的所有 GPU 都支持 ETC2 格式。生成的图像质量相当高,并且支持一到四组件的纹理数据。OpenGL ES 2 设备不支持 ETC2 格式,因此 Unity 将在运行时将其解压缩为 ETC2 降级 指定的格式。对于更旧的设备,通常只有 ETC 格式可用。缺点是没有直接的颜色通道支持。对于 精灵2D 图形对象。如果您习惯于在 3D 中工作,精灵基本上是普通纹理,但在开发期间,组合和管理精灵纹理的技术特别为效率和方便而设计。 更多信息
词汇表 中查看
,Unity 提供了一个选项,在导入 精灵图集由多个较小的纹理组成的纹理。也称为纹理图集、图像精灵、精灵纸或打包纹理。 更多信息
词汇表 中查看
时启用 Android 特定的 分割 Alpha 通道 选项。精灵 着色器在 GPU 上运行的程序。 更多信息
词汇表 中查看
从两个纹理中采样并合并它们以形成最终结果。

对于 HDR 纹理,Android 设备上可用的压缩格式仅为 ASTC HDR。ASTC HDR 需要 Vulkan 或 GL_KHR_texture_compression_astc_hdr 支持。ASTC 是最灵活的格式。如果设备不支持 ASTC HDR,则在运行时将纹理解压缩为 RGB9e5 或 RGBA Half,具体取决于颜色通道的使用情况。

对于不支持 ASTC HDR 的设备,所有运行 Vulkan、Metal 或 OpenGL ES 3.0 的设备都支持 RGB9e5,这对于没有 Alpha 通道的纹理很合适。如果需要 Alpha 通道或更广泛的兼容性,请使用 RGBA Half。这比 RGB9e5 使用两倍多的内存。

请参阅受支持的纹理格式参考表,以获取所有受支持格式的详细信息。

各平台默认的纹理格式

下表显示了每个平台使用的默认格式。

平台 色彩模型 普通质量(默认) 高质量 低质量(更高性能)
Windows,Linux,macOS RGB RGB 24位 RGB 压缩 DXT1 RGB(A) 压缩 BC7 RGB 压缩 DXT1
RGBA RGBA 32位 RGBA 压缩 DXT5 RGB(A) 压缩 BC7 RGBA 压缩 DXT5
HDR RGBA 半精度 RGB 压缩 BC6H RGB 压缩 BC6H RGB 压缩 BC6H
WebGL一种JavaScript API,可以在网页浏览器中渲染2D和3D图形。Unity WebGL构建选项允许Unity将内容发布为JavaScript程序,这些程序使用HTML5技术和WebGL渲染API在网页浏览器中运行Unity内容。更多信息
词汇表中查看
- 桌面(可配置
RGB RGB 24位 RGB 压缩 DXT1 RGB 压缩 DXT1 RGB 压缩 DXT1
RGBA RGBA 32位 RGBA 压缩 DXT5 RGBA 压缩 DXT5 RGBA 压缩 DXT5
WebGL - 移动(可配置 RGB RGB 24位 RGBA 压缩 ASTC 6x6 block
RGB 压缩 ETC2
RGB 压缩 ETC
RGBA 压缩 ASTC 4x4 block
RGB 压缩 ETC2
RGB 压缩 ETC
RGBA 压缩 ASTC 8x8 block
RGB 压缩 ETC2
RGB 压缩 ETC
RGBA RGBA 32位 RGBA 压缩 ASTC 6x6 block
RGBA 压缩 ETC2
RGBA 压缩 ASTC 4x4 block
RGBA 压缩 ETC2
RGBA 压缩 ASTC 8x8 block
RGBA 压缩 ETC2
Android(《RGB RGB 24位 RGBA 压缩 ASTC 6x6 block
RGB 压缩 ETC2
RGB 压缩 ETC
RGBA 压缩 ASTC 4x4 block
RGB 压缩 ETC2
RGB 压缩 ETC
RGBA 压缩 ASTC 8x8 block
RGB 压缩 ETC2
RGB 压缩 ETC
RGBA RGBA 32位 RGBA 压缩 ASTC 6x6 block
RGBA 压缩 ETC2
RGBA 压缩 ASTC 4x4 block
RGBA 压缩 ETC2
RGBA 压缩 ASTC 8x8 block
RGBA 压缩 ETC2
iOS(《可配置》) RGB RGB 24位 RGBA 压缩 ASTC 6x6 block
RGB 压缩 PVRTC 4位
RGBA 压缩 ASTC 4x4 block
RGB 压缩 PVRTC 4位
RGBA 压缩 ASTC 8x8 block
RGB 压缩 PVRTC 2位
RGBA RGBA 32位 RGBA 压缩 ASTC 6x6 block
RGBA 压缩 PVRTC 4位
RGBA 压缩 ASTC 4x4 block
RGBA 压缩 PVRTC 4位
RGBA 压缩 ASTC 8x8 block
RGBA 压缩 PVRTC 2位
tvOS RGB RGB 24位 RGBA 压缩 ASTC 6x6 block RGBA 压缩 ASTC 4x4 block RGBA 压缩 ASTC 8x8 block
RGBA RGBA 32位 RGBA 压缩 ASTC 6x6 block RGBA 压缩 ASTC 4x4 block RGBA 压缩 ASTC 8x8 block
默认 RGBA RGBA 32位 RGBA 16位 RGBA 16位 RGBA 16位

按质量排序的纹理格式

下表显示了Unity中每个格式及其质量详细信息。

纹理格式 描述 通道 质量 每像素位 1024x1024纹理大小,以MB为单位
RGB(A) 压缩 BC7 压缩RGB或RGBA RGB或RGBA 8 1
RGBA 压缩 DXT5 压缩RGBA,具有额外的磁盘压缩 RGBA 低到中等 变量 变量
RGBA 64位 未压缩RGBA,非常高的精度 RGBA 非常高 64 8
RGBA 32位 未压缩RGBA RGBA 32 4
RGBA 16位 量化RGBA RGBA 中等 16 2
RGB 压缩 DXT1 压缩RGB(也称为BC1) RGB 中等 4 0.5
RGB 压缩 DXT1 压缩RGB,具有额外的磁盘压缩 RGB 低到中等 变量 变量
RGB 48位 未压缩RGB,非常高的精度。转换为RGBA 64位以供GPU使用 RGB 非常高 48磁盘,64GPU 6磁盘,8GPU
RGB 24位 未压缩RGB。转换为RGBA 32位以供GPU使用 RGB 24磁盘,32GPU 3磁盘,4GPU
RGB 16位 量化RGB RGB 中等 16 2
RG 压缩 BC5 压缩双通道(RG) RG 8 1
RG 32位 未压缩双通道(RG),非常高的精度 RG 非常高 32 4
R 压缩 BC4 压缩单通道(R) R 4 0.5
R 8 未压缩单通道(R) R 8 1
R 16位 未压缩单通道(R),非常高的精度 R 非常高 16 2
Alpha 8 未压缩单通道(A) A 8 1
RGBA 半精度 HDR,半精度(FP16)RGBA,范围从-64k到+64k RGBA 64 8
RGB 压缩 BC6H HDR,压缩RGB,范围从0到+64k RGB 8 1
RGB9e5 32位共享指数浮点数 HDR,量化RGB,范围从0到+64k RGB 中等 32 4
RGB(A) 压缩 ASTC 压缩RGB或RGBA,大小和品质取决于块大小 RGB或RGBA 低到高 12x12:0.89,10x10:1.28,8x8:2,6x6:3.56,5x5:5.12,4x4:8 12x12:0.11,10x10:0.16,8x8:0.25,6x6:0.45,5x5:0.64,4x4:1.0
RGBA 压缩 ETC2 压缩RGBA RGBA 中等 8 1
RGBA 压缩 ETC2 压缩RGBA,具有额外的磁盘压缩 RGBA 低到中等 变量 变量
RGB + 1位Alpha 压缩 ETC2 4位 压缩RGBA,透明度为全不透明或全透明 RGBA 中等 4 0.5
RGBA 压缩 PVRTC 4位 压缩RGBA,必须为方形纹理 RGBA 中等 4 0.5
RGBA 压缩 PVRTC 2位 压缩RGBA,必须为方形纹理 RGBA 2 0.25
RGB 压缩 ETC2 压缩RGB RGB 中等 4 0.5
RGB 压缩 ETC 压缩RGB RGB 4 0.5
RGB 压缩 ETC 压缩RGB,具有额外的磁盘压缩 RGB 变量 变量
RGB 压缩 PVRTC 4位 压缩RGB,必须为方形纹理 RGB 中等 4 0.5
RGB 压缩 PVRTC 2位 压缩RGB,必须为方形纹理 RGB 2 0.25
RG 压缩 EAC 8位 压缩双通道(RG) RG 8 1
R 压缩 EAC 4位 压缩单通道(R) R 4 0.5
RGB(A) 压缩 ASTC HDR HDR,压缩RGB或RGBA,尺寸和质量取决于块大小 RGB或RGBA 低到高 12x12:0.89,10x10:1.28,8x8:2,6x6:3.56,5x5:5.12,4x4:8 12x12:0.11,10x10:0.16,8x8:0.25,6x6:0.45,5x5:0.64,4x4:1.0

各平台支持的纹理格式

下表显示了Unity中可用的每种纹理格式及其支持的平台。

纹理格式 Windows macOS Linux Android iOS & tvOS WebGL(桌面浏览器) WebGL(iOS和Android浏览器)
RGB(A) 压缩 BC7 是(1) 是(1) 是(1)
RGBA 压缩 DXT5 否(3) 部分(2)
RGBA 压缩 DXT5 否(3) 部分(2)
RGBA 64位 部分(6)
RGBA 32位
RGBA 16位
RGB 压缩 DXT1 否(3) 部分(2)
RGB 压缩 DXT1 否(3) 部分(2)
RGB 48位 部分(6)
RGB 24位
RGB 16位
RG 压缩 BC5
RG 32位 部分(6)
R 压缩 BC4
R 8 部分(5) 部分(5) 部分(5)
R 16位 部分(6) 部分(6) 是(14) 是(14)
Alpha 8
RGBA 半精度 部分(7) 部分(7) 部分(7)
RGB 压缩 BC6H 是(1) 是(1) 是(1)
RGB9e5 32位共享指数浮点数 部分(4) 部分(4) 部分(4)
RGB(A) 压缩 ASTC 部分(8) 是(10) 是(13 & 10)
RGBA 压缩 ETC2 部分(9)
RGBA 压缩 ETC2 部分(9)
RGB + 1位Alpha 压缩 ETC2 4位 部分(9)
RGBA 压缩 PVRTC 4位 否(12)
RGBA 压缩 PVRTC 2位 否(12)
RGB 压缩 ETC2 部分(9)
RGB 压缩 ETC
RGB 压缩 ETC
RGB 压缩 PVRTC 4位 否(12)
RGB 压缩 PVRTC 2位 否(12)
RG 压缩 EAC 8位 部分(9)
R 压缩 EAC 4位 部分(9)
RGB(A) 压缩 ASTC HDR 部分(11) 部分(11) 部分(11)

注释

  1. 除了在DX11级别以下的GPU上,或者macOS上使用WebGL或OpenGL时。如果不支持,BC6H纹理在加载时会被解压缩到RGBA Half,而BC7会被解压缩到RGBA32。
  2. 在不支持sRGB DXT的Web浏览器上进行线性渲染时,纹理在加载时会解压缩到RGBA32。
  3. 除了配备NVIDIA Tegra GPU的Android设备;这些设备支持DXT/BC格式。
  4. 除了OpenGL ES 2.0 / WebGL 1。
  5. 当在OpenGL ES 2.0 / WebGL 1上时:需要GL_EXT_texture_rg扩展支持。
  6. 需要GL_EXT_texture_norm16或相应的Vulkan功能在Android上。
  7. 当在OpenGL ES 2.0 / WebGL 1上时:需要OES_texture_half_float扩展支持。
  8. 需要Vulkan或GL_KHR_texture_compression_astc_ldr OpenGL ES扩展。
  9. 除了OpenGL ES 2.0;在这个平台上,ETC2纹理会被解压缩成Android构建设置平台特定覆盖中指定的格式。
  10. 除了2013年推出的Apple A7芯片设备。
  11. Android:需要GL_KHR_texture_compression_astc_hdr扩展。iOS:需要A13或更高版本的芯片(2019)。WebGL:需要WEBGL_compressed_texture_astc扩展和HDR配置文件。如果不支持,纹理会被解压缩到RGB9E5格式,丢失alpha通道。
  12. 除了配备Imagination PowerVR GPU的Android设备;这些设备支持PVRTC格式。
  13. 需要WEBGL_compressed_texture_astc扩展。
  14. 需要EXT_texture_norm16扩展和WebGL 2。

WebGL支持的纹理格式

下表提供了WebGL支持的纹理格式。

格式 描述
ASTC 自适应可伸缩纹理压缩(ASTC)是一种高级有损纹理压缩格式。广泛应用于移动浏览器/设备。
DXT 也称为S3纹理压缩(S3TC),DXT主要应用于桌面浏览器和设备。
ETC2 爱立信纹理压缩(ETC)是一种较旧的损失性纹理压缩格式,质量低于ASTC,用于移动浏览器/设备。

更多信息

TextureImporterOverride

纹理格式
米柏图(Mipmaps)