矢量和角度的简短介绍:
$ \ omega_i $是光矢量
$ \ omega_o $是视图矢量
$ \ omega_n $是宏观几何法线
$ \ theta_i $是角度在$ \ omega_i $和$ \ omega_n $之间
$ \ theta_o $是$ \ omega_o $和$ \ omega_n $
$ \ theta_h $是$ \ omega_n $和$ \之间的角度omega_h $
$ \ alpha_ {hi} $是$ \ omega_i $和$ \ omega_h $之间的夹角
$ \ alpha_ {ho} $是$ \ omega_o $和$ \ omega_h $之间的夹角(此区别是为了澄清)
$ \ alpha_h $是任意角度$ \ alpha_ {hi} $,$ \ alpha_ {ho} $,因为它们相等
现在,假设$ r_s $是镜面反射分量的BRDF项,不包含菲涅尔因数,而$ r_d $因此是漫反射分量的项,不包含菲涅尔填充,则菲涅耳因数表示为$ F(angle) $。
[PBR,第105页]提到,漫射光透射两次,一次又一次。因此,菲涅耳分量必须相乘两次。
[PBR,第[106]继续说,菲涅耳定律是对称的,这意味着进入和离开是独立于方向的(即,一旦我们从空气进入物质,而一旦进入空气,则无所谓)。现在我假设(对于$ F_1 $是菲涅耳,而$ F_2 $是菲涅耳离开材料)使用
$(1-F_1(\ alpha_ {hi}))*(1 -F_2(\ alpha_ {ho}))$$
$ F_1 $和$ F_2 $是相同的函数,$ \ alpha_ {hi} $和$ \ alpha_ {ho} $是相同的角度,因此
$(1-F(\ alpha_h))^ 2 $
这将导致brdf $ f $:
$ f = F(\ alpha_h)* r_s +(1-F(\ alpha_h))^ 2 * r_d $
[PBR,第113页]和[DIS,第14页]使用
$ f = F(\ alpha_h)* r_s +(1-F(\ theta_i))*(1-F(\ theta_o))* r_d $
和Shirely等人使用这种计算的原始论文一样。 1997.
我不明白这一点,为什么它们会从微观角度变为宏观角度?微观面角度导致能量对话
$ F \ in [0,1] $
$ \ Rightarrow(1-F)\ in [0,1] $
$ \ Rightarrow(1-F)^ 2 \ in [0,1] $和$(1-F(\ alpha_h))> =(1-F(\ alpha_h))^ 2)$
它应该是倒数
$ f(\ theta_i,\ theta_o)
= F(\ alpha_ {hi})* r_s +(1-F(\ alpha_ {hi})) *(1-F(\ alpha_ {ho})* r_d
= F(\ alpha_h)* r_s +(1-F(\ alpha_h))^ 2 * r_d
= F(\ alpha_ { ho})* r_s +(1-F(\ alpha_ {ho}))*(1-F(\ alpha_ {hi}))* r_d
= f(\ theta_o,\ theta_i)$
,因此满足BRDF要求。镜面项使用微刻角,因此在镜面和散光分量之间进行插值是更明智的选择(忽略此参数的两次透射的事实)。 >相反,[PBR,第113页]和[DIS,第14页]将$ \ theta_h $放入了粗糙度计算中,而对此作了无法解释的解释。说明幻灯片[PBR,第187页]使用点乘积$ \ omega_h * \ ome ga_o $(因此也就是$ \ alpha_ {ho} $角),然后在[PBR,p。 191]也是点积$ \ omega_h * \ omega_i $($ \ Rightarrow \ alpha_ {hi} $)。
#1 楼
最后,我在论证中发现了一个缺陷,那就是将半向量用作扩散部分。; dr版本:
$ \ alpha_ {hi} $和$ \ alpha_ {ho} $不相等,此假设仅适用于镜面反射部分。因此,没有给出能量守恒。微面法线而不是半向量。但是,微刻面法线和半矢量通常不相等。广义的BRDF形式为:
(1)
$ f = \ int _ {\ Omega} \ frac {\ rho_m * D * G * \ cos(\ alpha_ { hi})* \ cos(\ alpha_ {ho})} {\ cos(\ theta_i)* \ cos(\ theta_o)} $
其中$ \ rho_m $是光在发光时的行为到达微面,$ D $为正态分布函数,$ G $为几何函数,其余为归一化[PBR,第16-25页] [HEI,第61f。]
现在,对于镜面反射BRDF,其行为是完美的反射。这意味着,只有微面法线$ \ omega_m $等于光($ \ omega_i $)和视图($ \ omega_o $)方向之间的半矢量$ \ omega_h $的微面才将光从光方向反射到视图方向。从数学上讲,这转换为狄拉克三角洲函数$ \ delta(\ omega_h)$。反射的光量由菲涅耳$ F $确定。考虑到积分域的变化[PBR,第31-41页],这导致($ \ rho_ {m,s} $是镜面部分的微面的镜面反射特定反应):
(2)
$ \ rho_ {m,s} = \ frac {\ delta(\ omega_h)* F} {4 * \ alpha_ {hi} * \ alpha_ {ho}} $
将其插入(1),即可对任何$ \ omega_m $进行积分,但是dirac delta函数使您可以忽略$ \ omega_m \ neq \ omega_h $处的任何内容。关于那些狄拉克三角洲函数,“取消”积分,这是一件好事。因此,您进入了众所周知的BRDF [PBR,第43页]
(3)
$ f_s = \ frac {F * D * G} {4 * \ cos(\ theta_i)* \ cos(\ theta_o)} $
,在这里您可以轻松地假设$ \ alpha_ {hi} = \ alpha_ {ho} $。菲涅耳部分使线性插值的这一面(参见这是镜面反射的光的比率)。
在另一面,您仍然具有积分,并且您不能“取消”。令$ \ theta_ {mi} $为微面法线与光目录之间的夹角,theta_mo为微面法线与视图目录(与$ \ alpha_ {hi} $和$ \ alpha_ {ho} $相对,专门为半角定义!)。这意味着2个重要的事项:
(4)
alpha_h = \ alpha_ {ho} \ neq \ theta_ {mo} \ forall \ omega_m \ neq \ omega_h $
和$ \ rho_ {m,d} $(到达时光的扩散反应microfacet)仅依赖于菲涅耳透镜,它只能使用未反射的零件,但是您不能仅仅假设每个microfacet的法线漫反射都会反射所有未被镜面反射的光(即$(1-F(\ alpha_h))$)。 />
所以现在的问题是,线性插值的一侧是可解析的镜面反射BRDF,而没有积分。另一方面,插值因子在积分之内,因此可以将其用于任何微面法线。如果使用朗伯项对$ \ rho_ {m,d} $建模,则这不再是节能的。
如果您设法将$ 1-F $部分从积分中拉出,则只有这样,您才可以将半向量用于镜面反射BRDF和扩散BRDF,否则您需要以不同的方式处理。 br />
如果仍要对“ Fresnelinterpolation”使用半个向量,则需要进行归一化。
$ f = F(\ alpha_h)* r_s +(1-F(\ alpha_h))* r_d * k $
选择$ k $后,这样
$ r_d * k = 1 $
请注意,$ r_d $仍然包括所有可能的微面法线的积分。
使用$ \ theta_i $和$ \ theta_o $
我想我应该添加一个关于实际使用的角度的句子,因为我最初提出的问题不仅是“为什么不$ \ alpha_h $”,还包括“为什么$ \ theta_i $和$ \ theta_o $”。因此,对于一个想知道这是否正确的人:否。这只是一个近似值。
相反,我们可以将遮罩项修改为捕获重要的定性角行为的简单近似值[...]。
[SHI,p.46]
讨论为什么这么难弄清
现在[DIS,p.14]和[PBR,p.100,184]在此引用了[SHI]和[ASH],其中[ASH]使用[SHI],因此归结为后者的模型。并且,由于[DIS]和[PBR]是非科学的出版物(尽管经过深思熟虑),所以我不能对它们进行过多的指责,但实际上,一种更好的引用论文的方式或进行额外的解释可能有助于并节省了时间。我花了大约2周的时间思考,阅读并几乎写了一篇关于每个人为什么(应该)错误的论文。
此外,他们都没有真正解释他们的弥散近似,[PBR,第193页]只是提到尝试不同的功能,直到他看到喜欢的功能为止。另外,[SHI,p.46]实际引用了[SCH,p.10f。],他们使用了$ F(\ alpha_h)$和$ 1-F(\ alpha_h)$之间的线性插值。但是,[SHI,p.46]错误地引用了他,他们说他使用了$ F(\ theta_i)$和$ 1-F(\ alpha_h)$。假设这样,他们当然认为[SCH]不是节能的,但这使我相信$ F(\ alpha_h)$和$ 1-F(\ alpha_h)$将会是正确的。我不能说,他们的错误可能是由他们自己使用$ F(\ theta_i)$造成的。
文献资料
[ASH] phong BRDF模型,在Journal of Graphics Tools Vol。1中。 5,第2号,Michael Ashikhmin和Peter Shirley,2000年。[SCH]一种用于基于物理的渲染的不昂贵的BRDF模型,在计算机图形论坛第一卷中。 13,第3号,Christophe Schlick,1994年。[SHI]从业者对光反射模型的评估,在第五届太平洋计算机图形学与应用大会上,1997年。会议记录,Peter Shirley,Helen Hu,Brian Smits和Eric Lafortune,1997年
[DIS]迪斯尼的基于物理的着色,在SIGGRAPH 2012课程:电影和游戏制作中的基于物理的着色,Brent Burley,2012年
[HEI]了解其中的蒙版阴影功能基于微面的BRDF,在《计算机图形技术杂志》第一卷中。 3,第2号,埃里克·海茨(Eric Heitz),2014年
[PBR]用于GGX + Smith微表面的PBR扩散照明,在GDC2017上,厄尔·哈蒙(Earl Hammon Jr。),2017年
#2 楼
实际上,我们正在为自己的GGX BRDF金属和edge_tint模型审阅该论文,并且发现了一个关键问题。实际上,该方法仅适用于电介质(和导体,但会受到干扰)。 $当我们根本不希望在表面上镜面反射时。https://github.com/Crisspl/IrrlichtBAW/commit/914b50d7238fc4a30f23fc2a4ea570e467f4ab75#r34031272
Schlick分崩离析的价格为$ F_0 <0.02 $,因此GGX漫反射对于这些材料而言太暗了(因为它在掠射角仍假定低透射率)。
另外,有些东西我的意思是DIS和PBR使用
$(1-F(\ theta_i))(1-F(\ theta_o))$而不是适当的分裂和近似值(菲涅尔面平均法线)
在PBR中,
smooth
分量可以保持原样(除了Schlick需要用适当的菲涅耳),但我想知道如果$ F_0 <0.02 $,rough
和multi
将会变成什么。 \ alpha = 1 $ GGX NDF是一个常数),如果$ F_0 = 0 $。 我希望我们可以给E. Hammon发送一封电子邮件,看看是否可以针对完整的菲涅耳和扩展的IoR(F0)范围(包括1.0(0.0))重新运行该模拟。
编辑:Seb。拉加德(Lagarde)也与我对使用的菲涅耳(Fresnel)一样存在同样的担忧