我试图了解Cook-Torrance Microfacet模型,并且目前停留在正态分布函数D(贝克曼,布林-庞(Blinn-Phong)或GGX)上。
一些在线资源声称D是与表面法线 N 关联的微面法线 M 的分数,D是它位于[0,1]之间的分数。 1,2
但是经过一些研究,我知道D是 M 与 N 对齐的浓度。 3,
4
这个浓度值(经过一些测试可以达到32甚至更高)对我来说是不祥的。
从这样的非标准化值中可以确切地读取什么?
可能与 N 对齐的 M 的分数有关吗?
还是我忽略了一些简单的事情?
最佳答案
为了进一步阐述我在上面的评论,作为对该问题的可能答案:
从NDF提供的统计概率来看,微表面法线M
与N
精确对齐(在这里,确切的意思是:相对于N
和M
周围的无穷立体角),您是对的。
这样,NDF是单位为one over steradians
的分布函数(更广泛地讲是“广义函数”)。这意味着,将函数值与立体角相乘时,将获得无单位的分数值。
这就是集成发挥作用的地方。
因为,最终将NDF用于渲染方程式中,以确定M
上微分立体角内微面反射的光的比例,其中M
是两个其他矢量V_o
和V_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答案,我知道以后肯定可以改进这些内容!
谢谢! :)