与PBR实施混淆


14

我发现了数学的奇妙世界,并且用PBR和命名来碰壁,所以我有几个问题:据我了解,BRDF描述了材料对光(入射的直接光和反射)的反应。但是在“ Cook-Torrance”中,我看不到任何有关反射的信息,我不了解如何对其进行整合,因此只能得到漫反射的光和反射。

我已经读过很多有关“ Oren-Nayar”等不同“扩散术语”的文章,它是否像DFG提名人中的其他“ D”一样,是Cook-Torrance的一部分?不用镜面计算就可以代替它吗?

我从搅拌机艺术家的背景中读到了很多有关“ GGX”的东西,我认为这是一种模糊的反映,但似乎我错了,现在我在许多不同的情况下(例如在微刻面正常情况下)都发现了这个GGX术语本教程中的分发

简而言之,问题是:“ Oren-Nayar”,“ GGX”和“ Cook-Torrance”如何相互关联(如果存在),以及如何在这些算法中集成“ vec3反射”?

正如我在成为数学新手之前所说的那样,因此如果您的回答“算是数学上的麻烦”,请为您的方程式写一个glsl / hlsl版本,这对我来说更容易理解,因此等效性对我有很大帮助

PS:我知道我的问题很模糊,但也跟我对这个问题的理解一样模糊。


1
可能会对您有所帮助的是“镜面反射”的意思是“像镜子一样”。因此,当谈论镜面反射和漫反射时,镜面反射就是像反射一样的镜像,人们通常称之为反射。扩散只是“事物照亮”。它们也反射光,但是它们从许多不同的方向反射,因此结果并不能识别图像。在真实对象中,镜面反射和漫反射之间存在比例,这是PBR控件的“粗糙度”参数。
艾伦·沃尔夫

您可以尝试阅读原始的Cook-Torrance论文:inst.cs.berkeley.edu/~cs294-13/fa09/lectures/cookpaper.pdf-尽可能确保也检查最后列出的参考文献(大多数是在线提供)。这将需要一些时间,但这是一种“深入”了解正在发生的事情的可靠方法。
Wip

Answers:


12

DFG出现在基于微面的BRDF系列中。它只是三个术语的乘积:

  • D:微面分布。
  • F:菲涅耳系数。
  • G:微面之间的几何衰减。

当有人说库克·托兰斯时,他们通常指的是微面BRDF,其分布(D)是贝克曼,我认为这就是库克·托兰斯原版纸的含义。

GGX实际上只是一个不同的分布(D项)。GTR是另一个。这些名称通常用作表示使用该发行版的BRDF的快捷方式。

现在所有这些都假设在微平面上发生镜面反射(或折射),因此是菲涅耳项。如果您采取类似的想法,但使用漫射(朗伯)微面,则可以得到Oren-Nayar BRDF。我认为这是基于微面的高斯分布,但我对这些细节并不熟悉。


好的,这有点清楚,但是它仍然无法解释我在射线追踪/行进或使用SSR / cubemap重新发射射线后得到的“ vec3 ReflectionColour”该怎么办。就像方程式只考虑了点光源/聚光灯,而对区域光或反射一无所知。似乎“镜面反射”仅与“白点”相关,而与反射无关,因为这没有意义= /
newin

@newin在PBR模型中,镜面反射和反射是同一事物的不同名称。当光线照射到光线时,它是镜面反射高光,当光线照射到另一个对象(或环境)时,它是反射光。至于您的反射颜色,则取决于射线的产生方式。您要采样直接照明吗?区域灯?整合BRDF和环境地图?尝试阅读“ 使用显式光采样进行渐进路径跟踪”,答案很长,可能会清除该过程中的一些问题。
奥利维尔(Olivier)

因此,如果我正确理解应将“ vec3 ReflectionColour”视为一种光,并且如果我想使网格物体发光,则应该在反照率中输入一个大于1的值,仅此而已?(我正在尝试将PBR集成到不同的场景中,第一个是我希望网格物体发光的raymarcher,另一个是使用SSR并可能使用立方体贴图的游戏引擎)
newin

@newin发出的光只是添加在其他所有内容之上。与BRDF无关。如果您的网格物体除了发光之外什么都不做,那么您甚至不需要从中追踪出更多的光线。较大的反照率会放大光(实际上是错误的),而不是产生光。
奥利维尔
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.