PBR表明这是不可行的-Oren-Nayar的公式没有明确的$ D $ / $ F $ / $ G $参数,并且在Torrance-Sparrow模型下的注释指出“关于Torrance-Sparrow模型的一件好事是,推导不取决于所使用的特定微面分布”(这意味着Oren-Nayar并非如此)。
如果Oren-Nayar是可扩展的,那我该怎么做?我怀疑我可以用带有$ \ alpha $参数的NDF替换我的$ \ sigma $值(有效地与Oren-Nayar定义中的隐式高斯进行卷积),然后将求值的Oren-Nayar函数与$ G $相乘以捕获掩盖了$ dA $的部分,但是这与推导得出的假设不冲突吗? PBR指出,该函数本身就解释了高斯分布的蒙版,因此在顶部应用其他函数会导致过度变暗...
如果它不能扩展,我可以调整Torrance-Sparrow吗?代替?将$ F(\ omega_o)$锁定为$ 1 $会消除菲涅耳效应,镜面反射假设可以通过提取$ d \ omega_h = \ frac {d \ omega_o} {4 \ cos \ theta_o} $关系来创建修改后的BRDF $ f(\ omega_o,\ omega_i)= \ frac {D(\ omega_h)G(\ omega_o,\ \ omega_i)d \ omega_h} {d \ omega_o \ cos \ theta_o} $
#1 楼
如果对结果进行归一化,则可以将Oren-Nayar与GGX结合使用。 BRDF由两个属性定义:亥姆霍兹互惠性和节能。$ f(l_i,l,_o)= f(l_o,l_i)$
$ f( l_i,l_o)\ leq 1 $
您的Oren-Nayar是扩散部分$ f_d(l_i,l_o)$,而GGX是您的镜面反射部分$ f_s(l_i,l_o)$。如果两者都是节能的,那么两者最多都为$ 1 $,但加起来可能是$ \ geq 1 $,这就是您的问题所在。 Oren-Nayar之前已与镜面反射项结合使用(例如,参见Crytek的《 Ryze渲染》,您应该看看其他人是如何做到的。如果将它们结合使用,请记住需要两个不同的粗糙度值。的Oren-Nayar和GGX不匹配(从外观上已经知道),但是也不能通过算法将它们从一个转换为另一个。
更好的解决方案是使用imo请参阅Brent Burley在Disney的《基于物理的阴影》和Earl Hammon Jr的GGX + Smith Microsurfaces的PBR漫反射的论文。基于物理的阴影讨论了包括Oren-Nayar在内的几种漫射照明BRDF。继续引入自己的漫反射BRDF,该漫反射BRDF可以使用与GGX相同的粗糙度值(请注意,由于在使用iirc之前这里的粗糙度是平方的,因为对于艺术家来说更容易使用),因此产生的BRDF不节能,因此已被作者接受,因为
这似乎可以与MERL数据进行合理匹配,并且在艺术上也令人愉悦。
塞巴斯蒂安·拉加德(Sebastien Lagarde)和查尔斯·德·鲁西耶(Charles de Rousiers)提出了一种解决方案冻伤到基于物理的渲染,他们重新标准化了整个BRDF。
Earl Hammon的GGX + Smith Microsurfaces的PBR漫射照明采用了不同的方法,他像Oren和Nayar一样计算近似值,只有在GGX NDF和Smith阴影/遮罩中才这样做。迪士尼Diffuse和Hammon的Diffuse BRDF都可以轻松地与GGX高光术语组合使用,并且在视觉上比Lambert更令人愉悦。
评论
$ \ begingroup $
对不起,所有版式错误...在手机上键入此内容时没有任何预览。我会更正,因为我在电脑上。
$ \ endgroup $
–皮重
18年2月1日在6:21
$ \ begingroup $
对不起,等等...最终陷入了bdpt的困境,并暂时忘记了材料:)。听起来GGX / Smith是严格的镜面NDF,而Oren-Nayar是严格的漫射NDF(即,即使交换掉下面的宏观表面,期望GGX / Smith的漫射照明或Oren-Nayar的镜面照明也毫无意义),是对的吗?
$ \ endgroup $
–Paul Ferris
18-2-22在23:53
$ \ begingroup $
是的,这(大部分)是正确的。关于Oren-Nayar的一件事是,它合并了镜面反射光的某些方面,因为它具有某些视图依赖性。但是,没有真正的高光,只有$ n \ cdot v \ rightarrow 0 $($ n $是表面法线,$ v $是视图矢量)的阴影效果,所以我不会走得太远,并且说那个效果是真正的镜面照明效果。
$ \ endgroup $
–皮重
18-2-23在6:35
$ \ begingroup $
很好,谢谢!我未完成的物料系统将“物料”定义为BRDF概率的向量;如果我有两个随机选择的+分开的镜面/漫反射微面BRDF(考虑到各个BRDF的不同的镜面/漫射粗糙度+ PDF),我会得到合理的结果吗?
$ \ endgroup $
–Paul Ferris
18年2月23日在13:08
$ \ begingroup $
我不确定您如何做到这一点。如果您想知道,如果可以通过将任意漫反射BRDF与任意镜面反射BRDF结合使用来获得合理的结果,那么可以。实际上,如果您浏览了一些现代的游戏和论文,这就是人们已经做了相当长的时间了-他们选择一种BRDF进行漫反射,选择一种BRDF进行镜面照明,然后手动调整属性,直到结果看起来不错为止。这些组合取决于团队:很多人使用了GGX + Lambert,但也使用了Beckmann + Lamber或使用Oren-Nayar的镜面BRDF。
$ \ endgroup $
–皮重
18年2月23日在13:37