在上一篇文章《从拉普拉斯方程到球谐函数》中,我们详细的讲解了由拉普拉斯方程求解得到球谐函数的过程以及介绍了球谐函数的一些性质:
xiaomengge:【球谐光照】(一)从拉普拉斯方程到球谐函数?zhuanlan.zhihu.com在本文中将会介绍如何用球谐函数去近似游戏中的光源,也就是得到我们所说的球谐光照。本文主要分以下四个方面去介绍这一过程:
1.蒙特卡洛积分
2.正交基函数
3.光源投影
4.总结
一、蒙特卡洛积分
随机变数X会根据一个特定的函数来进行分布,我们记作 f(x) ~ p(x). 这里f(x)是关于随机变数X的函数,p(x)为随机变数X取特定值x对应的概率,也就是我们说的概率密度函数,概率密度函数在X的取值范围的积分为1。
所以随机变数X在[a,b]范围内发生的概率为概率密度函数在a到b上的积分:
每个关于随机变数X的函数f(x)都有一个期望值,它是你对f(x)做足够多的采样时将会趋近的一个值,对于关于连续随机变数的函数f(x)期望求解如下:
另一种求期望的方式是对f(x)进行大量的采样,然后求这些采样的均值,当采样的数量趋近无限时所得到的均值也就越趋近实际的期望值:
结合以上两种求期望的方法,我们就得到了一种在工程数学中对函数积分进行近似计算的巧妙方法——蒙特卡洛积分:
对于这个公式中,我们 看为一个整体然后结合上面两种求期望的公式就很好理解了。我们令 来表示每一个采样函数值对应的权重,这样可以得到蒙特卡洛积分的另一种写法:
二、正交基函数
基函数可以看做是一些很小的信号,通过对这些信号进行缩放然后组合就可以得到原函数的近似函数。计算每个基函数的缩放系数的过程称为投影,例如计算基函数B(x)的系数也就是计算原函数f(x)中包含了多少基函数B(x),计算基函数系数只需对原函数和对应基函数的乘积进行积分即可: