适用于 Unreal Engine 的 Android Dynamic Performance Framework) (ADPF) 插件可提供稳定的性能并阻止温控降频。
您可以从 GitHub 下载该插件。
如何使用 ADPF Unreal Engine 插件
下载插件
将插件复制到项目插件文件夹中
在 Unreal 编辑器中启用 ADPF Unreal Engine 插件
重新启动 Unreal 编辑器
构建和烹饪游戏
![启用 ADPF Unreal Engine 插件。](https://developer.android.google.cn/static/images/games/engines/unreal/unreal-adpf.png?authuser=9&hl=zh-cn)
插件控制台配置
该插件具有以下 Unreal Engine 控制台变量,让您能够在运行时更改插件选项:
CVar |
有效值 |
默认值 |
说明 |
---|---|---|---|
r.AndroidPerformanceEnabled |
0、1 |
1 |
启用/停用 Android Performance 插件。该插件使用 Android 自适应 API 根据设备的热状态调整游戏设置,并根据需要调整 CPU。 0:关闭(已停用) 1:开启(已启用) |
r.AndroidPerformanceHintEnabled |
0、1 |
1 |
启用/停用性能提示管理器。在受支持的 Android 设备上启用此设置后,即可实现最佳的线程提升。 0:关闭(已停用) 1:开启(已启用) |
r.AndroidPerformanceChangeQualities |
0、1、2 |
1 |
选择热状态如何调整游戏的保真度水平。 0:系统不会调整任何设置 1:根据热余量调整设置 2:根据热监听器调整设置 |
ADPF Unreal Engine 插件的工作原理
该插件会在每一帧中调用 Monitor()
函数,并检查自上次热检查以来经过的时间。如果至少经过了 1 秒钟,插件会读取当前温度并确定是否需要更改图形质量(例如,游戏是否受到热限制或接近温控阈值),并相应地调整设置。
该插件还会向性能提示会话 API 报告目标帧时长和实际帧时长,并根据需要提高 CPU 频率或调整 CPU 调度。
![ADPF Unreal Engine 插件流程图。](https://developer.android.google.cn/static/images/games/engines/unreal/ureal-adpf-flowchart.png?authuser=9&hl=zh-cn)
如何根据热状态更改图形质量
该插件会根据来自 Thermal API 的反馈,使用 Unreal Engine 可扩展性调整图形质量。Unreal Engine 可伸缩性有四个级别,范围为 3(最高质量)到 0(最低质量)。每个级别都会映射到分辨率比例、视图距离、抗锯齿、后期处理和其他功能。
![Unreal Engine 可伸缩性。](https://developer.android.google.cn/static/images/games/engines/unreal/unreal-adpf-scalability.png?authuser=9&hl=zh-cn)
ADPF 可通过两种方式确定设备热状态:热余量和热状态。 热余量可提供更精确的值;因此,插件默认使用热余量并停用热状态 API。
Unreal Engine 可伸缩性基于以下热值而变化:
热余量
- < 0.75:质量级别 3
- 0.75 至 0.85:质量级别 2
- 0.85 至 0.95:质量级别 1
- > 0.95:质量级别 0
热状态
- 无:质量级别 3
- 浅色:质量级别 2
- 中等:质量级别 1
- 严重和严重:质量级别 0
如需了解详情,请参阅 Thermal API。
性能提示 API
该插件具有两种类型的性能提示会话,一种用于游戏线程,另一种用于渲染线程(渲染线程和 RHI 线程)。这两种性能提示用于报告每一帧的实际时长和目标时长。系统会调整 CPU 频率,并在实际时长与目标时长不同时做出更好的调度选择。
如需了解详情,请参阅 Performance Hint API。
最佳实践
该插件可以阻止温控调频,并通过其基本实现提供持续的目标 FPS。如需立即获得结果,请采用默认 Unreal Engine 可伸缩性级别来应用 ADPF。
但是,由于每款游戏都不同,因此请微调每个参数(如分辨率比例、视图距离、抗锯齿、后处理、阴影、纹理和效果)的可伸缩性级别,以使 ADPF 充分实现游戏的动态性能。
下面介绍了使用 ADPF Unreal 插件获得最佳结果的三个关键步骤:
- 建立基准:在使用 ADPF 之前,全面分析游戏的性能。实现该插件后,这些数据可作为比较有价值的基准。
图 4.建立基准。 - 利用 Unreal 可扩缩性:尝试 Unreal 可扩缩性,即使它只能获得适度的性能提升。这将有助于在不花费太多精力的情况下提升性能。
图 5.利用 Unreal 可伸缩性。 - 优先考虑游戏内图形设置:优化游戏内图形质量级别。这些设置是专门针对游戏内容量身定制的,可确保更流畅的帧速率和更完善的热管理。
图 6.优先考虑游戏内图形设置。