


目录:
一.光线追踪开启条件和设置(Ray Tracing Requirements and Setup)
二.光线追踪环境光遮蔽(Ray Traced Ambient Occlusion (RTAO))
三.光线追踪反射(Ray Traced Reflections)
四. 光线追踪阴影(Ray Traced Shadows)
五.光线追踪全局照明(Ray Traced Global Illumination (RTGI))
六. 光线追踪折射(Ray Traced Refractions)
七. 优化光线追踪反射(Optimizing Ray Traced Reflections)
内容:
PS:部分内容来自ben神介绍光线追踪视频https://www.youtube.com/watch?v=uQG0SWv5lbw,其他补充内容来本人自主总结阐述;
硬件条件:
显卡必须在1060以上
电脑系统在win10 1809以上
引擎内设置:引擎版本必须在4.26以上
打开项目设置,找到直接搜RHI,Default RHI 设置为DirectX 12

在项目设置下的全局光照设置下开启光线追踪,设置完后重启项目。

在Hardware Ray Tracing下记得勾选支持硬件光线追踪。

1.可将鼠标放置在我们的项目名称那,我们可以看见最后一行显示我们使用的Direct 12抽象层

2.显示模式下我们可以看见新增了两个功能

如果有以上这些特征就表明光线追踪是已开启的并且正常运行的。
后续想对光线追踪进行设置,需要在后期盒子里找到细节面板。在UE5中,我们是使用Lumen和光线追踪相互配合使用。

环境光遮蔽是用于测量周围物体遮挡或阻挡了多少环境光,环境光遮蔽是通过在远离该点的半球投射来计算任何给定点,如果没有光线击中任何点,那就没有遮蔽。

在介绍RaytracingAO 之前,我们先来了解一下什么是SSAO(屏幕空间环境光遮蔽)。
SSAO(屏幕空间环境光遮蔽)是一种实时渲染技术,通过分析当前屏幕上的深度和法线信息,模拟物体缝隙、角落等区域因周围几何体遮挡环境光而形成的细微阴影,从而增强场景的立体感和真实感。它仅依赖屏幕内可见数据,计算高效,但可能因忽略屏幕外物体导致局部细节不精准。简单说:让画面中“夹缝处更暗”,提升从而增强场景的立体感和真实感。它仅依赖屏幕内可见数据,计算高效,但可能因忽略屏幕外物体导致局部细节不精准。简单说:让画面中“夹缝处更暗”,提升逼真度的轻量级阴影技术。

SSAO会产生一些伪阴影,在引擎中是这样子的。我们会发现它产生阴影的范围是有限的,比如车座底下是没有捕捉到投影范围的。
我们可以在后期盒子中找到相关设置来调节伪阴影程度和范围。

在该设置下我们可以启用RayTracingAO。

开启RaytracingAO后就不仅是使用深度缓冲区来渲染环境光遮蔽,实际上是在追踪进入场景的光线,光线被允许弹来弹去,击中屏幕上我实际看不见的地方。
这个效果比前者好多了,我们可结合之前的选项调整AO的强度和半径。

Samples Per Pixel(逐像素采样)亦是一个重要的选项。

如果每个像素只发出1条光线,怎样才能创造一个半球,实现这一点的方法是使用一种技术Temporal Accumulation(时间积累),其所做的是每一帧它在半球内向不同方向发射光线,所有这些帧都会随着时间推移积累或叠加,用来产生我们需要的效果。

但是当我们在场景中移动的话,会感觉到场景中有明显的颗粒感。
如果我们增加Samples Per Pixel(逐像素采样)的值就可以解决这个问题,这个效果会变得更加平滑,同时也会造成性能损耗,所以我们得在高质量和高性能之间找到一个很好的平衡。
Reflection Capture(反射探针) 是放置在场景中的一种工具,用于捕捉周围环境的视觉信息(如颜色、光照),生成环境贴图,使物体表面能动态反射附近场景的细节,增强画面真实感。简单说:“环境镜子”,让物体表面反射周围景象的小型探测器。
但是该技术有很多弱点,
首先第一项就是探针只能从捕获到的特定位置进行准确定位,它仅显示距离最近的探针捕获到的反射。

即使它们在不同的地方,反射却看起来像在同一个地方
其次是放置这些探针需要花费很多时间,我们得确保每个探针的准确位置。
最后就是这些探针是静态的,仅记录放置时的环境状态,动态物体(如移动角色、车辆)不会实时更新到反射中,导致反射内容“过时”。

在UE5中的此路径下可以找到所需要的探针
1. 屏幕空间反射(SSR)
原理:仅利用当前屏幕内的深度和颜色信息,向反射方向发射光线,检测与屏幕内可见物体的交点,生成反射效果。
优点:实时性高,计算量小,适合动态场景(如水面、金属表面)。
无需预计算,兼容移动端和低配硬件。
缺点:无法反射屏幕外的物体(如玩家背后的物体),导致反射突然消失或断裂。
依赖屏幕数据质量:分辨率不足时反射模糊,深度信息错误可能引发噪点或伪影。
2. 屏幕空间光线追踪(SSRT)
原理:在屏幕空间内模拟简化的光线追踪,不仅处理反射,还可能计算折射、阴影等,但依然依赖当前屏幕数据。
优点:比传统光线追踪更高效,能实现近似光追的复杂光效(如焦散、动态软阴影)
部分解决SSR的屏幕外内容缺失问题(通过插值或推测)。
缺点:仍受限于屏幕数据,无法完全避免SSR的缺陷(如屏幕外反射丢失)。
计算量高于SSR,对硬件有一定要求。

在UE5中可找到相关设置
我们也可自由选择反射方式,如果要选择SSRT就选择lumen

接下来让我们细讲SSRT的每个设置
Max Roughness 的作用是提供了一个临界值,超过该值将不再发生光线追踪。如果我们发现反射的物体上出现黑斑可以调整此值来消除。
Max Bounces 选项控制光线在场景中反射的最大追踪次数。Max Bounces决定光线能‘拐弯’多少次——拐得越多,画面越真实,但电脑越累。
Sample Per Pixel 我们增加该值就相当于增加每一帧所发出的光线数。
Shadows 我们可以选择反射的是硬阴影和软阴影,但通常情况下我们最好禁用,因为这很损耗性能。



(以下截图的细节面板针对的对象是聚光灯)
Shadow Bias 可以处理这种难看的阴影条纹效果。但是该值越大,peter pan效果就越明显。

当我启用RayTracedShadows后,peter pan效果消失了,当我们增加source radius(源半径)的值,会发现所投射的阴影会变得柔和。

我们得到不错的效果,但同时帧率也受到了一定的限制。所以该功能慎用,我们得在消除peter pan效果和需要软阴影的情况下开启它,一般情况下不建议开启。

Affect RayTracing Reflections 表示阴影是否被光线追踪到反射中,这个选项通常也不建议开启,因为它真的很耗性能。
Affect RayTracing Global illumination 表示是否在全局光照中显示阴影,也是与上方同样的情况,不建议开启如果不是特别需要。

在灯光细节面板中同样也可以找到逐像素采样,也是慎用。
RTGI(光线追踪全局照明) 是通过 光线追踪技术 模拟光线在场景中多次反弹的间接光照效果,提升真实感的核心技术。

通常情况下,全局光照是通过光线烘焙完成的。我们可以在Build菜单下找到"Build Lighting Only"来烘焙全局光照,它使用CPU来离线做光线追踪全局光照,然后将其存储在光照贴图中,并将其应用于物体表面。

在后期盒子的细节面板中我们可以找到相关设置


开启RTGI后,即使是一丝丝光线也能间接照亮黑暗的房间,光线会根据物体材质表面的颜色反射对应颜色的光,这个效果真的很赞。


1.我们可以切换RTGI的类型,Brute Force是一种更精确的方法,但性能消耗得很多
此时我们可以不用Brute Force,改为Final Gather。

2.在控制台输入r.RayTracing.Globallllumination.ScreenPercentage,该值越小(比如50,25),性能就能得到提升,但同时得保证画面质量。

3.对天光的逐像素采样进行削减来换取性能。

4.在控制台输入r.Raytracing.Globallllumination.NextEventEstimationSamples,它的默认值是2,我们可以改成1。

做了以上操作后我们会发现画面质量明显下降了很多,但是不慌,我们可以在后期盒子里对RTGI进行调节,适当增加逐像素采样的数值来平滑噪点,同时这会损耗一些性能,但是这是以比较便宜的方式换取性能。


在此处可开启光线追踪折射。

我们会发现,它也有类似的设置。这与光线追踪环境光遮蔽设置雷同,在这里不过多赘述。需要注意的是shadows最好通常情况下禁用。Refraction的勾选决定该物体是否发生折射。


启用该命令,就会发现帧率明显上升了。

由于我在这里设置了最大粗糙度为0.2,所以任何粗糙度大于0.2的对象都不会进行光线追踪反射,如果我们的粗糙度积累,它高于0.2的可能性是相当高的,这意味着它应该在该值之后停止光线追踪。通过强制所有材质粗糙度为 1,检查 Max Roughness=0.2 是否有效阻止光线追踪反射的计算,确认性能优化策略生效。
这意味着从源像素出来的反射光线,其距离不能超过5米,从而限制对光线进行测试的物体数量来查看光线是否击中,因此我们可能会得到一些性能优化。
这个操作以一半的分辨率渲染我们的反射,该操作可以使帧率明显上升
启用后(设置为 1),光线追踪反射会与 传统光栅化渲染技术(如屏幕空间反射(SSR)、平面反射) 结合使用,形成分层渲染策略。
该操作的作用是任何无法追踪反射的地方,将用立方体贴图反射来填补这一空白区域。它让我减少了反弹的次数,但不会留下很大的,需要填充这些反射的黑暗区域。