Version: Unity 6.0 (6000.0)
语言 : 中文
将纹理标记为"仅虚拟纹理"
虚拟纹理性能分析器模块

虚拟纹理错误材质

此功能为实验性功能,尚未准备好用于生产环境。未来可能会对功能和文档进行更改或移除。

可将串流虚拟纹理(Streaming Virtual Texturing,SVT)与在 Shader Graph 中创建的着色器结合使用。要使用 SVT 流式传输一个或多个纹理,需要正确设置您的材质和 Shader Graph。有关更多信息,请参阅在 Shader Graph 中使用串流虚拟纹理

当纹理设置不正确时,Unity 无法渲染材质。相反,Unity 使用紫色和蓝色棋盘图案渲染一个虚拟纹理(Virtual Texturing,VT)错误纹理。在您修复验证错误之前,此纹理将保持可见。

虚拟纹理错误纹理:

虚拟纹理错误材质
虚拟纹理错误材质

验证错误

纹理堆栈是一组纹理的集合,Unity 会使用相同的 UV 坐标同时对这些纹理进行采样。当纹理堆栈或纹理堆栈中的某个纹理处于无效状态时,就会出现验证错误。

您可以在材质检视面板 (Material Inspector) 中看到验证错误:

虚拟纹理错误
虚拟纹理错误

此验证错误示例是由具有三层的纹理堆栈引起的,该堆栈仅分配了两个纹理字段。

纹理堆栈验证错误的常见原因包括:

当纹理堆栈中的一个或多个纹理处于无效状态时,同样也会出现错误。发生纹理验证错误的原因包括:

  • 该纹理不是 Texture2D 类型(SVT 不支持数组或立方体贴图)。

  • 该纹理使用镜像包裹模式。

  • 该纹理在每个轴上使用不同的钳制模式(例如,垂直钳制的同时水平重复)。纹理的分辨率不是 2 的幂。

  • 所有纹理的宽高比都不相同。

  • 该纹理不符合 128 x 128 像素的最小尺寸。

  • 该纹理没有 Mipmap。

  • 纹理在纹理导入器中启用了使用 Crunch 压缩 (Use Crunch compression)

构建播放器错误

为了让 Unity 使用 SVT 构建播放器,所有材质都必须使用具有匹配宽高比的有效纹理,并具有有效的虚拟纹理属性(请参阅验证错误)。如果播放器构建中的材质处于无效状态,则会导致控制台日志中出现构建错误。

错误命名约定

当 Unity 记录验证错误时,它会根据以下约定命名纹理堆栈:

  • 纹理堆栈具有的层数。
  • 纹理堆栈层名称采用 ShaderGraph 中的设置。

以下是此命名约定的两个示例:

  • 在一个有两层的纹理堆栈中的一个错误名称:Texture 2(Layer_Name_1, NULL)
  • 在一个有三层的纹理堆栈中的一个错误名称:Texture 3 (Layer_Name_1, Layer_Name_2, NULL)

当控制台日志中出现错误时,错误名称还包括使用纹理堆栈的材质。例如:

  • ‘Texture Stack 2 (3_BaseColorMap, NULL)’ of material ‘materialname3’.
将纹理标记为"仅虚拟纹理"
虚拟纹理性能分析器模块