光线追踪(Ray Tracing) ,俗称光追,相信大家都略有耳闻,在还没了解之前,我只知道在玩游戏时,”开光追=提高游戏画面质量=游戏画面更加真实“,甚至是以假乱真的程度,同时开光追还会掉帧。

那些原本略显生硬的游戏场景,一旦开启光追,阳光穿过树叶的斑驳光影会随角度移动,玻璃幕墙会清晰倒映出远处的建筑,甚至连角色盔甲上的反光都带着真实世界的细腻质感,仿佛瞬间从 “游戏画面” 跳进了 “电影场景”

什么是光线追踪?

实际上,光线追踪是一种渲染技术,它基于模拟光线在场景中的传播行为来生成逼真的图像。

其核心原理是从虚拟摄像机(观察点)发射出大量光线,这些光线会与场景中的物体(如球体、平面等几何物体)发生相交测试计算出光线与物体的交点、交点处的光照效果(包括反射、折射、阴影等),然后根据这些信息确定最终像素的颜色,通过追踪众多光线来构建出整个图像。

这一技术最早在 16 世纪由艺术家阿尔布雷希特・丢勒提出,当时被用作透视绘画的方法。在计算机图形学领域,几十年来它一直被用于电影和动画制作,以打造震撼的视觉效果。

由于光线追踪模拟的是光线的真实物理传播规律,所以能自然地呈现出诸多逼真效果:比如反射中能清晰看到其他物体、光线穿过透明材质时的真实折射,以及带有自然的柔和阴影。

光栅化则需要通过各种近似方法和技术来模拟这些效果,所以有时会显得不够真实。

从历史来看,光线追踪的计算量过大,无法用于电子游戏等实时应用场景,因此光栅化成为了主流标准。

直到2018年,这一年也被认为是光线追踪元年,GDC 2018上光线追踪才正式进入大众的视野。

在这一年…

  • 微软宣布DirectX Ray Tracing(DRX)的问世;

  • NVIDIA、ILMxLAB、UE4联合发布了基于实时光线追踪的具有电影级视觉效果的《星球大战》短片

  • NVIDIA发布了RTX Tehnology Demo以及Project Sol Cinematic Demo Part 1;

  • EA SEED团队带来了PICA实时光线追踪Demo;

  • Remedy的Northlight引擎带来了Ray Tracing in North Light Demo;

  • Futuremark团队发布了DirectX Raytracing Tech Demo。

光栅渲染和光线追踪渲染有什么不同?

光栅化是过去几十年游戏渲染的主流技术,与实时光线追踪在渲染逻辑、性能、真实感上存在本质差异。

光栅化的工作流程是:获取场景中的 3D 模型,将其投射到屏幕的 2D 平面上;判断屏幕上哪些像素被每个物体覆盖,再根据物体的纹理、光源位置、简化的光照模型等因素,计算这些像素的颜色。

可以把它想象成 “在画布上逐个绘制物体来完成一幅画” 的过程。

其实目前游戏里即使用这光栅渲染,得到的画面效果也不比光线追踪差,因为这是渲染时用到的成像方法的不同,决定画面是否逼真的,最关键还是要看渲染方程,要看每个像素点的颜色值是怎么算出来的。

但是光线追踪自然有它的优势,因为它就是模仿真实光线的传播行为,因此给很多光影效果的模拟提供巨大的方便,在物体阴影上,在镜面反射的内容表现上,光线追踪都能以很自然地方式去模拟,代码实现上也是非常自然便利的(意思是在计算的时候,很多要用到的数据随用随有)。

而要用光栅渲染去实现同样的阴影效果,碍于成像方法的不同,该计算过程会变得非常复杂,难以实现(缺少要计算的直接数据,要绕路子或者费劲去算出需要的数据)。

所以这两种渲染方法最显著的差异就在于成像方法不同所带来的计算便利性,这种便利性能够极大地影响代码上和计算上能够模拟真实光照的程度。

二者的核心区别:

光线追踪的优势

作为一种基于物理的渲染方式,光线追踪所实现的效果是十分接近真实场景的,因为其很好的模拟了光在传播过程中发生的反射、折射、散射等现象,使得物体的材质属性得到很好的表现,但是由于模拟光线传播过程需要使用递归算法,渲染速度远不如光栅化。

近些年,在工业界和学术界的共同努力下,光线追踪逐渐实时化,通过对光线算法的不断近似和简化,实时光线追踪得以实现,并在3D游戏中得到了不错的应用。

光线追踪的核心应用

光线追踪在游戏中最核心的应用体现在 “阴影、环境光遮蔽、反射、全局光照” 四大效果,虽然实现逻辑各有侧重,但都是基于 “光线与物体的交互” 这一核心原理来实现的。

1. 光线追踪阴影(Ray-Traced Shadows)

传统光栅化阴影(如阴影贴图)易出现 “锯齿、漏影、分辨率不足” 等问题,光线追踪阴影通过 “逐像素向光源投射光线” 实现自然的软阴影。

✅实现逻辑:从物体表面的每个点向 “光源” 投射多条 “阴影光线”(而非单条)

统计 “能到达光源的光线数量”——若所有光线被阻挡,该点为 “全阴影”;若部分光线到达光源,该点为 “半阴影”(软阴影边缘);

✅优势:支持 “任意形状的光源”(如球形光源、矩形光源),自动生成与光源尺寸匹配的软阴影,且无 “阴影贴图分辨率限制” 导致的锯齿

✅代表作品:《古墓丽影:暗影》采用光线追踪阴影提升场景真实感。

2. 光线追踪环境光遮蔽(Ray-Traced Ambient Occlusion, RTAO)

环境光遮蔽(AO)模拟物体缝隙和凹陷处的自然暗部效果,克服了屏幕空间AO仅能处理屏幕内物体的限制。

✅实现逻辑:从物体表面点向 “半球形空间”(模拟环境光来自各个方向)投射大量次级光线;

统计 “被其他物体阻挡的光线比例”—— 阻挡比例越高,该点的 AO 效果越强(颜色越暗);

✅性能优化:由于需要投射大量光线,UE 采用 “时间累积(Temporal Accumulation)” 技术 —— 每帧仅投射少量随机方向的光线,将多帧结果叠加,既降低单帧计算量,又保证效果平滑;

✅优势:可捕捉 “屏幕外物体对当前点的遮蔽”(如室内墙角被远处家具遮挡的暗部),避免 SSAO 的 “边缘截断” 问题。

3. 光线追踪反射(Ray-Traced Reflections)

传统屏幕空间反射(SSR-Screen Space Reflection)仅能反射 “屏幕内可见的物体”,而光线追踪反射则支持实现全场景、无限距离的精准反射,特别是光滑表面的反射效果远超屏幕空间反射。

✅实现逻辑:从摄像机投射的主光线与物体表面相交后,根据物体表面 “粗糙度” 计算 “反射方向”;

沿反射方向投射 “反射光线”,该光线与其他物体的交点颜色即为 “反射颜色”;

✅表面粗糙度处理:光滑表面(如镜面、金属):反射光线方向唯一,仅需 1 条反射光线;

粗糙表面(如磨砂玻璃、混凝土):反射光线呈 “锥形分布”,需投射大量光线覆盖锥形区域,计算量呈指数级增长;

✅性能优化:设置 “粗糙度阈值”——当表面粗糙度超过阈值时,自动切换为光栅化的屏幕空间反射,避免粗糙表面反射消耗过多性能;

✅代表作品:《战地风云 5》通过光线追踪反射提升水面、金属装甲的真实感。

4. 光线追踪全局光照(Ray-Traced Global Illumination, RT GI)

全局光照(GI)模拟 “光线在场景中多次反弹” 的效果(如阳光照射到红色墙壁后,反弹的光线使周围物体略带红色调),传统光栅化需通过 “光照烘焙” 预计算静态 GI,无法支持动态场景,光线追踪 GI 则实现 “动态实时 GI”。

✅实现逻辑:

主光线与物体表面相交后,投射 “间接光照光线”,模拟光线的第一次反弹;

间接光照光线与其他物体相交后,再次反射,模拟第二次反弹,以此类推(通常最多计算 2-3 次反弹,否则计算量过大);

每次反弹时,光线会 “吸收物体表面颜色” 并 “损失能量”(距离越远,能量越弱),最终叠加到物体表面颜色中;

✅技术挑战:光线追踪 GI 是 “计算量最大” 的光线追踪效果,单次反弹的计算量相当于多次反射或阴影,因此目前仅在少数高端游戏中部分应用。

✅代表作品:《地铁:逃离》通过光线追踪 GI 打造室内真实光影反弹。

感谢阅读、点赞和充电🔋

更多游戏资讯请关注:电玩帮游戏资讯专区

电玩帮图文攻略 www.vgover.com