“ 感知技术 · 感触CG · 感受艺术 · 感悟心灵 ”
中国很有影响力影视特效CG动画领域自媒体
Lumen的目标是在主机上为不透明和半透明材质以及体积雾实现全局光照和反射效果,并且保证能在1080p分辨率下分别以8毫秒和4毫秒的帧预算实现30和60FPS。引擎会使用一系列预先配置好的"弹性(Scalability)"设置,以便调整Lumen的目标帧率。超高(Epic)级别对应的帧率为30fps。高(High)级别对应的目标帧率为60fps。
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)可移除个别距离场实例,不在距离场场景中渲染它们。不太重要的实例对全局光照或反射没有重大影响,移除它们有助于节约细节追踪性能。
Tip
就细节追踪而言,与软件光线追踪相比,硬件光线追踪可以相似的性能开销提供更高的质量。
高(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反射获得一些性能提升。此功能只能为特定场景加速,这类场景具有许多粗糙度在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
下面的参考表包含对各项设置的说明,以及各可扩展性级别使用的设置状态。
全文完
来了,来了!文本生成式AI功能正式加入Photoshop
萌即正义!日本90后大神靠三渲二萌妹火出圈,幕后模型也很萌
AI不是砸饭碗的而是帮助干活的!盘点10个建筑表现AI实用工具!
美女大神手把手教超写实复古场景全过程!
震撼!一周时间大神利用UE5+AI+Google Maps API开发一个写实城市穿越程序
热门跟贴