Texture Import Settings 窗口定义 Unity 如何将图像从项目的 Assets
文件夹导入 Unity Editor。
要访问此窗口,请在 Project 窗口中选择图像文件。此时会在 Inspector 中显示 Texture Import Settings 窗口。
注意:默认情况下会隐藏一些不太常用的属性。在 Inspector 窗口中展开 Advanced 部分即可查看这些属性。
Texture Import Settings 窗口上有多个部分:
(A) Texture Type。选择要创建的纹理类型。
(B) Texture Shape。在该区域中选择形状并设置特定于该形状的属性。
(C) 特定于类型的设置和高级设置。根据所选择的 Texture Type 值,此区域中可能会显示其他属性。有关更多信息,请参阅纹理类型的文档。
(D) 特定于平台的覆盖。使用__特定于平台的覆盖 (Platform-specific overrides)__ 面板可设置默认选项以及针对特定平台覆盖这些选项。
(E) 纹理预览。在此处可以预览纹理以及调整其值。
使用 Texture Type 属性可选择要从源图像文件创建的纹理类型。Texture Import Settings 窗口中的其他属性将根据此处设置的值而变化。
有关特定纹理类型的信息,请参阅纹理类型 (Texture Types) 文档。
属性: | 功能: |
---|---|
Default | 这是用于所有纹理的最常用设置。此选项可用于访问大多数纹理导入属性。有关更多信息,请参阅 Default 纹理类型。 |
Normal map | 选择此选项可将颜色通道转换为适合实时法线贴图的格式。有关更多信息,请参阅 Normal map 纹理类型文档。 有关一般法线贴图的更多信息,请参阅导入纹理。 |
Editor GUI and Legacy GUI | 如果要在任何 HUD 或 GUI 控件上使用纹理,请选择此选项。有关更多信息,请参阅 Editor GUI and Legacy GUI 纹理类型文档。 |
Sprite (2D and UI) | 如果要在 2D 游戏中使用该纹理作为精灵,请选择此选项。有关更多信息,请参阅 Sprite (2D and UI) 纹理类型文档。 |
Cursor | 如果要将纹理用作自定义游标,请选择此选项。有关更多信息,请参阅 Cursor 纹理类型文档。 |
Cookie | 选择此选项可通过基本参数来设置纹理,从而将其用于场景光源的剪影。有关更多信息,请参阅 Cookie 纹理类型文档。 |
光照贴图 | 如果要将纹理用作光照贴图,请选择此选项。此选项允许将纹理编码为特定格式(RGBM 或 dLDR,具体取决于平台)并通过后期处理步骤对纹理数据进行处理(推拉式扩张通道)。有关更多信息,请参阅 Lightmap 纹理类型文档。 |
Single Channel | 如果在纹理中只需要一个通道,请选择此选项。有关仅可用于此类型的属性的信息,请参阅 Single Channel 纹理类型文档。 |
使用 Texture Shape 属性可选择和定义纹理的形状和结构。有四种形状类型:
可使用以下属性进一步优化 Cubemap 形状纹理:
属性: | 功能: | |
---|---|---|
Mapping | 使用 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 中。 此属性仅可用于 Default 纹理类型。 |
|
None | 纹理没有预卷积(无过滤)。此为默认值。 | |
Specular (Glossy Reflection) | 选择此选项可将立方体贴图用作反射探针。纹理 Mipmap 使用引擎 BRDF 进行预卷积(过滤)。有关更多信息,请参阅 Wikipedia 的双向反射分布函数 (Bidirectional reflectance distribution function) 页面。 | |
Diffuse (Irradiance) | 对纹理进行卷积(过滤)以表示辐照度。如果将立方体贴图用作光照探针,则此选项非常有用。 | |
Fixup Edge Seams | 仅在选择 None 或 Diffuse 卷积(过滤)的情况下,此选项才可用。在低端平台上使用此选项作为解决过滤限制(例如在面之间错误过滤的立方体贴图)的解决方法。 |
2D 数组__和 3D__ 纹理的源纹理文件会划分为单元格;这些纹理称为翻页纹理。当 Unity 导入翻页纹理时,它会将每个单元格的内容放入其自己的 2D 数组层或 3D 纹理切片中。
将 Texture Shape 属性设置为 2D Array 或 3D 时,Unity 会显示 Columns 和 Rows 属性。使用这些属性可告诉 Unity 如何将翻页纹理划分为单元格。
属性: | 功能: |
---|---|
Columns | 源翻页纹理划分为的列数。 |
行 | 源翻页纹理划分为的行数。 |
例如,具有 8x8 单元格烟雾效果帧的图像如下所示(作为默认 2D 纹理):
但是当正确导入具有 8 列和 8 行的 3D 纹理时,它会如下所示:
根据您选择的纹理类型,Texture Import Settings 窗口中可能会显示不同的选项。其中一些选项特定于纹理类型本身,例如选择 Sprite (2D and UI) 类型时,可使用 Sprite Mode 设置。
使用 Advanced 设置可以更好地调整 Unity 处理纹理的方式。根据选择的__纹理类型 (Texture Type)__,这些设置的顺序和可用性可能略有不同。
属性: | 描述: | 受以下类型的支持: | |||
---|---|---|---|---|---|
sRGB (Color Texture) | 启用此属性可指定将纹理存储在伽马空间中。对于非 HDR 颜色纹理(例如反照率和镜面反射颜色),应始终选中此复选框。如果纹理存储了有特定含义的信息,并且您需要着色器中的确切值(例如,平滑度或金属度),请禁用此属性。默认情况下会启用此属性。 |
Default、 Sprite (2D and UI) |
|||
Alpha Source | 指定如何生成纹理的 Alpha 通道。默认情况下,此设置为 None。 |
Default、 Editor GUI and Legacy GUI、 Sprite (2D and UI)、 Cursor、 Cookie、 Single Channel |
|||
None | 无论输入纹理是否有 Alpha 通道,导入的纹理都没有 Alpha 通道。 | ||||
Input Texture Alpha | 如果提供了纹理,则使用输入纹理中的 Alpha。 | ||||
From Gray Scale | 从输入纹理 RGB 值的平均值生成 Alpha。 | ||||
Alpha is Transparency | 如果指定的 Alpha 通道为透明度 (Transparency),则启用此属性可扩充颜色并避免边缘上的过滤瑕疵。 |
Default、 Editor GUI and Legacy GUI、 Sprite (2D and UI)、 Cursor、 Cookie、 Single Channel |
|||
Remove Matte (PSD) | 对使用透明度(将彩色像素与白色像素混合)的 Photoshop 文件启用特殊处理。 注意:这仅适用于 PSD 文件。 |
Default、 Editor GUI and Legacy GUI、 Sprite (2D and UI)、 Cursor、 Cookie、 Single Channel |
|||
Ignore PNG file gamma | 启用此属性可忽略 PNG 文件中的伽马 (Gamma) 特性。此属性不影响其他文件格式。 | All Texture Types | |||
Non Power of 2 | 如果纹理具有“非 2 的幂”(NPOT) 尺寸大小,此属性将定义导入时的缩放行为。请参阅导入纹理相关文档以了解有关 NPOT 大小的更多信息。默认情况下,此设置为 None。 |
Default、 Normal map、 Editor GUI and Legacy GUI、 Cursor、 Cookie、 Lightmap、 Single Channel |
|||
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 方法访问纹理数据。在内部,Unity 使用纹理数据的副本进行脚本访问,这会使纹理所需的内存量增加一倍。因此,默认情况下会禁用此属性,仅在需要脚本访问权限时才应启用。有关更多信息,请参阅 Texture2D。 | All Texture Types | |||
Virtual Texture Only | 启用此属性可将纹理仅与纹理堆栈结合使用以实现虚拟纹理。启用此属性后,不能保证纹理可以在播放器中作为 Texture2D 使用(即,不能从脚本中进行访问)。禁用此属性后,播放器会将纹理既作为 Texture2D(可从脚本中进行访问)又作为流式纹理包含在纹理堆栈中。 |
Default、 Normal map |
|||
Streaming Mip Maps | 启用此属性可对该纹理使用 Mipmap 串流。此设置适用于 Unity 使用网格渲染器 (Mesh Renderer) 显示的 3D 环境中的任何纹理。漫射纹理、法线贴图和光照贴图都对 Mipmap 串流有效。 |
Default、 Normal map、 Lightmap、 Single Channel |
|||
Mip Map Priority | 此属性用于设置 Mipmap 的优先级。Unity 使用此设置来确定在分配资源时要优先考虑哪些 Mipmap。值越高表示优先级越高(例如,__3__ 的优先级高于 1__)。此设置仅在启用 Streaming Mip Maps__ 的情况下可用。 Mip Map Priority 编号也是 Memory Budget__(启用 Texture Streaming__ 时在 Quality Settings 中设置)的 Mipmap 偏移。例如,优先级为 2 时,Mipmap 串流系统尝试使用比优先级为 0 的纹理高出两个 Mip 级别的 Mipmap。高一个 Mip 级别表示在每个轴上增大为 2 倍,高两个级别表示在每个轴上增大为 4 倍,因此高出两个 Mip 级别会使纹理的大小增大为 16 倍。如果无法实现,则会使用更低的 Mip 级别来适应__内存预算 (Memory Budget)。负值也有效。有关更多详细信息,请参阅 Mipmap 串流 API。 | | | Generate Mip Maps__ |
启用此属性可禁止生成 Mipmap。Mipmap 是纹理的一系列较小版本,适合纹理在屏幕上非常小时使用。有关 Mipmap 的更多信息,请参阅导入纹理文档。 警告:每次选择新的纹理类型时,此属性将恢复为新纹理类型的默认值(如果已定义)。请参阅纹理类型以查找此属性对于每个类型的默认值。 |
All Texture Types | ||
Border Mip Maps | 启用此属性可避免颜色向外渗透到较低 MIP 级别的边缘。该功能用于光照剪影(见下文)。默认情况下会禁用此属性。 仅当启用了 Generate Mip Maps 时,此属性才可用。 |
||||
Mip Map Filtering | 有两种 Mipmap 过滤方法可用于优化图像质量。默认选项为 Box。 仅当启用了 Generate Mip Maps 时,此属性才可用。 |
||||
Box | 这是淡出 Mipmap 的最简单方法。随着尺寸减小,MIP 级别将变得更加平滑。 | ||||
Kaiser | 这是一种随着 Mipmap 的尺寸大小下降而对其应用的锐化算法。如果纹理在远处太模糊,可尝试此选项。(这是一种 Kaiser 窗 (Kaiser Window) 算法;请参阅 Wikipedia 以了解更多信息。) | ||||
Mip Maps Preserve Coverage | 如果希望生成的 Mipmap 的 Alpha 通道在 Alpha 测试期间保留覆盖率,请启用此属性。请参阅 TextureImporterSettings.mipMapsPreserveCoverage 以了解更多信息。 仅当启用了 Generate Mip Maps 时,此属性才可用。 |
||||
Alpha Cutoff Value | 设置用于在 Alpha 测试期间控制 MipMap 覆盖范围的参考值。 | ||||
Fadeout Mip Maps | 启用此属性可在 MIP 级别递进时使 Mipmap 淡化为灰色。此属性用于细节贴图。最左边的滚动项是第一个开始淡出的 MIP 级别。最右侧的滚动项定义了纹理完全变灰的 MIP 级别。 仅当启用了 Generate Mip Maps 时,此属性才可用。 |
||||
Wrap Mode | 选择纹理平铺时的行为方式。默认选项为 Repeat。 | All Texture Types | |||
Repeat | 在区块中重复纹理。 | ||||
Clamp | 拉伸纹理的边缘。 | ||||
Mirror | 在每个整数边界上镜像纹理以创建重复图案。 | ||||
Mirror Once | 镜像纹理一次,然后将其钳制到边缘像素。 注意:某些移动设备不支持 Mirror Once 模式。在这种情况下,Unity 将改用 Mirror 模式。 |
||||
Per-axis | 选择此选项可单独控制 Unity 如何在 U 轴和 V 轴上包裹纹理。 | ||||
Filter Mode | 选择纹理在通过 3D 变换拉伸时如何进行过滤。默认选项为 Bilinear。 | All Texture Types | |||
Point (no filter) | 纹理在靠近时变为块状。 | ||||
Bilinear | 纹理在靠近时变得模糊。 | ||||
Trilinear | 与 Bilinear 类似,但纹理也在不同的 MIP 级别之间模糊。 | ||||
Aniso Level | 以大角度查看纹理时提高纹理质量。各向异性过滤对于地板和地面纹理很有用,但伴随较高的性能成本。有关各向异性过滤的更多信息,请参阅导入纹理文档。 | All Texture Types |
在为不同平台进行构建时,您需要考虑每个目标平台的分辨率、文件大小与相关内存大小要求、纹理质量以及要使用的压缩格式。特定于平台的覆盖__面板为 Default__ 选项提供了一个选项卡,也为每个目标构建平台提供了一个选项卡。
要设置覆盖值,请执行以下操作:
1.设置 Default 选项卡上的默认属性。 2.导航到特定的目标平台选项卡,并启用 Override for <target-platform> 选项。 3.设置覆盖属性。
下表描述了可用的属性:
属性: | 功能: | |
---|---|---|
Max Size | 设置导入的纹理的最大尺寸(以像素为单位)。美术师通常喜欢使用尺寸较大的纹理,但您可以将纹理缩小到合适的尺寸大小。 | |
Resize Algorithm | 当纹理尺寸大于指定的 Max Size 时,选择一种算法来缩小纹理尺寸。 | |
Mitchell | 使用 Mitchell 算法调整纹理的大小。这是默认的大小调整算法。 | |
Bilinear | 使用双线性插值来调整纹理的大小。如果小而锐利的细节在图像中很重要,此设置可以保留比 Mitchell 更多这些细节。 | |
Format | 绕过自动系统来指定用于纹理的内部表示。可用格式的列表取决于平台和纹理类型。有关更多信息,请参阅特定于平台的覆盖的纹理格式。 注意:即使不覆盖平台,此选项也会显示自动系统选择的格式。此属性仅在覆盖特定平台时可用,而不是作为默认设置。 |
|
Compression | 选择纹理的压缩类型。这有助于 Unity 为纹理选择正确的压缩格式。根据平台和压缩格式的可用性,不同的设置可能最终会获得相同的内部格式。例如,__Low Quality Compression__ 会影响移动平台,但不会影响桌面平台。 | |
None | 不压缩纹理。 | |
Low Quality | 以低质量格式压缩纹理。这种质量比 Normal Quality 使用更少的内存。 | |
Normal Quality | 以标准格式压缩纹理。 | |
High Quality | 以高质量格式压缩纹理。这种质量比 Normal Quality 使用更多的内存。 | |
Use Crunch Compression | 如果适用,使用 Crunch 压缩。Crunch 是一种基于 DXT 或 ETC 纹理压缩的有损压缩格式。Unity 在 CPU 上将纹理解压缩为 DXT 或 ETC,然后在运行时将其上传到 GPU。Crunch 压缩有助于纹理在磁盘上使用尽可能少的空间并方便下载。Crunch 纹理可能需要很长时间进行压缩,但在运行时的解压缩速度非常快。 | |
Compressor Quality | 使用 Crunch 纹理压缩时,可使用滑动条调整质量。压缩质量越高意味着纹理越大,压缩时间越长。 注意:对于 Android 平台,Compressor Quality 值提供的选项略有不同。有关更多信息,请参阅特定于平台的覆盖的纹理格式。 |
|
Split Alpha Channel | 允许在以下平台上对此纹理进行 Alpha 通道分离:__tvOS、iOS、Lumin__ 和 Android。有关更多信息,请参阅关于 Android 的注意事项:纹理压缩格式。 | |
Override ETC2 fallback | 不支持 ETC2 的 Android 设备上的 ETC2 纹理解压缩回退重载。 允许选择在不支持 ETC2 纹理格式的 Android 设备上解压缩纹理使用的纹理格式。有关更多信息,请参阅关于 Android 的注意事项:纹理压缩格式。 |