作者:i_dovelemon
日期:2017/07/29
来源:****
主题:Monte Carlo Integration
引言
好久没有写博客了,最近一直在忙于工作,同时GLB库中关于PBR的渲染算法,一直卡住,无法实现下去。不过在这段时间,阅读了大量关于PBR的论文,有了一点心得,所以今天在这里和大家分享下,在准备实现PBR中,所需要准备的一些数学基础知识。
今天要和大家分享的是在解渲染方程中,最常使用的一种数学积分方法-基本蒙特卡罗尔积分,后面会陆陆续续补充一些基于此方法的优化手段。
蒙特卡罗尔积分
假设我们有一个函数
聪明的科学家们,想出了一些近似的方法来求出该积分,其中在图形学里面被经常用到的就是蒙特卡罗尔积分。
我们假设,下图就是函数
求这个函数在
由于这个图形是一个不规则的图形,想要简单的求出面积基本不可能。但是我们知道,对于该面积,当我们将
所以,对于求该函数的积分,就变成了如何求出一个
实际上,由于宽度为
所以,最后问题就变成了:如何较准确的求出函数在
虽然前面我们说过对于
当然,仅仅只通过选取一个随机值,计算出的
上面这段话应该很容易理解,当我们随机采样的数量趋近于无限的时候,这些随机样本所形成的
关于函数
同时,我们可以得出更加通用的公式:
总结
这一次通过一个简单的实例,讲解了基本蒙特卡罗尔的方法,下一次将要讲解,图形学里面,常用的优化手段,能够让我们使用更少的样本,更快的计算出,比较精确的积分值。
参考文献
[1] Ray Tracing From the Ground Up, by Kevin Suffern
[2] Physically Based Rendering From Theory to Implementation, Third Edition, by Matt Pharr,Wenzel Jakob,Greg Humphreys