以下为个人学习笔记整理,涉及坐标内容统一用右手坐标系,课程官网。
# Advanced Topics in Rendering——Light Transport
# Advanced Light Transport
- 无偏的光线传播(Unbiased light transport methods)
- Bidirectional path tracing(BDPT)
- Metropolis light transport(MLT)
- 有偏的光线传播(Biased light transport methods)
- Photon mapping
- Vertex connection and merging(VCM)
- 实时辐射度光线传播(Instant radiosity)「VPL /many light methods」
# Bidirectional path tracing(BDPT)
从光源和摄像机分别射出一条路径。称之为子路径。
把子路径的端点相连,就得到了一条完整的路径。
# 双向路径追踪的特点
- 如果光的传输是复杂的,大部分场景都是经过间接光照所照亮。「BDPT」效果会比较好。
- 本身是无偏的。
- 「BDPT」实现起来非常的困难,且效率较低。
# Metropolis Light Transport(MLT)
# Markov Chain Monte Carlo(MCMC)
根据当前的样本生成一个和它靠近的下一个样本,用于预测和估计。
假设时间足够的情况下,「MCMC」可以根据给定的「PDF」生成满足该「PDF」的样本。
# 「MCMC」用途
在局部光照非常难确定的情况下,用于推断该区域附近的光线路径。假设已知光线 ,推断光线 。
# 「MLT」特点:
- 适合用来处理光线复杂,且难以计算光路的情况。可以根据一条光路推断其他光路。
- 本身是无偏的。
- 难以估计收敛速度(难以判断图片需要经过多长时间的渲染后可以不再有噪声)。
- 估计本身不是均匀分布的,每个像素的收敛速度也不一致。通常会产生「脏」图片
- 通常不用于渲染。
# Photon mapping
一个有偏的渲染方法,在处理 Specular-Diffuse-Specular(SDS)和 caustics
# 其中一种实现:
- 光子跟踪(photon tracing):从光源发出光子,并经过各种弹射,最终留在漫反射物体表面。
光子收集(photon collection):从摄像机出发,并经过各种弹射,最终留在漫反射物体表面。
计算局部密度估计(local density estimation):光子越多的地方,就越亮。
- 对于任意的着色点,取其周围最近的 N 个光子。
- 计算 N 个光子所占用的面积。然后就可以求得密度。
- 计算方法有很多,例如求包围盒(AABB)
对于 N 的取值不同,会得到不同的结果,N 越小,噪点越多;N 越大,图片越模糊。
# 为什么「Photon mapping」是有偏的❓
局部密度的计算存在偏差,正常情况下应该计算某个像素点内的光子数,但是「Photon mapping」计算的是 N 个光子所占用的面积比。这两个值是不对等的。
# Vertex connection and merging(VCM)
是「BDPT」和「Photon mapping」的组合
类似「BDPT」计算双向的光路,如果两个光路的端点在同一个平面上,那么就视作该光路是不连通的。
但是为了避免浪费,把在统一平面的光路端点视作「Photon mapping」的光子,用于计算光子的局部密度,并把两者的结果相结合。
# Instant Radiosity(IR)
核心思想:已经被照亮的面,都可以视作光源,并照亮其他物体。
- 从光源打出很多光线,经过弹射最终落在物体表面。
- 停住的地方可以认为是一个小的光源 Virtual Point Light(VPL)。
- 渲染每个观察点的时候,用其他所有的光源的直接光照去计算。
# 「IR」的特点
- 渲染速度较快,处理漫反射场景效果较好。
- 「VPL」处在阴影点时,会有峰值(Spikes),使得画面效果不太好。
- 光线强度和距离平方成反比,如果两个物体距离太近,会导致「VPL」的亮度过大。
- 「IR」对于光滑的物体,处理结果不太好。
# 关键字
- 无偏(Unbiased):无论使用多少个样本,得出的期望值永远是正确的(真实的定积分的值)。
- 有偏(Biased):期望值不等于真实的定积分的值。在样本足够多的情况下,期望会像真实值收敛。有偏的结果往往会让图片更加模糊。
- 聚焦线(caustics):由于光线的聚焦所产生的光照强度不一的图案。