本页包含以下信息:
此页面不包含有关游戏主机平台的信息。有关游戏主机平台的信息,请参阅特定于平台的文档。
有关纹理压缩格式的概述,请参阅纹理压缩格式。有关纹理导入设置以及如何设置特定于平台的覆盖的一般信息,请参阅纹理导入设置。
本页用到了以下术语:
对于具有 DirectX 11 或更高级别 GPU 的设备,可保证支持 BC7 和 BC6H 格式,推荐的压缩格式选择是: RGB 纹理 - DXT1 4 位/像素。 RGBA 纹理 - BC7(质量更高,压缩速度较慢)或 DXT5(压缩速度较快),均为 8 位/像素。 HDR 纹理 - BC6H 8 位/像素。 如果您需要在 PC 上支持 DirectX 10 类 GPU(2010 年之前的 NVIDIA GPU,2009 年之前的 AMD,2012 年之前的 Intel),则首选 DXT5(而不是 BC7),因为这些 GPU 不支持 BC7 和 BC6H。
有关所有支持格式的详细信息,请参阅支持的纹理压缩格式参考表。
对于使用 A8 芯片 (2014) 或以上的 Apple 设备,ATSC 是 RGB 和 RGBA 纹理的推荐纹理压缩格式。这种格式允许您在粒度级别对纹理质量和大小进行选择:从 8 位/像素(4x4 块大小)开始直至 0.89 位/像素(12x12 块大小)。 如果需要支持旧设备,或者您想要额外的 Crunch 压缩,从 A7 芯片 (2013) 起的 Apple 设备支持 ETC/ ETC2 格式。 对于更旧的设备,需要使用 PVRTC 压缩格式。 在 iOS 上,Unity 的默认纹理压缩格式是 PVRTC,以获得尽可能广泛的兼容性。ASTC 是首选,但在 A7 设备(第一个支持 Metal 的设备)上不受支持,将在运行时解压缩。
有关所有支持格式的详细信息,请参阅支持的纹理压缩格式参考表。
Android 上的纹理压缩支持很复杂,您可能需要针对不同的子目标构建多个不同版本的应用程序。
除非您的应用针对的是特定硬件,支持有限范围的纹理压缩格式,您可在几种压缩格式和未压缩格式之间进行选择,考虑不同的取舍因素。
对于 LDR RGB 和 RGBA 纹理,大多数现代 Android GPU 都支持 ASTC 压缩格式,包括: 自 Adreno 4xx 的 Qualcomm GPU/Snapdragon 415 (2015) 自 Mali T624 (2012) 的 ARM GPU 自 Tegra K1 (2014) 的 NVIDIA GPU 自 GX6250 (2014) 的 PowerVR GPU 如果您需要对旧设备的支持,或者您想要额外的 Crunch 压缩,所有运行 Vulkan 或 Metal 或 OpenGL ES 3.0 的 GPU 都支持 ETC2 格式。产生的图像质量非常高,并且支持一到四分量纹理数据。OpenGL ES 2 设备不支持 ETC2 格式,因此 Unity 在运行时将纹理解压缩为 ETC2 回退为该格式指定的格式。 对于更旧的设备,通常只有 ETC 格式可用。缺点是没有直接的 Alpha 通道支持。对于精灵,Unity 提供了一个选项,通过将纹理拆分为两个 ETC1 纹理来使用 ETC1 压缩:一个用于 RGB,一个用于 Alpha。为此,请在导入精灵图集时为纹理启用特定于 Android 的 Split Alpha Channel 选项。精灵着色器对两个纹理进行采样并将它们组合成最终结果。 对于 HDR 纹理,ASTC HDR 是 Android 设备上唯一可用的压缩格式。ASTC HDR 需要 Vulkan 或 GL_KHR_texture_compression_astc_hdr 支持。ASTC 是最灵活的格式。
对于不支持 ASTC HDR 的设备,所有运行 Vulkan、Metal 或 OpenGL ES 3.0 的设备都支持 RGB9e5,适用于没有 Alpha 通道的纹理。如果需要 Alpha 通道或更广泛的支持,请使用 RGBA Half。这种格式占用的内存是 RGB9e5 的两倍。
有关所有支持格式的详细信息,请参阅支持的纹理压缩格式参考表。
下表显示了每个平台使用的默认格式。
平台 | 颜色模型 | 无 | 正常质量(默认设置) | 高质量 | 低质量(更高性能) |
---|---|---|---|---|---|
Windows、Linux、macOS | RGB | RGB 24 位 | RGB Compressed DXT1 | RGB(A) Compressed BC7 | RGB Compressed DXT1 |
RGBA | RGBA 32 位 | RGBA Compressed DXT5 | RGB(A) Compressed BC7 | RGBA Compressed DXT5 | |
HDR | RGBA Half | RGB Compressed BC6H | RGB Compressed BC6H | RGB Compressed BC6H | |
WebGL | RGB | RGB 24 位 | RGB Compressed DXT1 | RGB Compressed DXT1 | RGB Compressed DXT1 |
RGBA | RGBA 32 位 | RGBA Compressed DXT5 | RGBA Compressed DXT5 | RGBA Compressed DXT5 | |
Android(仅当在构建设置中启用了 Don’t override 时) | RGB | RGB 24 位 | RGB Compressed ETC | RGB Compressed ETC | RGB Compressed ETC |
RGBA | RGBA 32 位 | RGBA Compressed ETC2 | RGBA Compressed ETC2 | RGBA Compressed ETC2 | |
iOS | RGB | RGB 24 位 | RGB Compressed PVRTC 4 位 | RGB Compressed PVRTC 4 位 | RGB Compressed PVRTC 2 位 |
RGBA | RGBA 32 位 | RGBA Compressed PVRTC 4 位 | RGBA Compressed PVRTC 4 位 | RGBA Compressed PVRTC 2 位 | |
tvOS | RGB | RGB 24 位 | RGB Compressed ASTC 6x6 块 | RGB Compressed ASTC 4x4 块 | RGB Compressed ASTC 8x8 块 |
RGBA | RGBA 32 位 | RGBA Compressed ASTC 6x6 块 | RGBA Compressed ASTC 4x4 块 | RGBA Compressed ASTC 8x8 块 | |
Default | RGBA | RGBA 32 位 | RGBA 16 位 | RGBA 16 位 | RGBA 16 位 |
下表显示了 Unity 中可用的每种压缩格式,以及支持它的平台。
纹理压缩格式 | 描述 | 通道 | Quality | 每像素位数 | 1024x1024 纹理的大小,以 MB 为单位 | Windows | Mac | Linux | Android | iOS 和 tvOS | WebGL |
---|---|---|---|---|---|---|---|---|---|---|---|
RGB(A) Compressed BC7 | 压缩 RGB 或 RGBA | RGB 或 RGBA。 | 高 | 8 | 1 | 是 (1) | 是 (1) | 是 | no | no | no |
RGBA Compressed DXT5 | 压缩 RGBA(也称为 BC3) | RGBA | 中 | 8 | 1 | 是 | 是 | 是 | 否 (3) | no | 部分 (2) |
RGBA Crunched DXT5 | Compressed RGBA,采用额外的磁盘上 Crunch 压缩。 | RGBA | 低到中 | 可变 | 可变 | 是 | 是 | 是 | 否 (3) | no | 部分 (2) |
RGBA 64 位 | 未压缩 RGBA,精度非常高 | RGBA | 非常高 | 64 | 8 | 是 | 是 | 是 | 部分 (6) | 是 | no |
RGBA 32 位 | 未压缩 RGBA | RGBA | 高 | 32 | 4 | 是 | 是 | 是 | 是 | 是 | 是 |
RGBA 16 位 | 量化 RGBA | RGBA | 中 | 16 | 2 | 是 | 是 | 是 | 是 | 是 | 是 |
RGB Compressed DXT1 | 压缩 RGB(也称为 BC1) | RGB | 中 | 4 | 0.5 | 是 | 是 | 是 | 否 (3) | no | 部分 (2) |
RGB Crunched DXT1 | 压缩 RGB,采用额外的磁盘上 Crunch 压缩。 | RGB | 低到中 | 可变 | 可变 | 是 | 是 | 是 | 否 (3) | no | 部分 (2) |
RGB 48 位 | 未压缩 RGB,精度非常高。为 GPU 转换为 RGBA 64 位 | RGB | 非常高 | 48(磁盘),64(GPU) | 6(磁盘),8(GPU) | 是 | 是 | 是 | 部分 (6) | 是 | no |
RGB 24 位 | 未压缩 RGB。为 GPU 转换为 RGBA 32 位 | RGB | 高 | 24(磁盘),32(GPU) | 3(磁盘),4(GPU) | 是 | 是 | 是 | 是 | 是 | 是 |
RGB 16 位 | 量化 RGB | RGB | 中 | 16 | 2 | 是 | 是 | 是 | 是 | 是 | 是 |
RG Compressed BC5 | 压缩双通道 (RG) | RG | 高 | 8 | 1 | 是 | 是 | 是 | no | no | no |
RG 32 位 | 未压缩双通道 (RG),精度非常高 | RG | 非常高 | 32 | 4 | 是 | 是 | 是 | 部分 (6) | 是 | no |
R Compressed BC4 | 压缩单通道 (R) | R | 高 | 4 | 0.5 | 是 | 是 | 是 | no | no | no |
R 8 | 未压缩单通道 (R) | R | 高 | 8 | 1 | 是 | 是 | 是 | 部分 (5) | 是 | 部分 (5) |
R 16 位 | 未压缩单通道 (R),精度非常高 | R | 非常高 | 16 | 2 | 是 | 是 | 是 | 部分 (6) | 部分 (6) | no |
Alpha 8 | 未压缩单通道 (A) | A | 高 | 8 | 1 | 是 | 是 | 是 | 是 | 是 | 是 |
RGBA Half | HDR,半精度 (FP16) RGBA,–64k 至 +64k 范围 | RGBA | 高 | 64 | 8 | 是 | 是 | 是 | 部分 (7) | 是 | 部分 (7) |
RGB Compressed BC6H | HDR,压缩 RGB,0 到 +64k 范围 | RGB | 高 | 8 | 1 | 是 (1) | 是 (1) | 是 | no | no | no |
RGB9e5 32 位共享指数浮点 | HDR,量化 RGB,0 到 +64k 范围 | RGB | 中 | 32 | 4 | 是 | 是 | 是 | 部分 (4) | 是 | 部分 (4) |
RGB(A) Compressed 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 | no | no | no | 部分 (8) | 是 (10) | no |
RGBA Compressed ETC2 | 压缩 RGBA | RGBA | 中 | 8 | 1 | no | no | no | 部分 (9) | 是 | no |
RGBA Crunched ETC2 | Compressed RGBA,采用额外的磁盘上 Crunch 压缩。 | RGBA | 低到中 | 可变 | 可变 | no | no | no | 部分 (9) | 是 | no |
RGB + 1 位 Alpha Compressed ETC2 4 位 | 压缩 RGBA,Alpha 值完全不透明或完全透明 | RGBA | 中 | 4 | 0.5 | no | no | no | 部分 (9) | 是 | no |
RGBA Compressed PVRTC 4 位 | 压缩 RGBA,纹理要求为方形 | RGBA | 中 | 4 | 0.5 | no | no | no | 否 (12) | 是 | no |
RGBA Compressed PVRTC 2 位 | 压缩 RGBA,纹理要求为方形 | RGBA | 低 | 2 | 0.25 | no | no | no | 否 (12) | 是 | no |
RGB Compressed ETC2 | 压缩 RGB | RGB | 中 | 4 | 0.5 | no | no | no | 部分 (9) | 是 | no |
RGB Compressed ETC | 压缩 RGB | RGB | 低 | 4 | 0.5 | no | no | no | 是 | 是 | no |
RGB Crunched ETC | 压缩 RGB,采用额外的磁盘上 Crunch 压缩。 | RGB | 低 | 可变 | 可变 | no | no | no | 是 | 是 | no |
RGB Compressed PVRTC 4 位 | 压缩 RGB,纹理要求为方形 | RGB | 中 | 4 | 0.5 | no | no | no | 否 (12) | 是 | no |
RGB Compressed PVRTC 2 位 | 压缩 RGB,纹理要求为方形 | RGB | 低 | 2 | 0.25 | no | no | no | 否 (12) | 是 | no |
RG Compressed EAC 8 位 | 压缩双通道 (RG) | RG | 高 | 8 | 1 | no | no | no | 部分 (9) | 是 | no |
R Compressed EAC 4 位 | 压缩单通道 (R) | R | 高 | 4 | 0.5 | no | no | no | 部分 (9) | 是 | no |
RGB(A) Compressed 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 | no | no | no | 部分 (11) | 部分 (11) | no |
注意:
Did you find this page useful? Please give it a rating:
Thanks for rating this page!
What kind of problem would you like to report?
Thanks for letting us know! This page has been marked for review based on your feedback.
If you have time, you can provide more information to help us fix the problem faster.
Provide more information
You've told us this page needs code samples. If you'd like to help us further, you could provide a code sample, or tell us about what kind of code sample you'd like to see:
You've told us there are code samples on this page which don't work. If you know how to fix it, or have something better we could use instead, please let us know:
You've told us there is information missing from this page. Please tell us more about what's missing:
You've told us there is incorrect information on this page. If you know what we should change to make it correct, please tell us:
You've told us this page has unclear or confusing information. Please tell us more about what you found unclear or confusing, or let us know how we could make it clearer:
You've told us there is a spelling or grammar error on this page. Please tell us what's wrong:
You've told us this page has a problem. Please tell us more about what's wrong:
Thank you for helping to make the Unity documentation better!
Your feedback has been submitted as a ticket for our documentation team to review.
We are not able to reply to every ticket submitted.