文章开始前我们先明确一下各个符号: 是立体角,  是的polar angle,  是的azimuthal angle.小写  是pdf(概率密度函数),大写  是cdf(累积概率密度函数), 也就是微表面模型方程里的D项.
刚朋友跟我探讨pbrt第809页(点我)的这个式子怎么来的:
其中pbrt的14.1式为:
我乍一看不太对头啊,那一坨被积函数  明显是Beckmann分布,而经验告诉我Beckmann属于高斯函数 ,高斯函数不可积(即不定积分不可用初等函数表示),怎么pbrt就能积出来呢?而且Beckmann分布虽然叫分布,但并不是概率分布函数(cdf>1,不满足概率律),计算cdf有啥意义呢?或许Beckmann比较特殊?算又不会算,只好交给wolframalpha了:Wolfram|Alpha: Making the world's knowledge computable即其不定积分为:
erf是误差函数,是一个非初等函数.看来没违反常识.
所以pbrt上这个等式肯定是错了的,原因是为啥呢?原来pbrt犯傻了:
14.1式  ,我们翻到pbrt8.4.2小节公式8.10,会发现等式右边正是Beckmann分布:
很好,找到问题所在了,但那个  是不是要求的cdf呢?
又  是相互独立事件(因为成角度两个轴正交,互不影响),相互独立事件的联合分布有这个性质:  ,而  是均匀分布即 : 由(1),(2),(3)可得:
好了,我们求得了正确的,现在可以对  积分来求cdf  :
算又不会算,就把的不定积分也交给wolframalpha吧:Wolfram|Alpha: Making the world's knowledge computable我们直接拿答案: