GAMES101-现代计算机图形学学习笔记(18)
Lecture 18: Advanced Topics in Rendering
原课程视频链接以及官网
b站视频链接: link.
课程官网链接: link.
Advanced Light Transport
主要分为 无偏光照传播(Unbiased light transport)方法、 有偏光照传播(Biased light transport)方法、实时辐射度Instant radiosity (VPL / many light methods)
这里的有偏和无偏的出现,是因为在求解光线追踪的过程中采用了蒙特卡洛积分去近似求解。
无偏光照传播方法指的就是在多次重复采样下得到的结果接近所估计的真值,有偏光照传播方法指的是在多次重复采样下存在一定系统误差。
Unbiased light transport
Bidirectional Path Tracing (BDPT)
定义
双向光线追踪(BDPT)是指分别从视点打出射线形成一条子路径,再从光源打出一条射线形成一条子路径,然后连接这两条子路径以形成一条正确的光线追踪路径,并进行计算着色:
好处
BDPT 适用于光源间接照射的情况。从图中可以看到,左边台灯光源直接照射到朝向天花板的区域,场景中大量物体都是通过间接光照明的。
- 对于光线追踪来说(左图),假设视线看到场景中的其他非光源物体(红色区域),这些物体随后会通过漫反射来寻找下一条子路径,但是由于场景光源照射区域较小,可能会反射多次才能打到光源。
- 对于 BDPT 来说(右图),先从视线打到场景中的其他非光源物体(红色区域),再从光源打出一条子路径,然后直接连接这两条子路径(红色箭头)就可以寻找到一条正确的光线追踪路径。
所以同 samples 下, BDPT 在该场景表现的效果比光线追踪好
坏处
较难实现,且渲染较慢
Metropolis Light Transport (MLT)
定义
它是应用了 Markov Chain Monte Carlo (MCMC) 来求解光线追踪的方法。
Markov Chain 是一种采样方法,相比之前求解蒙特卡洛积分的随机采样过程,它能在当前状态下采样出邻近相似状态的结果,也就是说当寻找到一条光线追踪路径后,通过 Markov Chain Monte Carlo (MCMC) 可以采样到它周围的光线路径。同时,当给定时间足够,Markov Chain 还能够生成符合任意函数的概率密度函数的样本,也就是说通过 Markov Chain 我们可以获得满足任意形状的函数的采样样本,所以此时求解光线追踪的结果也是最优的。
好处
它能处理较为复杂、困难的场景:
坏处
由于引入了 Markov Chain Monte Carlo (MCMC),使得每次都能采样光线追踪路径周围的路径,所以它是一种局部的方法,所以很难估计它的收敛速度,并且,不能保证每个像素都能同时收敛,因此会产生一些“脏”的渲染结果:
Biased light transport
Photon Mapping
定义
它是一种有偏,分两步进行的方法。
它擅长于处理光线路径经过 Specular-Diffuse-Specular (SDS,三种材质) 的这种情况,能产生 Caustics 现象。
(Caustics 的定义:光线聚焦所产生的图案)
步骤
第一步,从光源出发,打出光线(光子)并进行反射,直至光子接触到漫反射表面上,记录光子的位置;
第二步,从相机出发,打出一系列子路径并进行反射,直至碰撞到漫反射表面。
计算每个着色点邻近 N 个光子的局部密度: △ N / △ A \triangle \mathrm{N} / \triangle \mathrm{A} △N/△A, △ N \triangle \mathrm{N} △N 表示邻近光子数量, △ A \triangle \mathrm{A} △A 表示这些光子围成的面积。光子分布越多的区域就应该越亮
为什么这种方法是有偏的?
因为在计算局部密