ADPF Unreal Engine 插件

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

您可以从GitHub下载插件

如何使用ADPF虚幻引擎插件

  1. 下载插件

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

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

  4. 重新启动虚幻编辑器

  5. 构建和烘焙游戏

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

插件控制台配置

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

CVar

有效值

默认值

描述

r.AndroidPerformanceEnabled

0, 1

1

启用/禁用Android性能插件。该插件使用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.优先考虑游戏内图形设置。