我正在尝试实现一个Microfacet BRDF阴影模型(类似于Distribution模型),并且我在本文定义的贝克曼分布( https://www.cs.cornell.edu/~srm/publications/EGSR07-btdf.pdf )中遇到了一些问题。

其中M是微面法线,N是宏面法线,ab是0,1之间的“硬度”参数。
我的问题是,这个分布经常返回非常大的值,特别是当ab非常小的时候。
例如,贝克曼分布被用来计算在这个方程中产生微面正态M的概率:

概率必须在0,1之间,那么如果贝克曼分布给我大小为1000000000+的值,那么怎么可能使用上面的函数在这个范围内得到一个值呢?
所以有合适的方法来夹住分布吗?还是我误解了它或者概率函数?如果值超过1,我试过简单地将其固定为1,但这并没有真正给出我想要的结果。
发布于 2014-04-22 23:29:26
我有和你一样的问题。
如果你读到
notes.pdf
和
notebook.pdf
你会发现这是完全正常的。引用链接:
“贝克曼Αb参数等于均方根斜率,因此其有效范围为0(非包含-0对应于完美镜面或Diracδ,并在贝克曼公式中引起0的误差除以0),达到任意高值,1Α的值没有特殊意义,仅意味着它的斜率为1/1或45°。”
另一句话是:
“微面取向的统计分布是通过微面正态分布函数D(m)来定义的。与F ()不同,D()的值不限于0到1之间--虽然值必须是非负的,但它们可以任意大(表示有指向某一特定方向的法线的极高浓度的微面)。”
你应该搜索自我阴影的物理阴影课程,它充满了有用的材料(每年有一篇博文: 2010,2011,2012和2013年)
https://stackoverflow.com/questions/23177878
复制相似问题