Version: 2019.2
纹理组件
导入纹理

纹理

纹理是覆盖或包裹游戏对象以赋予它们视觉效果的图像或电影文件。本页面将详细介绍用于管理纹理的属性。

Unity 会将 3D 项目的 Assets 文件夹中的所有图像或电影文件识别为纹理(在 2D 项目中保存为精灵)。只要图像满足下面指定的大小要求,就会将其导入并进行优化以用于游戏(但用于游戏对象的着色器会有特定的纹理要求)。此范围包括多层 Photoshop 或 TIFF 文件,这些文件在导入时会自动展平,这样就不会在游戏中造成大小损失。这种展平操作发生在 Unity 内部,而不是 PSD 文件本身内部,并且是可选操作,因此您可以继续保存和导入图层不变的 PSD 文件。

属性

纹理检视面板 (Texture Inspector) 窗口
纹理检视面板 (Texture Inspector) 窗口

Inspector 窗口分为两部分:上面的__纹理导入器 (Texture Importer)__ 和下面的__预览 (Preview)__。

纹理导入器

纹理导入器定义如何将图像从项目的 Assets 文件夹导入 Unity Editor。要访问纹理导入器,请在 Project 窗口中选择图像文件。纹理导入器将在 Inspector 窗口中打开。

请注意,默认情况下会隐藏一些不太常用的属性。在 Inspector 窗口中单击 Advanced 即可查看这些属性。

Texture Type

纹理导入器中的第一个属性是 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。使用此属性可选择和定义纹理的形状和结构。

属性: 功能:
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 仅在选择 NoneDiffuse 卷积(过滤)的情况下,此选项才可用。在低端平台上使用此选项作为解决过滤限制(例如在面之间错误过滤的立方体贴图)的解决方法。

Advanced 设置

使用 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 Enable this to access the Texture data from scripts using Texture2D.SetPixels, Texture2D.GetPixels and other Texture2D methods. Internally, Unity uses a copy of the Texture data for script access, which doubles the amount of memory required for the Texture. This property is therefore disabled by default, and you should enable it only if you require script access. For more information, see Texture2D.
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)__ 面板。

特定于平台的覆盖 (Platform-specific overrides) 面板
特定于平台的覆盖 (Platform-specific overrides) 面板

在为不同平台进行构建时,您需要考虑每个目标平台的分辨率、文件大小与相关内存大小要求、像素尺寸和纹理质量。可使用__特定于平台的覆盖 (Platform-specific overrides)__ 面板设置默认选项(使用 __Default__),然后使用面板顶部的按钮针对特定平台覆盖这些选项的设置。

属性: 功能:
Max Size 导入的纹理的最大尺寸(以像素为单位)。美术师通常喜欢使用尺寸较大的纹理;使用 Max Size 可将纹理缩小到合适的尺寸大小。
Resize Algorithm The algorithm used to downscale the Texture when the Texture dimensions are larger than the specified Max Size.
    Mitchell The Texture is resized using the Mitchell algorithm. This is the default resize algorithm.
    Bilinear The Texture is resized using bilinear interpolation. For images where small, sharp details are important, this might might preserve more of these details than Mitchell.
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 纹理压缩时,可使用滑动条调整质量。压缩质量越高意味着纹理越大,压缩时间越长。

  • 2017–09–18 页面已修订

  • 2017.3 版中更新了 Crunch 压缩格式 NewIn20173

纹理组件
导入纹理