Unity 的材质图表定义了非金属的标准亮度范围为 50–243 sRGB,而金属的标准亮度范围为 186–255 sRGB。验证反照率 (Validate Albedo) 模式会使用不同颜色显示处于这些范围之外的任何像素,以指示该值太低或太高。
在下面的示例中,第一个纹理低于最小亮度值,因此太暗。第四个纹理高于最大亮度值,因此太亮。
材质图表提供常见材质的反照率值。反照率值的亮度对产生的漫射光量有巨大影响,因此全局光照 (Global Illumination) 烘焙必须确保不同的材质类型位于正确的亮度范围内(彼此成比例),这一点十分重要。为了方便正确设置这些值,可从亮度验证 (Luminance Validation) 下拉选单的预设选项中进行选择,该下拉选单提供了常用的材质反照率值以便验证特定材质类型的亮度范围。
Unity 的材质图表定义了两个独立的镜面反射颜色范围:
在 Unity 中,所有非金属性材质都具有始终处于正确范围内的恒定镜面反射颜色。然而,金属性材质通常具有太低的镜面反射值。为了帮助您识别存在此问题的金属性材质,材质验证器的__验证金属镜面反射 (Validate Metal Specular)__ 模式使用颜色来标示镜面反射颜色值太低的所有像素。根据定义,这包括所有非金属性材质。
在下面的示例中,左侧材质低于最小镜面反射值,因此太暗。这也适用于场景的背景。右侧材质的镜面反射值处于有效范围内。
Unity 将镜面反射颜色大于 155 sRGB 的基于物理的着色材质定义为金属性材质。Unity 将金属性材质定义为__纯金属__
如果非金属性表面的镜面反射颜色值太高,但反照率值为非零,则通常是由于创作错误导致的。材质验证器还有一个名为__检查纯金属 (Check Pure Metals)__ 的选项。启用此选项后,材质验证器会以黄色显示由 Unity 定义为金属性但具有非零反照率值的所有材质。在下面的图像中可以看到这方面的一个例子。此处显示了三种材质,左侧和右侧材质为纯金属,但中间的材质不是,因此材质验证器将其显示为黄色:
在上面的第二张图中,背景为红色,这是因为背景中的材质低于材质验证器的__验证金属镜面反射 (Validate Metal Specular)__ 模式下的最小镜面反射值。
对于金属性和非金属性属性相结合的复杂材质,纯金属检查器可能会拾取一些无效像素,但如果材质完全无效,则通常表示存在创作错误。
根据项目的美术风格,您可能希望材质的亮度值与预设的亮度范围不同。在这种情况下,可使用自己的值覆盖材质验证器使用的内置反照率值。要覆盖预设亮度范围,请将每种所需材质类型的 AlbedoSwatchInfo 值数组分配给属性 EditorGraphicsSettings.albedoSwatches。