版本:Unity 6 (6000.0)
语言:英语
GPU 纹理格式基础知识
GPU 纹理格式参考

根据平台选择 GPU 纹理格式

台式机

对于配备了 DirectX 11 或更高等级 GPU 设备,保证支持 BC7 和 BC6H 格式,建议的压缩存储数据的某种方法,它可以减少它所需存储空间的大小。请参阅纹理压缩动画压缩音频压缩构建压缩
参见词典
格式为:RGB 纹理 - 每像素计算机图像中的最小单位。像素尺寸取决于您的屏幕分辨率。像素光照计算在屏幕的每个像素上进行。更多信息
参见词典
四位 DXT1。RGBA 纹理 - BC7(更高质量,压缩更慢)或 DXT5(压缩更快),每像素八位。HDR 纹理 - 每像素八位 BC6H。如果您需要在 PC 上支持 DirectX 10 级 GPU(2010 年之前的 NVIDIA GPU,2009 年之前的 AMD,2012 年之前的英特尔),则首选 DXT5 而非 BC7,因为这些 GPU 不支持 BC7 或 BC6H。

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

iOS 和 tvOS

对于使用 A8 芯片(2014 年)及更新版本 Apple 设备,ASTC 是适用于 RGB 和 RGBA 纹理的推荐 纹理格式一种文件格式,用于在 3D 图形硬件(如显卡或移动设备)进行实时渲染期间处理纹理。 更多信息
请参阅 词汇表
。此格式允许您在精细级别中选择纹理质量和大小:一路从每像素 8 位(4x4 块大小)下降到每像素 0.89 位(12x12 块大小)。如果需要支持旧设备或您需要附加 Crunch 压缩,则 Apple 设备从 A7 芯片(2013 年)开始支持 ETC/ETC2 格式。对于更旧的设备,PVRTC 是要使用的格式。在 iOS 上,您可以在 播放器设置可让您为 Unity 构建的最终游戏设置各种特定于播放器的选项的设置。 更多信息
请参阅 词汇表
中配置默认纹理格式。PVRTC 为您提供了最广泛的兼容性。ASTC 是首选,但 A7 设备(首个支持 Metal 的设备)不支持它,并且它会在运行时解包。

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

安卓

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

您可以在 播放器设置 中选择默认格式。您的选项包括 ASTC、ETC2 和 ETC(ETC1 用于 RGB,ETC2 用于 RGBA)。请参阅 纹理压缩设置,以了解不同设置的交互方式的更多详情。

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

如果您需要对较旧设备提供支持,或您想要额外的 Crunch 压缩,那么所有运行 Vulkan 或 OpenGL ES 3.0 的 GPU 都支持 ETC2 格式。由此得到图像质量相当高,它支持一到四分量纹理数据。对于甚至更旧的设备,通常只有 ETC 格式可用。缺点是没有提供直接 alpha 通道支持。对于 精灵2D 图形对象。如果您习惯于 3D 工作,精灵本质上只是标准纹理,只不过在开发期间为提高效率和便利而提供了一些合并和管理精灵纹理的专门技术。 更多信息
请参见 词汇表
,Unity 提供了一种通过将纹理拆分为两个 ETC1 纹理来使用 ETC1 压缩的选项:一个用于 RGB,另一个用于 alpha。要启用此功能,当导入 精灵图集一种实用工具,它将多个精灵纹理紧密地打包在一个称为图集的单个纹理中。 更多信息
请参见 词汇表
时,为纹理启用特定于 Android 的 分离 Alpha 通道 选项。精灵 着色器在 GPU 上运行的程序。 更多信息
请参见 词汇表
对这两个纹理进行采样,并将其合并到最终结果中。

对于不支持 ASTC 格式的较旧 Android 设备,纹理会被解压缩为未压缩 RGBA 32 位格式。这会增加内存使用量,并且可能会减慢在 CPU 上执行的解压缩速度。

对于 HDR高动态范围
请参见 词汇表
纹理,ASTC HDR 是 Android 设备上可用的唯一压缩格式。ASTC HDR 需要 Vulkan 或 GL_KHR_texture_compression_astc_hdr 支持。ASTC 是最灵活的格式。如果设备不支持 ASTC HDR,则根据 alpha 通道使用情况,纹理会在运行时解压缩为 RGB9e5 或 RGBA Half。

对于不支持 ASTC HDR 的设备,所有运行 Vulkan、Metal 或 OpenGL ES 3.0 的设备都支持 RGB9e5,它适合没有 alpha 通道的纹理。如果需要 alpha 通道或甚至更广泛的支持,请使用 RGBA Half。它的内存占用是 RGB9e5 的两倍。

如果您想将应用程序分发到 Google Play,最佳做法是使用 纹理压缩定位

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

GPU 纹理格式基础知识
GPU 纹理格式参考