提高Monte Carlo积分计算效率的本质:
减少那些对结果贡献小的采样点的数目!
特别声明:“提高效率”的前提是不能影响计算结果的精确度。
一、Russian Roulette
以“路径形式的光传播方程”为例来进行说明。
方程截图如下:
这个结果是由“无数条长度分别为1、2、3、……的路径上返回的光”累加而成。
咱用beta(n)表示长度为n的路径上返回光的比例(或者说“效率”吧);Le(n)表示长度为n的路径最终打到的光源的光的辐射率。
这样,长度为n的路径上贡献的光P(n)=beta(n)*Le(n)
根据能量守恒:路径的长度越长,该路径上返回的光(能量)越少(即,对计算结果的贡献越小)。
即:beta(1)>beta(2)>beta(3)>……>beta(n-1)>beta(n)>……
这个时候,就考虑“扔掉”那些贡献小的路径。当然,不能直接“扔掉”,这样肯定会影响计算结果。咱得以一种“不会影响计算结的”方式来扔掉。
假设咱想“扔掉”长度>=n的路径。
Russian Roulette方法是