一:Whitted-style 光线追踪#
流程:
- 从相机发出主光线
- 命中物体之后根据材质种类继续发射:
- 反射光线
- 折射光线
- 阴影光线
- 最后通过递归计算所有光线对像素的贡献值
主要用于模拟直接光照与理想情况下的反射、折射现象,对于真实世界的漫反射、全局光照、颜色渗透等并不擅长,因为它的路径通常是确定的:遇到镜面就反射,遇到玻璃就折射。
二:Monte Carlo 路径追踪#
流程:
- 从相机发出射线
- 命中物体后根据 BRDF 随机选择次级射线发射方向
- 漫反射方向
- 高光方向
- 透射方向
- ……
- 经过多次采样之后求得平均值
因为光线传播方向的多样性,路径追踪可以很好地模拟诸如漫反射间接光、软阴影、全局光照等现象。
三:简单对比#
| 项目 | 递归式光线追踪 | 路径追踪 |
|---|---|---|
| 代表算法 | Whitted Ray Tracing | Monte Carlo Path Tracing |
| 光线传播 | 反射、折射递归分支 | 随机采样一条或多条路径 |
| 主要效果 | 镜面、玻璃、阴影 | 全局光照、软阴影、间接光 |
| 漫反射间接光 | 通常不自然支持 | 天然支持 |
| 结果 | 比较干净 | 有噪声,需要采样收敛 |
| 成本 | 相对低 | 通常更高 |
| 物理真实性 | 有限 | 更接近物理真实 |