6

我正在尝试了解 Cook-Torrance Microfacet 模型,并且目前停留在正态分布函数D(Beckmann、Blinn-Phong 或 GGX)上。一些在线资源声称D是与表面法线N对齐的微面法线M的分数,而 D 是介于 [0,1] 之间的分数。1 , 2

然而,经过一些研究,我了解到 D 是MN对齐的浓度。3 , 4

这个浓度值(经过一些测试可以达到 32 甚至更高)对我来说有点不祥。

从这样一个未归一化的值中究竟能读到什么?

它可以与对齐的MN的分数有关吗?

还是我忽略了一些简单的事情?

4

1 回答 1

3

为了进一步阐述我上面的评论作为这个问题的潜在答案:

从某种意义上说,您是对的,NDF 给出了微表面法线M完全对齐的统计概率(其中确切的意思是:关于和N周围的无穷小立体角)。NM

因此,NDF 是一个单位为 的分布函数(更广泛地说是“广义函数”)one over steradians。这意味着,当您将函数的值乘以立体角时,您会得到一个无单位的分数值。这就是集成发挥作用的地方。

因为,NDF 的最终用途是在渲染方程中确定微分面反射的光的比例M,其中M是两个其他向量之间的半向​​量V_oV_i而这两个向量中的一个矢量被定义为到接收差分表面的“出射方向”,另一个被定义为“入射光方向”。我们将使用w_o= 传出和w_i= 传入方向,但由于互惠,这并不重要。

当我们求解渲染方程时,我们必须在我们想要着色的表面点的整个半球上进行积分(即我们想要沿出射方向计算其辐射度w_o)以考虑所有可能从该表面点反射的光沿着传出方向w_o。为此,我们必须知道这一点的“辐照度”。为了得到这个,我们评估所有可能的入射光方向的 BRDF,w_i并对它们的贡献求和和平均。

如果我们确实w_i对给定w_o方向进行了无限多个方向的采样,并针对每个这样的方向询问 NDF,并对 NDF 的余弦加权结果进行平均,结果将始终是精确1.0的,因为如果我们仅将 NDF 视为BRDF,当从表面反射时,所有出射光w_o都必须来自某个地方。

由于亥姆霍兹互易性,我们可以反过来说:当固定w_i方向时(所以只考虑一个方向光进来)并整合所有可能的出射方向w_o,再次评估和平均余弦加权NDF,结果将再次精确1.0。因为,当我们再次只考虑 BRDF 中的 NDF 时,入射光总是会反射到某个地方而不会丢失。

那么,在写完所有这些之后,NDF 函数的单个样本现在实际上意味着什么?简而言之:这意味着您不会对所有微分立体角进行积分并对结果进行平均,而是仅对单个方向取一个样本,然后您将其声明为积分的结果(您仅使用单个样本计算)。所以你基本上用一个样本计算了黎曼和。

或者换句话说:简单地在单个位置对 NDF 进行采样没有合理的物理意义/结果。我希望这能消除一些未知数。

这实际上是我第一个认真的 StackOverflow 答案,我知道我将来肯定可以改进编写这些答案!谢谢!:)

于 2019-12-09T18:45:05.460 回答