纹理是覆盖或包裹游戏对象以赋予它们视觉效果的图像或电影文件。本页面将详细介绍用于管理纹理的属性。
Unity 会将 3D 项目的 Assets 文件夹中的所有图像或电影文件识别为纹理(在 2D 项目中保存为精灵)。只要图像满足下面指定的大小要求,就会将其导入并进行优化以用于游戏(但用于游戏对象的着色器会有特定的纹理要求)。此范围包括多层 Photoshop 或 TIFF 文件,这些文件在导入时会自动展平,这样就不会在游戏中造成大小损失。这种展平操作发生在 Unity 内部,而不是 PSD 文件本身内部,并且是可选操作,因此您可以继续保存和导入图层不变的 PSD 文件。
Inspector 窗口分为两部分:上面的__纹理导入器 (Texture Importer)__ 和下面的__预览 (Preview)__。
纹理导入器定义如何将图像从项目的 Assets 文件夹导入 Unity Editor。要访问纹理导入器,请在 Project 窗口中选择图像文件。纹理导入器将在 Inspector 窗口中打开。
请注意,默认情况下会隐藏一些不太常用的属性。在 Inspector 窗口中单击 Advanced 即可查看这些属性。
纹理导入器中的第一个属性是 Texture Type。使用此属性可选择要从源图像文件创建的纹理类型。请参阅有关纹理类型的文档以了解每种类型的更多相关信息。
属性: | 功能: |
---|---|
Texture Type | 使用此属性可定义纹理的用途。纹理导入器中的其他属性将根据此处的选择而变化。 |
Default | 这是用于所有纹理的最常用设置。此选项可用于访问大多数纹理导入属性。 |
Normal Map | 选择此选项可将颜色通道转换为适合实时法线贴图的格式。请参阅导入纹理以了解有关法线贴图的更多信息。 |
Editor GUI | 如果要在任何 HUD 或 GUI 控件上使用纹理,请选择此选项。 |
Sprite (2D and UI) | 如果要在 2D 游戏中使用该纹理作为精灵,请选择此选项。 |
Cursor | 如果要将纹理用作自定义游标,请选择此选项。 |
Cookie | 选择此选项可通过基本参数来设置纹理,从而将其用于场景光源的剪影。 |
Lightmap | 如果要将纹理用作光照贴图,请选择此选项。此选项允许将纹理编码为特定格式(RGBM 或 dLDR,具体取决于平台)并通过后期处理步骤对纹理数据进行处理(推拉式扩张通道)。 |
Single Channel | 如果在纹理中只需要一个通道,请选择此选项。 |
纹理导入器中的第二个属性是 Texture Shape。使用此属性可选择和定义纹理的形状和结构。
属性: | 功能: |
---|---|
Texture Shape | 使用此属性可定义纹理的形状。默认情况下,该值设置为 2D。 |
2D | 这是用于所有纹理的最常用设置;它将图像文件定义为 2D 纹理。这些设置用于将纹理映射到 3D 网格和 GUI 元素以及其他项目元素。 |
Cube | 此选项将纹理定义为立方体贴图。例如,可将其用于天空盒或反射探针。选择 Cube 会显示不同的贴图选项。 |
Mapping | 仅当 Texture Shape 设置为 Cube 时,此设置才可用。使用 Mapping 可指定如何将纹理投影到游戏对象上。默认情况下,此设置为 Auto。 |
Auto | Unity 尝试从纹理信息自动计算布局。 |
6 Frames Layout (Cubic Environment) | 纹理包含按以下标准立方体贴图布局之一排列的六个图像:交叉或序列 (+x -x +y -y +z -z)。图像可以水平或垂直定向。 |
Latitude Longitude (Cylindrical) | 将纹理映射到 2D 纬度/经度表示形式。 |
Mirrored Ball (Sphere Mapped) | 将纹理映射到类似球体的立方体贴图。 |
Convolution Type | 选择要用于此纹理的预卷积(即过滤)类型。预卷积的结果将存储在 Mip 中。默认情况下,此设置为 None。 |
None | 纹理没有预卷积(无过滤)。 |
Specular (Glossy Reflection) | 选择此选项可将立方体贴图用作反射探针。纹理 Mipmap 使用引擎 BRDF 进行预卷积(过滤)。(请参阅 Wikipedia 的双向反射分布函数 (Bidirectional reflectance distribution function) 页面以了解更多信息。) |
Diffuse (Irradiance) | 对纹理进行卷积(过滤)以表示辐照度。如果将立方体贴图用作光照探针,则此选项非常有用。 |
Fixup Edge Seams | 仅在选择 None 或 Diffuse 卷积(过滤)的情况下,此选项才可用。在低端平台上使用此选项作为解决过滤限制(例如在面之间错误过滤的立方体贴图)的解决方法。 |
使用 Advanced 设置可以更好地调整 Unity 处理纹理的方式。根据选择的 __Texture Type__,这些设置的顺序和可用性可能略有不同。
属性: | 描述: | |
---|---|---|
Non Power of 2 | 如果纹理具有“非 2 的幂”(NPOT) 尺寸大小,此属性将定义导入时的缩放行为。请参阅导入纹理相关文档以了解有关 NPOT 大小的更多信息。默认情况下,此设置为 None。 | |
None | 纹理尺寸大小保持不变。 | |
To nearest | 纹理在导入时缩放到最接近的“2 的幂”尺寸大小。例如,257x511 像素的纹理将缩放为 256x512 像素。请注意,PVRTC 格式要求纹理为正方形(即宽度等于高度),因此最终尺寸大小将升级为 512x512 像素。 | |
To larger | 纹理在导入时缩放到最大尺寸大小值的“2 的幂”尺寸大小。例如,257x511 像素的纹理将缩放为 512x512 像素。 | |
To smaller | 纹理在导入时缩放到最小尺寸大小值的“2 的幂”尺寸大小。例如,257x511 像素的纹理将缩放为 256x256 像素。 | |
Read/Write Enabled | 选中此框允许从脚本函数(例如 Texture2D.SetPixels、Texture2D.GetPixels 和其他 Texture2D 函数)访问纹理数据。请注意,此情况下会生成纹理数据的副本,使纹理资源所需的内存量增加一倍,因此只有在绝对必要时才应使用此属性。此属性仅适用于未压缩纹理和 DXT 压缩纹理;无法读取其他类型的压缩纹理。默认情况下会禁用此属性。 | |
Streaming Mip Maps | 启用此复选框可对该纹理使用纹理串流 (Texture Streaming)。此设置适用于 Unity 使用网格渲染器 (Mesh Renderer) 显示的 3D 环境中的任何纹理。漫射纹理、法线贴图和光照贴图都对纹理串流有效。 | |
Mip Map Priority | 此属性用于设置 Mipmap 的优先级。Unity 使用此设置来确定在分配资源时要优先考虑哪些 Mipmap。值越高表示优先级越高(例如,__3__ 的优先级高于 1__)。此设置仅在启用 Streaming Mip Maps__ 的情况下可用。 Mip Map Priority 编号也是 Memory Budget__(启用 Texture Streaming__ 时在 Quality Settings 中设置)的 Mipmap 偏移。例如,优先级为 2 时,纹理串流系统尝试使用比优先级为 0 的纹理高出两个 Mip 级别的 Mipmap。高一个 Mip 级别表示在每个轴上增大为 2 倍,高两个级别表示在每个轴上增大为 4 倍,因此高出两个 Mip 级别会使纹理的大小增大为 16 倍。如果无法实现,则会使用更低的 Mip 级别来适应__内存预算 (Memory Budget)。负值也有效。有关更多详细信息,请参阅纹理串流 API。 | | Generate Mip Maps| 选中此框可禁止生成 Mipmap。Mipmap 是纹理的一系列较小版本,适合纹理在屏幕上非常小时使用。有关 Mipmap 的更多信息,请参阅导入纹理文档。 | | Border Mip Maps| 选中此复选框可避免颜色向外渗透到较低 MIP 级别的边缘。该功能用于光照剪影(见下文)。默认情况下会取消选中此框。 | | Mip Map Filtering| 有两种 Mipmap 过滤方法可用于优化图像质量。默认选项为 Box。 | | Box| 这是淡出 Mipmap 的最简单方法。随着尺寸减小,MIP 级别将变得更加平滑。 | | Kaiser| 这是一种随着 Mipmap 的尺寸大小下降而对其应用的锐化算法。如果纹理在远处太模糊,可尝试此选项。(这是一种 Kaiser 窗 (Kaiser Window) 算法,请参阅 Wikipedia 以了解更多信息。) | | Mip Maps Preserve Coverage| 如果希望生成的 Mipmap 的 Alpha 通道在 Alpha 测试期间保留覆盖率,请启用此复选框。请参阅 TextureImporterSettings.mipMapsPreserveCoverage 以了解更多信息。 | | Fadeout Mip Maps| 启用此属性可在 MIP 级别递进时使 Mipmap 淡化为灰色。此属性用于细节贴图。最左边的滚动项是第一个开始淡出的 MIP 级别。最右侧的滚动项定义了纹理完全变灰的 MIP 级别。 | | Wrap Mode| 选择纹理平铺时的行为方式。默认选项为 Clamp。 | | Repeat| 在区块中重复纹理。 | | Clamp| 拉伸纹理的边缘。 | | Mirror| 在每个整数边界上镜像纹理以创建重复图案。 | | Mirror Once| 镜像纹理一次,然后将其钳制到边缘像素。 | | Per-axis| 选择此选项可单独控制 Unity 如何在 U 轴和 V 轴上包裹纹理。 | | Filter Mode| 选择纹理在通过 3D 变换拉伸时如何进行过滤。默认选项为 Point (no filter)。 | | Point (no filter)| 纹理在靠近时变为块状。 | | Bilinear| 纹理在靠近时变得模糊。 | | Trilinear| 与 Bilinear 类似,但纹理也在不同的 MIP 级别之间模糊。 | | Aniso Level__ |
以大角度查看纹理时提高纹理质量。适用于地板和地面纹理。有关各向异性过滤的更多信息,请参阅导入纹理文档。 |
纹理检视面板窗口有一个__特定于平台的覆盖 (Platform-specific overrides)__ 面板。
在为不同平台进行构建时,您需要考虑每个目标平台的分辨率、文件大小与相关内存大小要求、像素尺寸和纹理质量。可使用__特定于平台的覆盖 (Platform-specific overrides)__ 面板设置默认选项(使用 __Default__),然后使用面板顶部的按钮针对特定平台覆盖这些选项的设置。
属性: | 功能: |
---|---|
Max Size | 导入的纹理的最大尺寸(以像素为单位)。美术师通常喜欢使用尺寸较大的纹理;使用 Max Size 可将纹理缩小到合适的尺寸大小。 |
Compression | 选择纹理的压缩类型。此参数有助于系统为纹理选择正确的压缩格式。根据平台和压缩格式的可用性,不同的设置最终可能采用相同的内部格式(例如,__Low Quality Compression__ 对移动平台有影响,但对桌面平台无影响)。 |
None | 不压缩纹理。 |
Low Quality | 以低质量格式压缩纹理。与 Normal Quality 相比,这会降低内存使用量。 |
Normal Quality | 以标准格式压缩纹理。 |
High Quality | 以高质量格式压缩纹理。与 Normal Quality 相比,这会提高内存使用量。 |
Format | 这会绕过自动系统来指定用于纹理的内部表示。可用格式的列表取决于平台和纹理类型。请参阅特定于平台的覆盖的纹理格式相关文档以了解更多信息。 注意:即使未覆盖平台,此选项也会显示自动系统选择的格式。Format 属性仅在覆盖特定平台时可用,而不是作为默认设置。 |
Use crunch compression | 如果适用,使用 Crunch 压缩。Crunch 是一种基于 DXT 或 ETC 纹理压缩的有损压缩格式。在运行时,纹理在 CPU 上解压缩为 DXT 或 ETC,然后上传到 GPU 上。Crunch 压缩有助于纹理在磁盘上使用尽可能少的空间并方便下载。Crunch 纹理可能需要很长时间进行压缩,但在运行时的解压缩速度非常快。 |
Compressor Quality | 使用 Crunch 纹理压缩时,可使用滑动条调整质量。压缩质量越高意味着纹理越大,压缩时间越长。 |