作者:i_dovelemon
日期:2017/07/29
来源:CSDN
主题:Monte Carlo Integration
引言
好久没有写博客了,最近一直在忙于工作,同时GLB库中关于PBR的渲染算法,一直卡住,无法实现下去。不过在这段时间,阅读了大量关于PBR的论文,有了一点心得,所以今天在这里和大家分享下,在准备实现PBR中,所需要准备的一些数学基础知识。
今天要和大家分享的是在解渲染方程中,最常使用的一种数学积分方法-基本蒙特卡罗尔积分,后面会陆陆续续补充一些基于此方法的优化手段。
蒙特卡罗尔积分
假设我们有一个函数 f(x) ,我们无法通过分析的方法直接求出如下的积分:
∫π0f(x)dx
,那么当我们需要知道该积分的值的时候,又该怎么办了?
聪明的科学家们,想出了一些近似的方法来求出该积分,其中在图形学里面被经常用到的就是蒙特卡罗尔积分。
我们假设,下图就是函数 f(x) 在 [0,π] 上的曲线:
求这个函数在 [0,π] 上的积分,实际上就是求曲线与x轴在 [0,π] 所围图形的面积,如下图所示:
由于这个图形是一个不规则的图形,想要简单的求出面积基本不可能。但是我们知道,对于该面积,当我们将