了解金属性

本文探讨了金属性(metalness)的重要性以及为什么我们将金属性参数添加到 V-Ray 标准材质中,使 V-Ray 更加支持 PBR 工作流程。

让我们澄清一下事实吧

“基于物理的渲染(Physically Based Rendering)”这个专有名词 – 简称 PBR – 本身意味着 PBR 中使用的材质定义基于真实物理。有些人还认为这表示其他着色模型不是基于真实物理;其实这个说法是错的。

虽然实时渲染着色模型不一定基于真实物理,但其他光迹追踪器(如V-Ray)一直以来都是基于物理的。而PBR着色模型因实时渲染而变得非常流行,原因有两个:

1. PBR 确实是基于物理的。
2. PBR 材质需要更少的变量 – 这个流程使用纹理贴图来定义材质。

由于内存资源对于电玩产业十分重要,因此 PBR 模型不可避免地变得非常受欢迎并且有非常大的资源。

PBR 着色模型与其他基于物理的着色模型(例如 V-Ray 使用的着色模型)的主要区别在于 PBR 如何描述反射。大多数人都知道这个多出来的 “金属性(metalness)”参数。如果你查看大多数物理书籍,你找不到任何材质的金属性的描述。那么,让我们来仔细研究这个术语的含义。

关于金属性

事实上,两种不同类型的材质之间有很大差别:电介质(dielectric)和导电材质(conductive)。介电材质是绝缘体和导电材质导电。介电材质包括玻璃,塑料,木材,陶瓷,皮革…等。导电材质包括钢,铜,金 – 换句话说:就是金属。

电介质(dielectric)

导电材质(conductive)

在物理学中,导电材质具有不同的反射特性,这就是为什么大多数人认为导电材质具有高反射性而没有漫射特性。如果您的渲染器基于介电属性,则通常经由去除漫反射并为着色器提供高菲涅耳(fresnel)数值来表现金属 – 这个数值往往远高于您在物理书中看到的数值(稍后详细说明之)。

当在着色器中添加导电材质作为选项时,这可以使人们更容易呈现金属。令大家困惑的是,材质要不是电介质就是导电材质; 并不存在介于中间的状态。金属性这个词,以及它是 0 到 1 的变量 而非 0 或 1 状态意味着存在不同程度的金属性。 在现实世界中,根本没有这种材质。PBR 的许多用户认为控制物体的反射率都应该通过 0 到 1 之间的金属性值来完成,并且折射率(IOR)值对于所有材质都是常数; 这在物理上是不准确的。不同的材质具有不同的 IOR 值,而且材质不是电介质,就是导电材质(译者注:不会有介于两者之间的)。

PBR,电玩游戏和 Substance Designer

PBR 已经在 Unity 和 Unreal 等工具的实时渲染领域变得非常流行,电玩产业也是。这个行业另一个广受欢迎的工具是 Allegorithmic 公司出品的 Substance Designer。Substance 允许艺术家绘制适合 PBR 着色的贴图并包含金属性贴图(metalness map)。

然而,不仅仅是游戏设计师爱用 Substance。Substance 也被用于建筑可视化,VFX 和其他使用 V-Ray 等工具进行 CG 渲染的行业。因此,许多用户希望将这些贴图与 V-Ray 一起使用。因此,在 V-Ray Next 中,我们决定在 V-Ray 标准材质中添加 Metalness 参数,以便更支持 PBR 工作流程。

您的 PBR 工作流程

既然我们已经建立金属性应该是全有或全无的状态,这样的观念了,那么让我们看看如何正确设定材质。在制作介电材质时,漫反射颜色控制着色的朗伯光源(Lambertian,或译作理想反射)部分,反射由几个变量控制:反射颜色作为整体反射的加乘数; IOR 表示前向法在线(forward-facing normals)的反射率与掠射法线(glancing normals, 也称为 Fresnel, 菲涅耳)的比值;和总体散射量的光泽度(或是roughness, 粗糙度的相反),具体取决于您选择使用的 BRDF 模型。

当切换到金属材质时,通过使金属性(Metalness)值1来完成,这个变量具有不同的含义:

  • 由于金属中没有漫反射颜色,漫反射颜色变成所谓的基色(base color) – 或反照率颜色(albedo color)。
  • 反射应设置为白色,以获得适当的反射率和能量守恒; 没有这个,掠射角永远不会是 100% 反射 – 如果遵守能量守恒就应该是 100%。
  • 混合多少反射仍由菲涅耳效应的相同 IOR 值控制; 你会发现这会有个非常微妙的效果,因为整个材质基本上都是反光的 – 好似你将两种不同的反射混合在一起。
  • 光泽度控制它的光泽度; 但是,如果您使用粗糙度图(例如 Substance 所产生的),您可以将 V-Ray 材质切换为粗糙度 – 这个属性是光泽度的相反。

以下举些例子

现在我们已经大致了解金属性的工作原理,让我们来看看几个例子及其设置:

Diffuse 255,255,255;Reflection 255,255,255;Glossiness 1;IOR 1.5Diffuse 0,0,0;Reflection 255,255,255;Glossiness 1;IOR 1.5Diffuse 0,0,0;Reflection 255,255,255;Glossiness 1;IOR 2Diffuse 243,201,104 (gold);Reflection 255,255,255;Glossiness 1;IOR 1.35
Diffuse 46,46,46 (18% gray);Reflection 255,255,255;Glossiness 0.6;IOR 1.5

折射率

正如我们之前提到的,IOR 在创建基于物理的材质时仍然发挥着重要作用。因此,在创建材质时仍要将 IOR 考虑进去。 而 RefractiveIndex.info 这个网站是查询不同材质其 IOR 的重要资源。可是,其数值套到 V-Ray 着色器中并不完全适用。因此,Vlado 创建了此图表协助简化转换:

以下是基于 RefractiveIndex.info 网站上的一些金属示例:


拉丝铝(Brushed aluminum)

抛光铝(Polished aluminum)

钨(Tungsten)

铜(Copper)

金属性纹理贴图

正如我们之前提到的,许多用户可能更倾向于使用金属性(Metalness)参数,因为这些是他们已有的贴图。因此,金属质感贴图更像是两种不同类型材质之间的蒙版(mask):电介质或导电材质。

以下示例显示了我们如何获得两种不同的材质:一种具有金属性并设置为 1; 另一个使用 Substance Designer 设置为 0。您将看到我们可以使用单个着色器和更少的贴图创建两种不同的材质:基色(base color,),金属性(metalness),法线(normal)和粗糙度(roughness)。


Substance Designer 树状显示贴图输出

生锈的铜。使用 Substance Designer 贴图并 以V-Ray 进行渲染着色器

让我们来回顾一下

PBR 材质非常受到大家欢迎,让大家在许多不同类型的渲染器中使用贴图,尤其是实时渲染解决方案。但许多用户还希望继续将这些相同的纹理与 V-Ray 一起使用。新增的 Metalness 参数添加到 V-Ray Next 的标准材质中,用户可以沿用其 PBR 工作流而无需使用全新的着色器。

CG Garage 播客 #190的专访 Zap Andersson,Zap 是 Autodesk 的着色器专家,与播客主持人 Chris Nichols 谈论了物理和光谱渲染,金属性与实时渲染。想直接聆听金属性的讨论,请快转至 39 分钟处。

关于作者

Christopher Nichols
Chris 是 CG 行业资深人士和 Chaos Group 实验室总监。作为 CG Garage 播客的主持人,你可以定期收听他的节目,每周吸引 20000 名听众。有视觉特效与设计的专业背景,Chris 曾为 Gensler,Digital Domain,Imageworks 和 Method Studios 工作。 并曾参与制作包括 Maleficent,Oblivion 和 Tron:Legacy 等电影。