光线追踪性能指南(二)

上一篇:光线追踪性能指南(一)

静态网格体组件上的世界位置偏移

世界位置偏移(WPO)对于有效地支持光线追踪功能来说是一个挑战,因为它需要动态地重新构建BLAS,以及为每个实例动态地分配各自的内存。

默认情况下,虚幻引擎在构建光线追踪场景时会忽略WPO,这会产生自相交瑕疵。静态网格体组件可以选择将WPO与具有 评估世界位置偏移(Evaluate World Position Offset) 的光线追踪配合使用。但是,除非另行指定,否则这种方法仅适用于摄像机周围 50 米以内的距离。

使用以下参数来启用和调整支持的WPO与摄像机之间的距离。

  • r.RayTracing.Geometry.StaticMeshes.WPO 1
  • r.RayTracing.Geometry.StaticMeshes.WPO.CullingRadius 5000.0f

WPO所引起的动态BLAS构建将显示在GPU分析器的 Scene > RayTracingGeometry > RayTracingDynamicGeometryUpdate 下。

实例化组件(例如实例化的静态网格体组件)默认不支持WPO,因为其成本非常高。具有 评估世界位置偏移(Evaluate World Position Offset) 开关的组件默认情况下不启用此开关。打开磁开关可能会严重增加内存压力并延长渲染时间,因为此功能会使用单独的BLAS来转换单个网格体中的每个实例。

顶层加速结构构建

顶层加速结构在每一帧上重建,并在渲染线程、RHI线程和GPU上产生成本。这些成本基本上与进入加速结构的网格体实例数量成正比。

通过统计命令 Stat SceneRendering,可以在 光线追踪实例(Ray tracing instances) 下找到要在每一帧上重建的实例数量。

光线追踪性能指南(二)

要衡量渲染线程的成本,请使用命令 Stat SceneRendering 并查找 GatherRayTracingWorldInstances。

光线追踪性能指南(二)

要衡量RHI线程的成本,可以使用每个RHI的统计数据,例如 Stat D3D12RayTracing。

光线追踪性能指南(二)

可以使用统计命令 Stat GPU 来衡量GPU成本。查看 RayTracingScene 和 RayTracing 的条目以了解其成本。

光线追踪性能指南(二)

为了在下一代主机上达到每秒30帧的目标,场景在剔除光线追踪场景后通常具有100,000个或更少的实例。在Windows上,实例数可能会明显不同。

剔除

启用了光线追踪的场景要求摄像机视图之外的object出现在场景中,尤其是对于高度反光的表面。这会增加渲染场景的成本。剔除不可见或需要帮助进行性能优化的object。

由于光线追踪需要保持object可见(即使不在视图中),因此控制台变量 r.RayTracing.Culling 提供了一些选项来帮助优化当前视图之外可见或超过该距离的object。

提供了以下选项:

1. 按距离和方位角剔除摄像机后面的object(默认额光线追踪剔除方法)。

2. 按距离和方位角剔除摄像机前面和后面的object。

3. 按距离或方位角剔除摄像机前面和后面的object。

每个剔除选项都逐步剔除光线追踪场景中的更多object。

在设置成选项3时,由于TLAS在每个帧上重建,因此可以根据网格体实例与摄像机的距离或角度来剔除网格体实例。

此外,在使用以下控制台命令时,可以在命令中配置光线追踪剔除选项所使用的 半径(Radius) 和 角度(Angle) 。

  • r.RayTracing.Culling.Radius :设置摄像机周围的距离,超过此距离的object将会被剔除。默认半径为10000(100米)。

r.Raytracing.Culling.Angle :剔除投射角度小于5度的网格体。默认值为1。

对于开放的世界项目,例如城市示例,剔除 半径(Radius) 会增加到15000(150米),而剔除 角度(Angle) 会减少到0.5(2.5度),因为需要考虑到较大的区域中具有大量反光表面,因此需要使较远距离上的object可见。

剔除将会导致光线追踪场景覆盖范围变小,最好与远场配合使用,以提供远距离几何体的踪迹。

所标记的 光线追踪组ID(Ray Tracing Group Id) 大于0的网格体组件可以使用 r.RayTracing.Culling.UserGroupIds 1 将其作为聚合来剔除掉。如果你的场景是使用大量截然不同的部件构建而成,但你希望将其作为单个object来剔除,那么此方法可能很有用。

光线追踪性能指南(二)

光线追踪组ID可以在关卡中所选的Actor上找到。


本文转自:UE4学习 UE5学习,转载此文目的在于传递更多信息,版权归原作者所有。如不支持转载,请联系小编demi@eetrend.com删除。

最新文章