Unity 编辑器可以导入许多常用格式的纹理源文件,例如 JPEG 或 PNG。但是,GPU 在运行时不会使用这些格式;相反,它们使用不同的、专门的格式,这些格式针对内存使用和采样操作速度进行了优化。
您可以在纹理资源的导入设置中配置纹理的压缩一种存储数据的方法,可以减少其所需的存储空间。请参阅 纹理压缩、动画压缩、音频压缩、构建压缩。
请参阅 术语表格式。当您将纹理资源添加到项目中时,Unity 编辑器会自动为每个构建目标选择合适的压缩格式;但是,大多数平台支持多种纹理压缩3D 图形硬件需要将纹理压缩为专门的格式,这些格式针对快速纹理采样进行了优化。 更多信息
请参阅 术语表格式。
纹理压缩格式会影响加载时间、GPU 帧时间、内存使用情况、视觉质量、构建大小和压缩时间;因此,在更改此设置之前,了解此主题非常重要。
此页面包含以下信息
有关纹理资源导入设置的一般信息,请参阅 纹理导入设置。有关每个平台的推荐、默认和支持的纹理压缩格式的信息,请参阅 按平台推荐、默认和支持的纹理压缩格式。
每像素计算机图像中的最小单位。像素大小取决于屏幕分辨率。像素照明是在每个屏幕像素处计算的。 更多信息
请参阅 术语表位数 (bpp) 是单个纹理像素所需的存储量。bpp 值较低的纹理在磁盘和内存中的大小更小。较低的 bpp 值也意味着 GPU 使用更少的内存带宽来读取纹理像素。GPU 内存带宽通常是帧速率的瓶颈,因此纹理压缩有助于避免这种情况。
纹理资源的视觉质量越高,每像素位数就越高;这会导致构建大小、加载时间和运行时内存使用量增加。所有纹理压缩格式在某种程度上都是有损的。未压缩的纹理提供最高的质量,但它们的每像素位数也最高。不同的纹理压缩格式提供了不同的权衡。
通常,为了获得最佳的运行时性能和磁盘大小,对于大多数纹理资源,您应该选择目标设备支持的纹理压缩格式,并且对于所需的视觉质量,该格式的每像素位数最少。
当您将纹理用于特定目的时,可以更改其各个设置。例如,如果您仅使用一个通道的纹理作为蒙版,则可以选择 BC4 格式以减小文件大小但保留质量。如果您将某些纹理用于像素完美的UI(用户界面) 允许用户与您的应用程序交互。Unity 目前支持三种 UI 系统。 更多信息
请参阅 术语表,则可以选择不压缩它们。
选择目标平台和设备支持的格式。当 Unity 加载设备不支持的压缩格式的纹理时,它会将纹理解压缩为该平台的默认未压缩格式,并将未压缩的副本与原始压缩纹理一起存储在内存中。这会增加纹理加载时间并使用额外的内存。当 Unity 加载设备支持的压缩格式的纹理时,GPU 可以使用数据而无需任何转换。
Crunch 是一种压缩格式,它基于 DXT 或 ETC 压缩,通过提供额外的可变比特率压缩来工作。当 Unity 加载 Crunch 压缩的纹理时,它会在 CPU 上将纹理解压缩为 DXT 或 ETC,然后将 DXT 或 ETC 压缩的纹理数据上传到 GPU。
Crunch 压缩有助于纹理使用尽可能少的磁盘空间,但对运行时内存使用量没有影响。Crunch 纹理可能需要很长时间才能压缩,但运行时解压缩速度相当快。您可以调整 Crunch 压缩的有损程度,以在文件大小和质量之间取得平衡。
如果您特别关注构建的大小并且目标平台支持 Crunch,请考虑添加 Crunch 压缩。
有关纹理导入设置以及如何设置特定于平台的覆盖的信息,请参阅 纹理导入设置。