UE5 Lumen效果设置总结
Edit - Project Settings - Rendering - Global Illumination - Lumen Edit - Project Settings - Rendering - Reflection - Lumen Edit - Project Settings - Rendering - Software Ray Tracing - Generate Mesh Di
一、开启Lumen:
Edit - Project Settings - Rendering - Global Illumination - Lumen
Edit - Project Settings - Rendering - Reflection - Lumen
Edit - Project Settings - Rendering - Software Ray Tracing - Generate Mesh Distance Field 勾选
场景中 Post Processing Volumn - Global Illumination - Lumen,
Post Processing Volumn - Reflaction - Method - Lumen
二、开启光线追踪:
软件光追:(建议默认)
Edit - Project Settings - Rendering - Lumen - Software Ray Tracing Mode :
Detail/Global(高品质 慢 / 低品质全局 快)
硬件光追:(设置后重新编译工程,编译时间长,消耗性能)
Edit - Project Settings - Rendering - Hardware Ray Tracing - Support Hardware Ray Tracing 勾选
Edit - Project Settings - Rendering - Lumen - Use Hardware Ray Tracing when available 勾选
三、虚拟化阴影:
Edit - Project Settings - Rendering - Shadows - Shadow Map Method - Virtual Shadow Map
提高阴影质量(性能消耗)
四、虚拟化纹理 (同Nanite一起使用)
Edit - Project Settings - Rendering - Virture Textures - Enable virtual texture support 勾选
注意,网格Mesh中面厚度>0.1/0.2m 以上 避免漏光
——————————————————————————————————————————
五、官方新增一篇关于Lumen设置的文章:
原文链接:Lumen 性能指南 (qq.com)
Lumen的目标是,在主机上为不透明和半透明材质以及体积雾实现全局光照和反射效果,并且保证能在1080p分辨率下分别以 8毫秒 和 4毫秒 的帧预算实现 30 和 60 FPS。引擎会使用一系列预先配置好的"弹性(Scalability)"设置,以便调整Lumen的目标帧率。超高(Epic) 级别对应的帧率为 30 fps。高(High) 级别对应的目标帧率为 60 fps。
Lumen依赖时间上采样和虚幻引擎5的时间超级分辨率(TSR)来提供4k输出。Lumen和其他功能使用较低的内部分辨率(1080p),从而赋予TSR最佳的最终图像质量。否则,若以4K原生分辨率下渲染这些功能,将需要降低质量设置,这样才能实现30或60 fps的速率。
可扩展性设置
在关卡编辑器中设置(Settings)> 引擎可扩展性设置(Engine Scalability Settings) 视口下找到可扩展性设置。
在游戏中,使用GameUserSettings和图形设置菜单来控制可扩展性设置(相关示例请参阅Lyra项目)。Lumen质量通过 全局光照(Global Illumination) 和 反射(Reflections) 质量组进行设置:
-
电影级(Cinematic) 可扩展性级别的目标是电影渲染队列。
-
超高(Epic) 可扩展性级别的目标为30 fps主机预算。
-
高(High) 可扩展性级别的目标为60 fps主机预算。
-
低(Low) 和 中(Medium) 可扩展性级别会禁用Lumen功能。
默认情况下,虚幻引擎在主机上的性能目标是30 fps。
如需以60 fps为目标,在主机设备描述中将 全局光照 和 反射 质量组设置为 高(High)。此描述位于 [你的项目名称]\Platforms[主机]\Config\
文件夹中。
例如[你的项目名称]\Platforms\PS5\Config\PS5DeviceProfiles.ini
。
以60 fps为目标的PlayStation 5设备描述如下所示:
[PS5 DeviceProfile]
;将Lumen GI和反射质量设置为"高",目标为60 fps
+CVars=sg.GlobalIlluminationQuality=2
+CVars=sg.ReflectionQuality=2
超Lumen范围缩减
全局光照 和 反射 质量组位于 \Engine\Config\BaseScalability.ini
。
这些设置会试图使间接光照在不同质量级别下保持相似的外观。这样做的好处是,不需要重做每个平台的光照,同时还可以缩减Lumen的开销。
中质量级别
-
对于大规模环境光遮蔽, 距离场环境光遮蔽(Distance Field Ambient Occlusion) 会取代 Lumen全局光照(Lumen Global Illumination) 。
-
对于小规模环境光遮蔽,启用了 屏幕空间环境光遮蔽(Screen Space Ambient Occlusion) 。
低质量级别
-
仅使用无阴影的天空光照。
-
降低天空光照强度
r.SkylightIntensityMultiplier=0.7
以拉近与 中(Medium) 质量级别的匹配程度,因为不存在天空光照阴影形式。
软件光线追踪
软件光线跟踪是Lumen中最快速的跟踪方法,我们建议将其用于60 fps游戏。超高(Epic) 可扩展性级别会启用 细节追踪(Detail Traces) 。这些追踪可带来更高的质量,但会产生庞大的性能开销。追踪的对象是单个网格体距离场。这会使性能容易受到实例数和重叠实例数的影响。对多层相交网格体过量使用工具模型时,细节追踪将产生巨大开销。禁用 影响距离场光照(Affects Distance Field Lighting) 可移除个别距离场实例,不在距离场场景中渲染它们。不太重要的实例对全局光照或反射没有重大影响,移除它们有助于节约细节追踪性能。
就细节追踪而言,与软件光线追踪相比,硬件光线追踪可以相似的性能开销提供更高的质量。
高(High) 可扩展性级别会禁用细节追踪,并且Lumen会追踪单一合并的全局距离场,而非单个网格体距离场。追踪全局距离场会使追踪不受实例的数量及其与其他实例的重叠的影响。它还非常适合用于60 fps游戏和具有大量重叠实例的内容。
硬件光线追踪
硬件光线追踪可为Lumen提供更高的质量。我们推荐将它用于目标为30 fps的主机游戏。硬件光线追踪要求逐帧重建 顶层加速结构(Top Level Acceleration Structure) (TLAS)。此开销与你需要包含在该加速结构中的实例数成正比。在次世代主机上实现30 fps目标通常意味着剔除后 光线追踪场景 中的实例数量少于100,000。在Microsoft Windows上,实例数量可能会有所差异。
使用 Stat SceneRendering
检查光线追踪场景中可见的实例数。查看 光线追踪激活实例(Ray tracing active instances) 统计数据。
光线追踪场景剔除设置是最强大的场景内光线追踪实例数量控制工具。通过更改 [你的项目名称]\Config\
文件夹中的 DefaultEngine.ini 配置文件来启用剔除功能。
[SystemSettings]
r.RayTracing.Culling=3
r.RayTracing.Culling.Radius=15000
r.RayTracing.Culling.Angle=0.5
Tip
在关卡中的Actor上禁用 在光线追踪中可见(Visible In Ray Tracing) ,可从光线追踪场景中移除单个实例。
如需详细了解硬件光线追踪性能,包括性能计数器和调试视图,请参阅光线追踪性能指南。
远场(Far Field) 在不影响全局光照和反射距离的情况下提供激进式剔除。超出光线追踪场景半径之后,所有光线都使用远场追踪以较低开销扩展全局光照和反射范围。Lumen技术细节提供了如何设置远场的信息。
将增加光线追踪场景剔除与远场配合使用,可帮助你优化和缩减Lumen硬件光线追踪性能。
硬件光线追踪性能取决于场景中网格体的重叠程度。天空盒等与整个场景重叠的大型网格体会造成性能问题。应为这些网格体禁用 在光线追踪中可见(Visible In Ray Tracing) 。你还可以节约草地网格体上以及具有多层相交组合网格体的工具模型网格体上的追踪开销。
如需在使用硬件光线追踪时保持场景的高性能,你必须将重叠网格体的数量保持在合理的水平。
反射的击中照射(Hit Lighting for Reflections) 可带来更高的反射质量。它在每个击中点对材质和光照求值,但对游戏而言开销较大。我们不建议在游戏中使用它,除非材质微不足道,并且使用 Ray Tracing Quality Switch 节点进行了优化。
r.Lumen.HardwareRayTracing.MaxIterations
来限制BVH遍历迭代的次数,并提前终止漫长而又昂贵的光线。终止的光线被视为完全遮挡,因产生零辐射而导致过度遮挡。此设置适用于微调性能,以及避免场景中具有大量重叠几何体的部分导致性能问题。
提示
Lumen反射 的开销可能会因屏幕上有多少平滑或低粗糙度材质而有所差异。这些材质需要专用的反射光线。默认情况下,所有粗糙度低于0.4的像素都将追踪反射光线。粗糙度高于此值的像素将根据Lumen全局光照获得自由反射近似值。
Lumen反射粗糙度阈值
r.Lumen.Reflection.MaxRoughnessToTrace
可以控制粗糙度阈值。它会设置应在何时追踪专用反射光线。粗糙度高于该阈值的像素会退却到使用粗糙镜面反射近似值。植被具有独立的粗糙度阈值。材质使用 双面植被(Two Sided Foliage) 或 次表面(Subsurface) 着色模型的像素都会被视为植被。`r.Lumen.Reflections.MaxRoughnessToTraceForFoliage`可以控制植被粗糙度。
植被上的反射往往难以看到。将植被最大粗糙度阈值设置为0,可以在不影响质量的情况下实现一些显著的性能提升。
用屏幕空间反射取代Lumen反射
用 屏幕空间反射 (SSR)取代Lumen反射,可以更大幅度地缩减反射开销。设置 r.Lumen.Reflections.Allow=0
可执行此操作。例如,你可以将以下内容添加到 XSXDeviceProfiles.ini
文件,从而在Xbox Series S上节约1 ms。
[XSX_Lockhart DeviceProfile]
;使用SSR代替Lumen反射以提高性能
+CVars=r.Lumen.Reflections.Allow=0
下例演示了即使在禁用了Lumen反射的情况下Lumen全局光照如何提供粗糙镜面反射。
通过复用为漫反射全局光照追踪的光线,可以让Lumen反射获得一些性能提升。此功能只能为特定场景加速,这类场景具有许多粗糙度在0.2-0.4范围的像素。
r.Lumen.Reflections.RadianceCache=1
来启用此功能。
表面缓存图块更新
Lumen场景光照(Lumen Scene Lighting) 会更新表面缓存的直接和间接光照。性能取决于每帧更新的表面缓存的比例。
r.LumenScene.DirectLighting.MaxLightsPerTile,
r.LumenScene.Radiosity.UpdateFactor
分别调整直接光照和间接光照的每帧更新速度。
"Lumen场景光照(Lumen Scene Lighting)"在每个表面缓存图块上只选择一小部分最重要的光源,这使其性能不太容易受到场景中光源总数的影响。每个图块上的光源的数量都可以使用 r.LumenScene.DirectLighting.MaxLightsPerTile
控制。
分析Lumen
Lumen分成三个通道:
-
Lumen场景光照(Lumen Scene Lighting) ,用于对表面缓存光照求值。
-
Lumen屏幕探头采集(Lumen Screen Probe Gather) ,用于对漫反射全局光照和粗糙反射以及半透明全局光照求值。
-
Lumen反射(Lumen Reflections),用于对光滑表面上的专用反射光线求值。
Stat GPU
将显示GPU通道计时,包括单个Lumen通道。
如需详细了解性能明细,请使用 ProfileGPU
命令。你还可以使用第三方分析工具,如RenderDoc。
Lumen在主机上使用异步计算。这些计时将为零,直到你使用控制台命令 r.Lumen.AsyncCompute 0
禁用它。如需更详细地了解异步计算,请参阅下一小节。
异步计算
Lumen在主机上使用 异步计算 。这便于GPU将Lumen的工作与非Nanite几何体通道和直接光照通道重叠。此外,Lumen还可与 Lumen屏幕探头采集(Lumen Screen Probe Gather) 和 Lumen反射(Lumen Reflections) 通道重叠。
异步计算针对常见工作负载进行了预配置,但在极少数情况下,采用非默认设置可能速度更快。例如,如果给定场景在计算直接光照或反射上花费的时间并不多,则禁用异步计算(r.Lumen.AsyncCompute 0
)可能速度更快。如果直接光照工作量少,值得尝试将 Lumen场景光照(Lumen Scene Lighting) 作为异步计算通道运行。你可以通过以下设置来执行此操作:
r.LumenScene.Lighting.AsyncCompute=1
r.Lumen.DiffuseIndirect.AsyncCompute=0
r.Lumen.Reflections.AsyncCompute=0
异步计算会使Lumen与其他渲染通道重叠。这会增加分析的难度,因为 Stat GPU
或 ProfileGPU
无法正确跟踪计时。在分析和比较完整渲染帧时间或使用外部GPU分析工具时,请禁用异步计算。
可扩展性参考
默认引擎可扩展性和每个平台的设备描述包含单独的Lumen设置。这些设置适合作为重要和最新渲染器性能可扩展性设置的参考。此外,它们也适合作为自定义可扩展性设置的起始点。我们建议使用默认的可扩展性级别来实现30 fps或60 fps,同时也是为了让不同的级别具有一致的外观。你可以在以下任一文件中查看这些可扩展性设置:
[Engine Root]\Engine\Config\BaseScalability.ini[Engine Root]\Platforms[Console Name]\Base[ConsoleName]DeviceProfile.ini
下面的参考表包含对各项设置的说明,以及各可扩展性级别使用的设置状态。
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)