光线追踪(Ray Tracing)是一种模拟真实光线物理行为的渲染技术。简单来说,它会从摄像机视角出发,向场景中的每个像素发射虚拟光线,然后计算这些光线与物体的交点、反射、折射、阴影等效果。传统的光栅化渲染则是将3D物体投影到2D屏幕上,通过预先计算好的阴影贴图、环境光遮蔽等技巧来模拟光照,效果不够真实。
光追之所以吃显卡,是因为它需要进行海量的计算。例如,每个像素可能发射多条光线,每条光线在场景中可能反弹多次,每次反弹都要进行复杂的几何求交运算。在4K分辨率下,一帧画面有超过800万个像素,每个像素发射4条光线、反弹4次,就需要进行1.28亿次求交计算,这还不包括后续的着色计算。
NVIDIA的RTX显卡集成了专用的RT Core(光线追踪核心),专门用于加速光线与三角形网格的求交运算,相比纯CUDA核心效率高很多。即便如此,光追对性能的消耗依然巨大,所以《赛博朋克2077》这类游戏开启光追后帧率下降一半是正常现象。为了平衡画质和帧率,通常建议开启DLSS(深度学习超级采样)来降低渲染分辨率并利用AI重建画面,可以有效提升帧率。