如果你熟悉 PBR 材质,例如你在 Blender、Unity、Substance 等其他程序中使用过,那么你就知道有两种工作流程,分别叫做 Metallic Roughness 和 Specular Glossiness。。。
本教程不提供中文配音。您可以在下方观看英语配音的视频,并选择中文、英文或其他语言的字幕。视频下方提供了翻译成中文的文字稿。
视频文字稿
大家好!如果你熟悉 PBR 材质,例如你在 Blender、Unity、Substance 等其他程序中使用过,那么你就知道有两种工作流程,分别叫做 Metallic Roughness 和 Specular Glossiness。根据所使用的工作流程不同,你需要提供特定的信息。
在 Unreal 中,使用的是 Metallic 工作流程,因此在一个 Material 中,我们至少需要指定 Base Color、Metallic 和 Roughness 信息,并且可以选择添加一个 Normal Map,通过特定的 Texture 来模拟细节。不过,如果我们只想创建一个基础的 Material,只需要设置刚才提到的前三个通道即可。
我们通常从 Metallic 通道开始,其中 0 表示非金属,1 表示纯金属。Base Color 定义非金属物体的基础漫反射颜色,而对于金属来说,它决定镜面反射的色调。Roughness 参数用于指定表面的粗糙或不规则程度。数值为 0 时,表面完全光滑或抛光;数值为 1 时,表面非常粗糙,看起来呈现哑光效果。例如,要创建一个完美的镜子,我们可以使用纯白色,将 Metallic 设为 1,将 Roughness 设为 0。
不过,在 Unreal 的 Materials 中还有一个 Specular 通道,这可能会引起一些混淆,尤其是因为 Specular Glossiness 也是另一种 PBR 工作流程的名称。此外,如果你使用的是纯金属 Material,改变 Specular 的值似乎不会产生任何效果。那么在这种情况下,Specular 参数到底有什么作用呢?在 Unreal Engine 中,这个数值仅用于控制非金属材质的基础反射率。因此,当 Metallic 设为 1 时,该参数会被完全忽略。

因此,对于金属材质,正确的设置方式显然是将 Metallic 设为 1,通过 Base Color 定义其镜面反射的颜色,并根据表面光泽程度选择合适的 Roughness 数值。光亮的金属使用较低的数值,哑光或拉丝金属使用较高的数值。在这种情况下,Specular 参数不会产生任何影响。
至于非金属材质,在这种情况下,Specular 可以控制其基础反射强度。新的 Unreal Materials 中默认值为 0.5,这代表 4% 的镜面反射率。这句话直接来自 Unreal 的在线文档,但也因此产生了更多疑惑。在 Specular 字段 0 到 1 的范围内,为什么 0.5 会对应 4%,而不是 0.04 呢?
实际上,Unreal 使用的真实反射率数值等于我们在 Material 中设置的 Specular 值乘以 0.08。0.08 表示在入射角为 0 的情况下,也就是从正面观察表面时,Unreal 中电介质材料的最大反射率。随着观察角度的增加,根据 Fresnel 定律,反射率也会提高,而 Unreal 会自动处理这一部分。因此,当你看到这个字段时,你实际上是在设置一个 0% 到 8% 之间的正面反射率数值。
无论如何,默认值 0.5 对应 4% 的反射率,对于大多数非金属材质来说都是合适的,例如塑料、玻璃、橡胶、木材、陶瓷、人类皮肤等。如果将 Specular 设为 1,则最大反射率为 8%,这种情况通常出现在钻石、某些宝石以及极少数其他材料上。Specular 的数值不应低于 0.25,这对应在入射角为 0 时 2% 的反射率。

总结来说,你可以将 Specular 理解为光反射的强度,而 Roughness 则表示反射看起来是锐利还是扩散。除非你知道所要创建的非金属材质的确切反射率,否则建议将 Specular 保持在默认值 0.5。如果你确实知道该数值,可以将其除以 0.08,从而得到正确的 Specular 参数。例如,水的反射率为 2%,因此用 0.02 除以 0.08,得到 0.25。
好的,这个简短的视频就到这里!如果你觉得内容有帮助,可以点个 Like 并订阅频道支持我!别忘了开启通知,这样就不会错过接下来的教程。我们下次再见!