$$ {\ frac {FDG} {\ pi({\ vec N} \ cdot {\ vec V})({\ vec N} \ cdot {\ vec L})}} $$
$$ {\ frac {FDG} {4({\ vec N} \ cdot {\ vec V})({\ vec N} \ cdot {\ vec L})}} $$
$$ {\ frac {FDG} {({\ vec N} \ cdot {\ vec V})({\ vec N} \ cdot {\ vec L})} } $$
哪个是正确的,何时? Matt Pharr和Greg Humphreys在《基于物理的渲染:从理论到实现》中,第二个结论是最终得出的,但是Cook和Torrance在他们的原始论文中使用了第一个,没有任何详细的解释。
#1 楼
我会在这方面信任Pharr和Humphreys。公式2也与SIGGRAPH基于物理的渲染课程笔记以及引入GGX分布的Walter等人论文中的公式20一致。我读到某个地方存在错误最初的Cook-Torrance论文使他们错过了分母4的因数,随后的论文对此进行了更正。我无法通过快速搜索找到对此的引用(如果有人知道,请随时在注释中注明)。
关于π的因数,它可能会出现或不,取决于惯例。有时它是正态分布函数D的因数。例如,如果您在Walter等所有GGX论文5.2节中找到了几个D函数的方程,则可以看到它们的分母都为π。请注意,这意味着Lambertian BRDF在分母中也应该有一个π。
在实时图形中,通常会忽略π,在这种情况下,我们可以将其解释为已分解变成浅色。两种方法都可以,只要您对将π放入或从您使用的所有BRDF中删除保持一致即可。
#2 楼
在比较包括Cook-Torrance BRDF在内的多个BRDF时,最新的论文(至少是2005年;))具有更简洁的表示法。他们的公式不包括除以4。Addy Ngan,FrédoDurand,Wojciech Matusik:BRDF模型的实验分析,
2005年欧洲图形学研讨会论文集。
项目页,补充(请看补充!)
请注意,但是Cook-Torrance BRDF不相等,因此不是Torrance-Sparrow BRDF的同义词。后者包括您的4分频。有趣的参考概述可以在以下网站找到:
Rosana Montes,CarlosUreña:BRDF模型概述,技术报告,2012年。
相同的Cook-Torrance BRDF公式也存在于:
PhilipDutré,Kavita Bala,Philippe Bekaert:《高级全球照明》,第二版,2006年。
编辑:我看过在F,G(或V,取决于是否将分母简化成G)的某些(各向同性)实现中:D:
D:Beckmann,Ward -Duer,Blinn-Phong,Trowbridge-Reitz又名GGX又名GTR2,Berry又名GTR1;
G | V:隐式,沃德,诺伊曼,阿什赫敏·普雷莫兹,凯勒曼,库克·托伦斯,史密斯GGX, Smith Schlick-GGX,Smith Beckmann,Smith Schlick-Beckmann;
F:Schlick,Cook-Torrance。
它们似乎都被使用了(在文献中,动画行业和游戏行业),其格式与您的第二个选项相对应。我枚举中的所有D因子都包含一个显式$ \ frac {1} {\ pi \ alpha ^ 2} $和$ \ alpha \ equiv \ text {roughness} ^ 2 $(请参见方程式)。
编辑2:最近的一个演示文稿,用$ 4 $代替$ \ pi $进行了除法运算:
Earl Hammon:适用于GGX + Smith Microsurfaces的PBR漫射照明,GDC2017。
长话短说,选项2是(提供的三个选项中)唯一正确的镜面反射项。
#3 楼
我个人使用的是等式2。对我来说,等式3似乎不正确,Pi因子是为了标准化光响应并节省能量。本质上,您不希望从表面反射的光多于其接收的光。等式2是等式1的改进,据我所知更正确。有关等式2的更多信息,请参阅Walter等人的“通过粗糙表面折射的微面模型”
评论
$ \ begingroup $
Blinn-Phong不使用$ \ alpha \ equiv粗糙度^ 2 $。它具有任意的“粗糙度”参数。同样,贝克曼中的$ \ alpha $与GGX中的$ \ alpha $不同。在Beckmann中,$ \ alpha \ in [0,\ infty)$和GGX $ \ alpha \ in [0,1] $(尽管两者都描述RMS斜率)。
$ \ endgroup $
–皮重
17-10-13在12:46
$ \ begingroup $
@Tare对于Blinn-Phong,您需要使用从镜面反射指数派生alpha的派生版本。参见graphicrants.blogspot.be/2013/08/specular-brdf-reference.html
$ \ endgroup $
–马特西亚
17-10-13在13:21
$ \ begingroup $
好的,您没有在帖子中提及这一点,所以我认为您使用的是原始表格。
$ \ endgroup $
–皮重
17-10-13在14:16