ADPF 虚幻引擎插件

Android 动态性能框架 (ADPF) 的 虚幻引擎 插件提供稳定的性能并防止热节流。

您可以从 GitHub 下载该插件

如何使用 ADPF 虚幻引擎插件

  1. 下载插件

  2. 将插件复制到项目插件文件夹

  3. 在虚幻编辑器中启用 ADPF 虚幻引擎插件

  4. 重新启动虚幻编辑器

  5. 构建并 烘焙 游戏

Enable ADPF Unreal Engine plugin.
图 1. 启用 ADPF 虚幻引擎插件。

插件控制台配置

该插件具有以下 虚幻引擎控制台变量,可让您在运行时更改插件选项

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 虚幻引擎插件的工作原理

该插件每帧调用 Monitor() 函数,并检查自上次热检查以来经过的时间。如果至少过去一秒钟,插件会读取当前温度并确定是否需要更改图形质量(例如,如果游戏受到热节流或接近热节流阈值),并相应地调整设置。

该插件还会向性能提示会话 API 报告目标和实际帧持续时间,并根据需要提升 CPU 频率或调整 CPU 调度。

ADPF Unreal Engine plugin flowchart.
图 2. ADPF 虚幻引擎插件流程图。

如何根据热状态更改图形质量

该插件根据热 API 的反馈,使用 虚幻引擎可伸缩性 调整图形质量。虚幻引擎可伸缩性有四个级别,从 3(最高质量)到 0(最低质量)。每个级别都映射到分辨率缩放、视图距离、抗锯齿、后期处理和其他功能。

Unreal Engine Scalability.
图 3. 虚幻引擎可伸缩性。

ADPF 有两种方法来确定设备的热状态:热余量热状态。热余量提供更精确的值;因此,插件默认使用热余量并禁用热状态 API。

虚幻引擎可伸缩性根据以下热值变化

热余量

  • < 0.75:质量级别 3
  • 0.75 至 0.85:质量级别 2
  • 0.85 至 0.95:质量级别 1
  • > 0.95:质量级别 0

热状态

  • 无:质量级别 3
  • 轻微:质量级别 2
  • 中度:质量级别 1
  • 严重和危急:质量级别 0

如需了解更多信息,请参阅热 API

性能提示 API

该插件有两种性能提示会话 — 一种用于游戏线程,另一种用于渲染线程(渲染和 RHI 线程)。这两种性能提示用于报告每帧的实际和目标持续时间。当实际持续时间与目标持续时间不同时,系统会调整 CPU 频率并做出更好的调度选择。

有关详细信息,请参阅性能提示 API

最佳实践

该插件通过其基本实现可防止热节流并提供持续的目标 FPS。若要立即获得结果,请将 ADPF 应用于默认的虚幻引擎可伸缩性级别。

但是,由于每个游戏都不同,因此请针对分辨率缩放、视图距离、抗锯齿、后期处理、阴影、纹理和效果等每个参数微调可伸缩性级别,以允许 ADPF 为您的游戏充分提供动态性能。

以下是使用 ADPF 虚幻插件获得最佳效果的三个关键步骤

  • 建立基准:在使用 ADPF 之前,彻底分析您游戏的性能。这些数据将作为您实现插件后的宝贵比较基准。
    ADPF Unreal Engine best pracices.
    图 4. 建立基准。
  • 利用虚幻可伸缩性:尝试使用虚幻可伸缩性,即使它只提供适度的性能提升。这将有助于在不费太多力气的情况下提供性能优势。
    ADPF Unreal Engine best pracices.
    图 5. 利用虚幻可伸缩性。
  • 优先考虑游戏内图形设置:优化您的游戏内图形质量级别。这些设置是专门为您的游戏内容量身定制的,可确保更流畅的帧率和更好的热管理。
    ADPF Unreal Engine best pracices.
    图 6. 优先考虑游戏内图形设置。