光线追踪性能指南(三)

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


光线查询是由使用硬件光线追踪的功能(例如光线追踪阴影、Lumen全局光照和Lumen反射)生成的。GPU使用能够遍历加速结构以找到击中点的专用硬件来解决这些光线查询。

GPU分析日志输出中的光线遍历成本示例如下:

光线追踪性能指南

光线遍历的成本与光照功能发布的光线查询数量成正比,同时也与场景中的网格体重叠数量成正比。

当网格重叠时,光线必须分别遍历所有网格体以找到最近的击中点,因为光线追踪会用具有两个层次的加速结构。网格体重叠可能会导致场景构建中的光线遍历非常缓慢,因为需要同时穿过不同的资产(这也称为模型冲击)。

光线追踪性能指南

为了使场景兼容硬件光线追踪,网格体重叠 必须 保持在最低限度。

此外还有一些其他的原因导致光线遍历成本太高,第一个就是天空盒,因为天空盒与整个场景重叠,并且每一道光线都必须遍历天空盒(如果没有击中天空盒)。另一个就是草地,因为草地的边界非常大,具有非常复杂的几何形状。

在这些情况下(或任何其他类似的情况下),可以选择让这些光线追踪的路线跳过这些网格体。在世界中选择Actor,然后使用其细节面板来禁用 光线追踪中可见(Visible in Ray Tracing) 。


光线遍历调试可视化模式

以下调试模式当前仅在主机平台上可用。

有两种模式可以用于调查遍历成本过高的问题:性能和遍历。

要启用这些模式,需要使用以下命令:

show raytracingdebug 1
r.RayTracing.DebugVisualizationMode [mode]

"[Mode]"将替换为你需要查看的可视化方法:Performance 或 Traversal Node 。例如,可以是 r.RayTracing.DebugVisualizationMode Traversal Node 。


性能调试可视化

性能(Performance) 调试可视化显示TraceRay调用的热图,从而显示BVH遍历和材质评估时间的综合(执行"最近击中/错失"着色器)。

光线追踪性能指南

光线追踪性能调试可视化。

可视化的颜色从紫色(无成本)变成黄色(高成本)。可以使用 r.RayTracing.DebugTiming Scale 来调整热图的规模,以满足项目的需求。

此模式在寻找有问题的object和材质以进行光线追踪时最有用。如果光线追踪成本太高,那么建议检查一下该模式下显示的内容看起来是否合理。

例如,主视图中可见的object在调试模式中也会出现,不会出现不必要的object,以及这些object的材质成本符合预期。如果没有发现明显的问题,那么很有可能速度变慢并不是由单个object导致的,而是各种不同的小问题共同导致的。


遍历调试可视化

遍历(Traversal) 调试可视化仅显示BVH遍历的热图——即需要多少次迭代才能找到击中点。对于不使用材质的Lumen通道或使用简单击中着色/内联的相似通道,成本最高的通常是BVH遍历。

热图的颜色从绿色(少量迭代)变成红色(大量迭代)。直接来说,发生的迭代越多,遍历速度越慢。对于典型场景,迭代次数在50到100之间。对于复杂场景(包括多个重叠的多边形网格体),将发生大约100到150次迭代。

任何超过建议数量的迭代都可能存在问题,例如,如果一个破裂的网格体发生1000多次迭代,就不正常了。遍历三角形调试可视化可以用于检查单个网格体三角形。

对于遍历调试,有三种模式可供选择:

遍历调试模式 命令名称 说明 可视化视图
节点相交计数(Node Intersection Count) Traversal Node 用于调查场景遍历成本。例如,当TLAS中有很多实例重叠时。
这些是BLAS的平台专用内部呈现中的BVH节点。
三角形相交计数(Triangle Intersection Count)) Traversal Triangle 显示仅包含三角形的节点(叶节点)的击中。
总相交计数(Total Intersection Count) Traversal All BVH节点击中和三角形节点击中的总和。

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


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

最新文章