Biased vs. Unbiased Monte Carlo Estimators
<aside>
💡 积分的近似可能是有偏的,也可能是无偏的。反映到渲染上,会在光子映射的部分涉及到。
</aside>
- An unbiased Monte Carlo technique does not have any systematic error
- The expected value of an unbiased estimator will always be the correct value, no matter how many samples are used
- 路径追踪用蒙特卡洛解积分,解不同的积分可以用不同数量的样本,但不管用多少样本,最后的期望、估计值都是定积分的值,一个无偏的估计。
- Otherwise, biased
- 如果估计出来的值、期望和最后要的值不一样,就是有偏的。
- One special case, the expected value converges to the correct value as infinite #samples are used — consistent
- 特殊情况:虽然取多少样本最后得到的结果都是有偏的,但极限的定义下,如果样本足够多,那么得出来的期望值会收敛到正确值。还是有偏的,但可以成为 consistent 一致的。
- We’ll look again at this page after introducing Photon Mapping
Bidirectional Path Tracing (BDPT) 双向路径追踪
之前的路径追踪,是根据光路可逆性,从相机开始路径追踪,产生路径连接相机和光源。
- Recall: a path connects the camera and the light
- BDPT 是单向路径追踪的拓展
- Traces sub-paths from both the camera and the light
- Connects the end points from both sub-paths
- 从光源打出 light sub-paths,从摄像机再生产一系列半路径。BDPT 将半路径的端点连起来,形成整个路径。
- 思想简单,但实现非常难,也比较慢。

在某些情况效果非常好。下图两种方法都用一个像素 32 个样本来产生。
- Suitable if the light transport is complex on the light’s side
- Difficult to implement & quite slow

光线追踪中,如果想要找到一条带有大量能量的路径,对于上图场景不太容易。因为光源往上面角落打,整个场景被间接光照亮。因为路径追踪第一个 bounce 是 diffuse,导致摄像机的光很难打到能量集中的区域去(左上角白色区域)。也就是说,当光线传播在光源这边容易算的时候,双向路径追踪效果才会好。

Metropolis Light Transport (MLT)
- A Markov Chain Monte Carlo (MCMC) application
- Jumping from the current sample to the next with some PDF
- Very good at locally exploring difficult light paths
- Key idea
- Locally perturb an existing path to get a new path