Ray Tracing(光线追踪)与 Ray Casting(光线投射)
-
Ray Casting(光线投射)
-
定义:一种从观察点(如摄像机)向场景中每个像素投射单条光线,找到最近可见物体的渲染技术。
-
核心任务:确定像素对应的物体表面颜色,通常仅计算直接光照(如材质颜色或简单阴影)。
-
复杂度:时间复杂度为O(N⋅R),其中 N 是光线数(像素数),R 是场景物体数。
-
-
Ray Tracing(光线追踪)
-
定义:一种递归追踪光线路径的算法,模拟光线与物体的多次交互(反射、折射、散射等),以计算全局光照效果。
-
核心任务:求解光线在场景中的多次弹射路径,最终累积所有光照贡献(直接光、间接光)。
-
复杂度:时间复杂度为O(N⋅R⋅DK),其中 D 是递归深度,K 是分支因子(如每次弹射生成多条光线)。
-
特征 | Ray Casting | Ray Tracing |
---|---|---|
光线数量 | 单条主光线(无递归) | 主光线 + 多次反射/折射光线(递归) |
光照计算 | 仅直接光照(无全局效果) | 直接 + 间接光照(镜面、焦散等) |
复杂度 | 低(适合实时渲染) | 高(需高性能硬件或离线渲染) |
视觉效果 | 简单阴影、无反射/折射 | 逼真反射、折射、软阴影、全局光照 |
典型应用 | 早期3D游戏、体素渲染 | 电影特效、高端游戏、物理仿真 |
历史背景 | 1968年首次提出(如Appel算法) | 1979年由Turner Whitted完善 |
路径追踪(Path Tracing)是 Ray Tracing 的的一种实现方式 ,更适合复杂光照(如漫反射全局光照)。