UE5中的Chaos场景查询和刚体引擎

物理工程部门主管Michael Lentine

目标

虚幻引擎5.0中,我们的内部物理引擎Chaos作为默认物理引擎发布。这有助于我们在Epic和整个游戏行业内部发展物理技术,构建网络物理系统、大型世界坐标系统、载具系统和破坏系统等高度稳定的系统。我们还打算为之前所有的刚体物理用例提供完整的支持,同时在性能上与虚幻引擎4持平。

在UE5发布之前,我们做了大量测试。我们也始终致力于改善性能,将它当作最优先的任务。在某些用例中,我们已经取得了显著的进步,但在另一些用例中(如使用了双精度浮点数的大型世界坐标),为了弥补一些功能额外产生的成本,我们还有许多工作尚待完成。本文将概述UE5.0中物理系统的现状,并谈及在迈向5.1版本的过程中,当前还需要完成哪些工作。为了了解我们的进步,我们比较了两个测试构建版本,分别是支持LWC(大型世界坐标)前的、使用UE4的默认物理引擎PhysX 3的早期虚幻引擎5.0;以及使用了Chaos(蓝色配置)的虚幻引擎5.0。

以下是我们三个不同的测试示例。首先是滚筒测试,我们将512个动态模拟的凸包对象放入了旋转的凸包对象中。第二个是布娃娃测试,我们将64个布娃娃放到了平坦的凸包平面上。第三个是复杂地形测试,我们在世界中放置了10万个静态对象,然后在高度场地形上放置了512个动态凸包对象。在每场测试中,我们都会测量解算器的性能,以及对世界做出的各类场景查询的性能。

请注意,本文仅涉及刚体和场景查询。UE5.0中还包括与布料动力学、毛发动力学和流体动力学相关的物理系统;你可以在UE5.0文档中找到关于这些系统的更多信息。

场景查询

场景查询涉及扫描、重叠和光线投射。

扫描

滚筒测试(平均时间:青色配置:11.64ms;蓝色配置:4.42ms)
Chaos Scene Queries Unreal Engine 5 Scene Queries Tumbler Test

布娃娃测试(平均时间:青色配置:0.05ms;蓝色配置:0.07ms)
Chaos Scene Queries Unreal Engine 5 Overlap Ragdoll Test

地形测试(平均时间:青色配置:0.55ms;蓝色配置:0.13ms)
Chaos Scene Queries Unreal Engine 5 Sweeps Landscape Test

重叠

滚筒测试(平均时间:青色配置:2.09ms;蓝色配置:2.58ms)
Chaos Scene Queries Unreal Engine 5 Overlap Tumbler Test

布娃娃测试(平均时间:青色配置:0.03ms;蓝色配置:0.04ms)
Chaos Scene Queries Unreal Engine 5 Overlap Ragdoll Test

地形测试(平均时间:青色配置:1.76ms;蓝色配置:2.76ms)
Chaos Scene Queries Unreal Engine 5 Overlap Landscape Test

光线投射

滚筒测试(平均时间:青色配置:0.21ms;蓝色配置:0.18ms)
Chaos Scene Queries Unreal Engine 5 Raycast Tumbler Test

布娃娃测试(平均时间:青色配置:0.04ms;蓝色配置:0.06ms)
Chaos Scene Queries Unreal Engine 5 Raycast Ragdoll Test

地形测试(平均时间:青色配置:0.34ms;蓝色配置:0.67ms)
Chaos Scene Queries Unreal Engine 5 Raycast Landscape Test

刚体模拟

性能

滚筒测试(平均时间:青色配置:3.17ms;蓝色配置:4.76ms)
Chaos Scene Queries Unreal Engine 5 Rigid Body Tumbler Test

布娃娃测试(平均时间:青色配置:5.30ms;蓝色配置:8.18ms)
Chaos Scene Queries Unreal Engine 5 Rigid Body Ragdoll Test

地形测试(平均时间:青色配置:10.82ms;蓝色配置:5.34ms)
Chaos Scene Queries Unreal Engine 5 Rigid Body Landscape Test

稳定性

虽然,为了弥补各种功能所带来的额外运算开销,我们在性能方面还有很多工作要完成,但同时,我们不仅从这些功能中获得了益处,还取得了一些与稳定性相关的改进。

UE5版本:
Chaos Scene Queries Unreal Engine 5 Chaos

UE4版本:
Chaos Scene Queries Unreal Engine 5 Physx
 

工作展望

我们主要关注的改进领域是光线投射、大型地形复杂场景下的重叠,以及高度动态化场景下的凸包刚体模拟。对于光线投射和重叠,大部分成本可归结于加速结构的质量和双精度带来的额外开销。下面是一例地形测试的对比,它在青色配置(0.22ms)和蓝色配置(0.15ms)中使用了不带加速结构搜索的直接追踪。

Chaos Scene Queries Unreal Engine 5 Future Work

虽然这意味着结果会因结构质量的不同而发生很大变化,但我们目前的重点是加快对加速结构的使用,对于分布图的外观暂不加理会。对于高度动态化的凸包场景,搜索加速结构和以缓存一致的格式采集数据是两处最大的开销。在数据传输方面,我们正在重点关注对数据传输速度的优化。此外,虽然与这两件事相比,优化算法的多线程版本是一项优先级较低的工作,我们并没有在这方面花太多时间,而且,这两个解算器在多线程平台上规模相似,但我们还是计划在5.1版本中将重点放在改善并行化上。

    立即获取虚幻引擎!

    获取全球最开放、最先进的创作工具。
    虚幻引擎包罗万象,并提供完整的源代码访问权限,开箱即用,诚意十足。