U3L2-5——参数设置—平台设置
U3L2-5——参数设置—平台设置
平台设置
平台设置主要设置纹理最终打包时在不同平台的尺寸、格式、压缩方式
它非常的重要,因为它影响了你的包大小和读取性能方面的问题
参数相关
-
Max Size:设置导入的纹理的最大尺寸,即使美术出的很大的图,也可以通过这里把它们限制在一定范围内
-
Resize Algorithm:当纹理尺寸大于指定的Max Size时,使用的缩小算法
- Mitchell:默认米切尔算法来调整大小,该算法是常用的尺寸缩小算法
- Bilinear:使用双线性插值来调整大小。如果细节很重要的图片,可以使用它,它比米切尔算法保留的细节更多
-
Format:纹理格式
各平台支持的格式有所不同,如果选择Automatic
会根据平台使用默认设置-
可见下文:都支持的格式(2019版文档)
-
可见下文:支持的纹理格式(2021版文档)
-
可见下文:移动端和网页端特有格式
-
关于格式选择的注意事项,根据不同平台单独进行设置
-
IOS
选择默认的纹理压缩设置 (PVRTC) 可获得更大的兼容性。
如果您的应用程序不包含 OpenGL ES 2 支持,则可以选择一种 ASTC 格式。
这些格式提供更好的质量和灵活性,并且压缩速度比 PVRTC 快。 -
Android
由于安卓设备众多,设备标准都不统一,一般会根据不同的设备标准制作多个安装包
可见下文:Android下各个格式选择的注意事项
-
构建一个以 OpenGL ES 3 为目标的 APK
- 1-1访问 Android 的 Player Settings
(菜单:Edit > Project Settings >Player Settings,然后选择 Android 类别)。 - 1-2.向下滚动到 Graphics APIs 部分。
- 1-3.确保 OpenGL ES 2 不在列表中。
- 1-4.构建 APK(菜单:File > Build Settings,然后单击 Build)。
- 1-1访问 Android 的 Player Settings
-
构建一个以 OpenGL ES 2 为目标的单独 APK
- 2-1访问 Android Player Settings。
- 2-2.向下滚动到 Graphics APIs 部分。
- 2-3.在列表中添加 OpenGL ES 2
- 并删除 OpenGL ES 3 和 Vulkan。
- 2-4.构建 APK。
-
-
-
-
Compression:选择纹理的压缩类型,帮助Unity正确选择压缩格式
会根据平台和压缩格式的可用性进行压缩
-
None:不压缩纹理
注意!像素风格游戏你可能需要选择该选项避免像素贴图变得模糊!
-
Low Quality:以低质量格式压缩纹理
-
Normal Quality:以标准格式压缩纹理
-
High Quality:以高质量格式压缩纹理
-
-
Use Crunch Compression:启用后,使用Crunch压缩。
Crunch是一种基于DXT或ETC纹理压缩的有损压缩格式。
压缩时间长,解压速度快。
压缩质量,质量越高意味着纹理越大,压缩事件越长 -
Split Alpha Channel:Alpha通道分离,节约内存。
会把一张图分成两张纹理。一张包含RGB数据,一张包含Alpha数据,在渲染时再合并渲染。
-
Override ETC2 fallback:不支持ETC2压缩的设备上,使用的格式
支持的纹理格式(按平台,2021版文档)
Recommended, default, and supported texture formats, by platform - Unity 手册
|Texture format|Windows|macOS|Linux|Android|iOS 和 tvOS|WebGL
(Desktop Browsers)
|WebGL (iOS and Android browser)|
| --| --------| --------| ----| -----------| -----------| ----------| ---------------|
|RGB(A) Compressed BC7|是 (1)|是 (1)|是|no|no|yes (1)|no|
|RGBA Compressed DXT5|是|是|是|否 (3)|no|部分 (2)|no|
|RGBA Crunched DXT5|是|是|是|否 (3)|no|部分 (2)|no|
|RGBA 64 bit|是|是|是|部分 (6)|是|no|no|
|RGBA 32 bit|是|是|是|是|是|是|是|
|RGBA 16 bit|是|是|是|是|是|是|是|
|RGB Compressed DXT1|是|是|是|否 (3)|no|部分 (2)|no|
|RGB Crunched DXT1|是|是|是|否 (3)|no|部分 (2)|no|
|RGB 48 bit|是|是|是|部分 (6)|是|no|no|
|RGB 24 bit|是|是|是|是|是|是|是|
|RGB 16 bit|是|是|是|是|是|是|是|
|RG Compressed BC5|是|是|是|no|no|yes|no|
|RG 32 bit|是|是|是|部分 (6)|是|no|no|
|R Compressed BC4|是|是|是|no|no|yes|no|
|R 8|是|是|是|部分 (5)|是|部分 (5)|部分 (5)|
|R 16 bit|是|是|是|部分 (6)|部分 (6)|yes (14)|yes (14)|
|Alpha 8|是|是|是|是|是|是|是|
|RGBA Half|是|是|是|部分 (7)|是|部分 (7)|部分 (7)|
|RGB Compressed BC6H|是 (1)|是 (1)|是|no|no|yes (1)|no|
|RGB9e5 32 Bit Shared Exponent Float|是|是|是|部分 (4)|是|部分 (4)|部分 (4)|
|RGB(A) Compressed ASTC|no|no|no|部分 (8)|是 (10)|no|yes (13 & 10)|
|RGBA Compressed ETC2|no|no|no|部分 (9)|是|no|是|
|RGBA Crunched ETC2|no|no|no|部分 (9)|是|no|是|
|RGB + 1-bit Alpha Compressed ETC2 4 bits|no|no|no|部分 (9)|是|no|是|
|RGBA Compressed PVRTC 4 bits|no|no|no|否 (12)|是|no|no|
|RGBA Compressed PVRTC 2 bits|no|no|no|否 (12)|是|no|no|
|RGB Compressed ETC2|no|no|no|部分 (9)|是|no|是|
|RGB Compressed ETC|no|no|no|是|是|no|是|
|RGB Crunched ETC|no|no|no|是|是|no|是|
|RGB Compressed PVRTC 4 bits|no|no|no|否 (12)|是|no|no|
|RGB Compressed PVRTC 2 bits|no|no|no|否 (12)|是|no|no|
|RG Compressed EAC 8 bit|no|no|no|部分 (9)|是|no|是|
|R Compressed EAC 4 bit|no|no|no|部分 (9)|是|no|是|
|RGB(A) Compressed ASTC HDR|no|no|no|部分 (11)|部分 (11)|no|部分 (11)|
所有支持的纹理压缩格式(2019版文档)
下面的内容来自:特定于平台的覆盖的纹理压缩格式 - Unity 手册(2019版,全中文)
纹理压缩格式 | 描述 | 在内存中的大小 | Windows | Linux | Mac | PS4 | Xbox One | Android | iOS | tvOS | WebGL |
---|---|---|---|---|---|---|---|---|---|---|---|
RGB Compressed DXT1 | 压缩无符号标准化整数 RGB 纹理 | 32KB / 4 bpp | 是 | 是 | 是 | 是 | 是 | 部分 | 否 | 否 | 部分 |
RGB Crunched DXT1 | RGB 压缩 DXT1,以及额外的 Crunch 压缩 | VBR | 是 | 是 | 是 | 是 | 是 | 部分 | 否 | 否 | 部分 |
RGBA Compressed DXT5 | 压缩无符号标准化整数 RGBA 纹理 | 64KB / 8 bpp | 是 | 是 | 是 | 是 | 是 | 部分 | 否 | 否 | 部分 |
RGBA Crunched DXT5 | RGBA 压缩 DXT5,以及额外的 Crunch 压缩 | VBR | 是 | 是 | 是 | 是 | 是 | 部分 | 否 | 否 | 部分 |
RGB Compressed BC6H | 压缩无符号浮点/高动态范围 (HDR) RGB 纹理 | 64KB / 8 bpp | 部分 | 是 | 部分 | 是 | 是 | 否 | 否 | 否 | 否 |
RGB(A) Compressed BC7 | 高质量压缩无符号标准化整数 RGB 或 RGBA 纹理 | 64KB / 8 bpp | 部分 | 是 | 部分 | 是 | 是 | 否 | 否 | 否 | 否 |
RGB 16 位 | 未压缩格式,65536 色,无 Alpha。 使用比压缩格式更多的内存, 但可能更适合没有渐变的 UI 或清晰纹理 |
128KB / 16 bpp | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 |
RGB 24 位 | 真实色彩,无 Alpha | 192KB / 24 bpp | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 |
RGB9e5 32 位共享指数浮点 | 浮点 / 高动态范围 (HDR) 纹理, 无 Alpha 通道 |
256 KB / 32 bpp | 是 | 是 | 是 | 是 | 是 | 部分 | 部分 | 部分 | 部分 |
Alpha 8 | 高质量未压缩 Alpha 通道 | 64KB / 8 bpp | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 |
R 8 | 高质量未压缩单通道纹理 | 64KB / 8 bpp | 是 | 是 | 是 | 是 | 是 | 部分 | 部分 | 部分 | 部分 |
R 16 位 | 超高质量未压缩单通道纹理 | 128KB / 16 bpp | 是 | 是 | 是 | 是 | 是 | 部分 | 部分 | 部分 | 否 |
RGBA 16 位 | 低质量真实色彩 | 128KB / 16 bpp | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 |
RGBA 32 位 | 真实色彩,并有 Alpha | 256KB / 32 bpp | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 |
RGBA Half | 半精度浮点 / 高动态范围 (HDR) RGBA 格式 | 512KB / 64bpp | 是 | 是 | 是 | 是 | 是 | 部分 | 部分 | 部分 |
移动端和网页端特有格式
下面的内容来自:特定于平台的覆盖的纹理压缩格式 - Unity 手册(2019版,全中文)
纹理压缩格式 | 描述 | 大小 | Android | iOS | tvOS | WebGL |
---|---|---|---|---|---|---|
RGB Compressed ETC | 压缩 RGB 纹理。 所有 OpenGL ES 2.0 GPU 都支持该格式。 |
32KB / 4 bpp | 是 | 是 | 是 | 部分 (1) |
RGB Crunched ETC | RGB 压缩 ETC,以及额外的 Crunch 压缩。 | VBR | 是 | 是 | 是 | 部分 (1) |
RGB Compressed ETC2 | 压缩 RGB 纹理。 | 32KB / 4 bpp | 部分 (2) | 部分 | 部分 | 部分 (1) |
RGBA Compressed ETC2 | 压缩 RGBA 纹理。 所有 OpenGL ES 3.0 GPU 都支持该格式。 |
64KB / 8 bpp | 部分 (2) | 部分 | 部分 | 部分 (1) |
RGBA Crunched ETC2 | RGBA 压缩 ETC2,以及额外的 Crunch 压缩。 | VBR | 部分 (2) | 部分 | 部分 | 部分 (1) |
RGB + 1 位 Alpha Compressed ETC2 4 位 | 采用 Alpha 通道的压缩 RGBA 纹理被限制为完全不透明或完全透明。 | 32KB / 4 bpp | 部分 (2) | 部分 | 部分 | 部分 (1) |
RG Compressed EAC 8 位 | 高质量压缩 RG(双通道)纹理。 | 64KB / 8 bpp | 部分 (2) | 部分 | 部分 | 部分 (1) |
R Compressed EAC 4 位 | 高质量压缩 R(单通道)纹理。 | 32KB / 4 bpp | 部分 (2) | 部分 | 部分 | 部分 (1) |
RGB(A) Compressed ASTC |
可变块大小压缩 RGB 或 RGBA 纹理。 所有 OpenGL ES 3.1 和 Vulkan GPU 都支持该格式。 |
12x12:7744 字节 / 0.89 bpp 10x10:10816 字节 / 1.28 bpp 8x8:16KB / 2 bpp 6x6:29584 字节 / 3.56 bpp 5x5:43264 字节 / 5.12 bpp 4x4:64KB / 8 bpp |
部分 (4) | 部分 | 是 | 部分 (6) |
RGB(A) Compressed ASTC HDR |
可变块大小压缩无符号浮点/高动态范围 (HDR) RGB 或 RGBA 纹理。 | 12x12:7744 字节 / 0.89 bpp 10x10:10816 字节 / 1.28 bpp 8x8:16KB / 2 bpp 6x6:29584 字节 / 3.56 bpp 5x5:43264 字节 / 5.12 bpp 4x4:64KB / 8 bpp |
部分 (7) | 否 | 否 | 否 |
RGB Compressed PVRTC 2 位 (8) |
高压缩 RGB 纹理。 | 16KB / 2 bpp | 部分 (9) | 是 | 是 | 否 |
RGBA Compressed PVRTC 2 位 |
高压缩 RGBA 纹理。 | 16KB / 2 bpp | 部分 (9) | 是 | 是 | 否 |
RGB Compressed PVRTC 4 位 |
压缩 RGB 纹理。 | 32KB / 4 bpp | 部分 (9) | 是 | 是 | 否 |
RGBA Compressed PVRTC 4 位 |
压缩 RGBA 纹理。 | 32KB / 4 bpp | 部分 (9) | 是 | 是 | 否 |
Android平台下格式选择的注意事项
下面的内容来自:特定于平台的覆盖的纹理压缩格式 - Unity 手册(2019版,全中文)
除非您的应用程序针对的是特定硬件(例如 Nvidia Tegra 或 Imagination PowerVR),
否则必须在几种压缩格式和未压缩格式之间进行选择,这种情况下需要考虑不同的取舍因素:
格式 | 描述 | 支持 |
---|---|---|
ASTC | 最灵活的格式,允许您使用不同的块大小来微调文件大小和产生的质量。 | 在运行 Vulkan 或 OpenGL ES 3.1 的所有设备上以及在运行 OpenGL ES 3.0 的部分设备上受支持。 |
ETC2/EAC | OpenGL ES 3.0 的标准纹理压缩格式。产生的图像质量非常高,并且支持一到四分量纹理数据。OpenGL ES 2 设备不支持这种格式,因此纹理在运行时被解压缩为 ETC2 fallback 指定的格式。 | 在 OpenGL ES 3.0 上受支持。 在 OpenGL ES 2 上不受支持。 |
ETC | 基于块的纹理压缩格式。图像被分成 4×4 的块,并且每个块使用固定的位数进行编码。缺点是没有直接的 Alpha 通道支持,因此不适合具有透明度信息的纹理。Unity 提供了一种自动处理纹理的方法,这种方法将 Alpha 通道放在纹理图集内(可以在精灵上使用打包标签来指定这一点)。 为此,请在导入精灵图集时为纹理启用特定于 Android 的 Split Alpha Channel 选项。Unity 会将生成的图集拆分为两个纹理,其中一个纹理含有 RGB 数据,另一个纹理含有在所有三个 (RGB) 通道中重复的 Alpha 通道数据,然后在渲染管线的最后部分将这两个纹理组合起来。 |
在所有 Android 设备上都受支持。 |
RGBA 16 位 | 具有 Alpha 通道的未压缩格式。这种格式占用的内存是 ETC2 的两倍。对于没有强渐变且像素完美的 UI,这是一种相当不错的格式。 | 在所有设备上都受支持。 |
RGBA 32 位 | 未压缩的格式,可提供最高质量并具有 Alpha 通道支持。与 ETC2 相比,这种格式需要四倍的内存。这种格式适合外观最佳、像素完美的 UI。 | 在所有设备上都受支持。 |