Skip to content

能量守恒


在 OctaneRender® 中有六个 BRDF 模型可供选择。四个是物理正确的:BeckmannWardGGX能量保持 GGX。第五个是 STD BRDF,第六个是原始的 Octane BRDF,它不考虑微表面或各向异性,仅部分考虑菲涅耳效果。包含原始 Octane BRDF 是为了向后兼容旧场景,并且如果您需要,可以稍微作弊。

能量保持 GGX

能量保持 GGX 解决了通用 微表面 模型在粗糙度增加的材质中的能量损失,这可能在粗糙度增加时对材质表面引入意外的变暗。能量保持 GGX 旨在克服这一缺陷,并在 Octane 中涉及镜面叶的不同材质节点和材质图层节点中可用,包括:

材质节点:

  • 光泽材质

  • 金属材质

  • 镜面材质

  • 通用材质

材质图层节点:

  • 金属图层

  • 镜面图层

下面我们显示比较旧 GGX 模型的镜面材质(上行)与能量保持 GGX 模型(下行)的图像,从左到右粗糙度增加:

下面我们显示比较旧 GGX 模型的金属材质(上行)与能量保持 GGX 模型(下行)的图像,从左到右粗糙度增加:

STD BRDF

STD BRDF 提供了一个附加参数 Spread,它使您可以控制反射光线分布/扩散的衰减形状和斜率。BRDF 在光泽、镜面、金属和通用材质中可用。下面您可以看到具有 STD BRDF 的材质球,粗糙度为 0.2,4 个不同的扩散值,以及一个用于比较的 GGX BRDF 版本:

BRDF 比较

让我们在实时查看器中的简单球体上比较所有 BRDF 模型。在 Cinema 4D 中创建一个球体对象。然后创建一个纹理环境对象: 实时查看器 > 对象 > 纹理环境。 在纹理环境设置中选择 RGB 光谱,并使颜色为白色(1.0, 1.0, 1.0)。然后创建一个 Octane 光泽材质。在材质设置中按如下方式更改以下内容:

漫反射: 全黑(0, 0, 0)

镜面: 白色(1.0, 1.0, 1.0)

粗糙度: 0.5

指数: 1(禁用菲涅耳)

最后,转到设置/内核并选择路径追踪。现在运行实时查看器。您将看不到任何东西,只有白色,即使球体在那里。为什么?我们看到白色图像,因为原始 Octane BRDF 使反射光能量和入射光能量相等 — 它始终是 %100。

现在将 BRDF 更改为"Beckmann"。您将看到球体相对于环境稍微更明确,因为来自球体的反射光能量小于入射光的能量。下面的图示显示了相同上下文中的所有可用 BRDF。

Octane 中的微表面(粗糙度)

Octane 模拟表面的自然粗糙度,同时根据五个 BRDF 选择中的"微表面"功能在微几何级别重新定义表面:"Beckmann"、"GGX"和"能量保持 GFGX"、"STD"和"Ward" BRDF。与原始 Octane BRDF 不同,这五个模型允许您创建"菲涅耳效果"和"各向异性粗糙度"等功能。

您应该选择哪个 BRDF?这五个微表面模型之间最大的区别是镜面叶。这些镜面叶由微表面 NDF(法线分布函数)定义。NDF 描述了表面的微表面分布,并且对每个 BRDF 模型都是独特的。此外,此函数对镜面高光的大小和形状最负责。在下面的图像中,您可以看到所有五个模型的镜面叶,粗糙度值为 0.2。GGX 产生比其他模型更多的镜面尾部。这是因为微表面法线的角度与表面法线不同,因此 GGX 不会低于某个值。

您可以从下面的链接获取更详细的信息:

https://www.cs.cornell.edu/~srm/publications/EGSR07-btdf.pdf。

Octane 中的各向异性

某些表面以非圆形或球形方式反射光,而是以由表面的物理组件以及其表面平滑度和纹理方向驱动的方式扭曲反射光。此特征称为"各向异性"。您可以通过此功能获得复杂的金属表面以及抛光金属、人类头发、毛皮和木材。反射的外观将根据您选择的 BRDF 模型而变化。下面的示例使用能量保持 GGX BRDF 模型的金属材质,粗糙度为 0.5,各向异性值为 -0.74248。此外,旋转方向可以根据需要由纹理控制。

OctaneRender® 和 OTOY® 是 OTOY Inc. 的注册商标