我试图了解Cook-Torrance Microfacet模型,并且目前停留在正态分布函数D(贝克曼,布林-庞(Blinn-Phong)或GGX)上。
一些在线资源声称D是与表面法线 N 关联的微面法线 M 的分数,D是它位于[0,1]之间的分数。 12

但是经过一些研究,我知道D是 M N 对齐的浓度。 3
4

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

从这样的非标准化值中可以确切地读取什么?

可能与 N 对齐的 M 的分数有关吗?

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

最佳答案

为了进一步阐述我在上面的评论,作为对该问题的可能答案:

从NDF提供的统计概率来看,微表面法线MN精确对齐(在这里,确切的意思是:相对于NM周围的无穷立体角),您是对的。

这样,NDF是单位为one over steradians的分布函数(更广泛地讲是“广义函数”)。这意味着,将函数值与立体角相乘时,将获得无单位的分数值。
这就是集成发挥作用的地方。

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

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

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

由于存在亥姆霍兹互易性,我们可以这样反过来说:在固定w_i方向时(因此仅考虑光来自一个方向),然后对所有可能的输出方向w_o进行积分,然后再次对余弦求值并求平均值加权的NDF,结果将再次精确为1.0
因为,当我们再次仅考虑BRDF中的NDF时,入射的光将始终被反射到某个位置而不会丢失。

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

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

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

10-08 01:38