Version: 6000.3
语言: 中文
内置渲染管线中的材质验证器
使着色器与内置渲染管线中的材质验证器兼容

验证和更正内置渲染管线中的材质

验证反照率

Unity 的材质图表将非金属的标准亮度范围定义为 50–243 sRGB,金属的标准亮度范围为 186–255 sRGB。验证反照率模式颜色像素计算机图像中的最小单位。像素大小取决于您的屏幕分辨率。像素光照是在每个屏幕像素下计算的。更多信息
请参阅术语表
在这些范围之外,颜色不同,表示该值太低或太高。

在下面的示例中,第一个纹理低于最小亮度值,因此太暗。第四个纹理高于最大亮度值,因此太亮。

场景(未启用材质验证器),其中第一个和第四个材质的反照率值不正确
场景(未启用材质验证器),其中第一个和第四个材质的反照率值不正确
启用了材质验证器并设置为 验证反照率(Validate Albedo) 的同一场景。低于最小亮度值的纹理为红色。高于最小亮度值的纹理为蓝色
启用了材质验证器并设置为 验证反照率(Validate Albedo) 的同一场景。低于最小亮度值的纹理为红色。高于最小亮度值的纹理为蓝色

材质图表提供常见材质的反照率值。反照率值的亮度对产生的漫反射光量有巨大影响,因此对于全局光照 一组对直接和间接光照进行建模以提供逼真的光照结果的技术。
请参阅术语表
烘焙,以确保不同的材质类型在正确的亮度范围内,彼此成比例。为了帮助你获得正确的这些值,你可以从 亮度验证(Luminance Validation) 下拉列表中的预设中进行选择,该下拉菜单提供了常见的材质反照率值,以验证特定材质类型的亮度范围。

验证镜面反射

Unity 的 Material 图表定义了两个独立的镜面反射颜色(specular color镜面反射高光的颜色。
请参阅术语表
范围:

  • 非金属材料:40–75 sRGB
  • 金属材质:155 - 255 sRGB

在Unity中,所有非金属材质都具有恒定的镜面反射颜色,始终在正确的范围内。但是,金属材质的镜面反射值过低是很常见的。为了帮助你识别存在此问题的金属材质,材质验证器的 验证金属镜面反射(Validate Metal Specular) 模式会为镜面反射颜色值过低的所有像素着色。根据定义,这包括所有非金属材料。

在下面的示例中,左侧材质低于最小镜面反射值,因此太暗。这也适用于场景场景包含游戏的环境和菜单。将每个唯一的场景文件视为一个独特的关卡。在每个场景中,你放置你的环境、障碍物和装饰品,基本上是将你的游戏设计和构建成碎片。更多信息
请参阅术语表
的背景。正确的材质具有有效范围内的镜面反射值。

具有两个金属材质的场景。左侧的金属镜面反射值不正确
具有两个金属材质的场景。左侧的金属镜面反射值不正确
启用了材质验证器并设置为 验证金属镜面反射(Validate Metal Specular) 的同一场景
启用了材质验证器并设置为 验证金属镜面反射(Validate Metal Specular) 的同一场景

验证纯金属

Unity 将镜面反射颜色大于 155 sRGB 的基于物理的着色材质定义为金属色。让 Unity 将金属材质定义为纯金属

如果非金属表面的镜面反射颜色值过高,但反照率值非零,这通常是由于创作错误造成的。材质验证器还有一个名为 检查纯金属(Check Pure Metals) 的选项。启用此选项后,材质验证器将 Unity 定义为金属但反照率值为非零的任何材质显示为黄色。下面的图片可以看到一个示例。它显示了三种材质,左右材质是纯金属,但中间的材质不是,所以材质验证器将其涂成黄色:

具有三种金属材质的场景。中间的材质不是纯金属(它具有非零反照率值)
具有三种金属材质的场景。中间的材质不是纯金属(它具有非零反照率值)
启用了材质验证器并设置为 验证金属镜面反射(Validate Metal Specular) 的同一场景,并启用了 检查纯金属(Check Pure Metals)
启用了材质验证器并设置为 验证金属镜面反射(Validate Metal Specular) 的同一场景,并启用了 检查纯金属(Check Pure Metals)

在上图的第二张图片中,背景为红色,因为背景中的材质低于材质验证器的 验证金属镜面反射(Validate Metal Specular) 模式的最小镜面反射值。

对于结合了金属和非金属属性的复杂材质,纯金属检查器可能会拾取一些无效的像素,但如果材质完全无效,则通常是创作错误的迹象。

覆盖默认亮度值

根据项目的美术风格,你可能希望材质的亮度值与预设的亮度范围不同。在这种情况下,你可以用自己的值覆盖材质验证器使用的内置反照率值。要覆盖预设的亮度范围,请为每个所需材质类型分配一个 AlbedoSwatchInfo 值数组给属性 EditorGraphicsSettings.albedoSwatches

内置渲染管线中的材质验证器
使着色器与内置渲染管线中的材质验证器兼容