背景
NEW STATE Mobile 是 Krafton 推出的吃鸡游戏,于 2021 年 11 月在全球发布,并在发布后的第一个月内获得了 4500 万次以上的下载量。KRAFTON, Inc. 是一个独立游戏开发工作室的集合体,他们齐聚一堂,为全球玩家创造创新且引人入胜的娱乐体验。该公司由 PUBG Studios、Bluehole Studio、Striking Distance Studios、RisingWings、Dreamotion 和 Unknown Worlds 组成,每个工作室都有其独特的专业知识。NEW STATE Mobile 是使用虚幻引擎 4 创建的,并已做出各种尝试来减少其独特游戏功能导致的高 GPU 使用率所造成的热量和电池消耗。
玩家可以在游戏中进行远程战斗,因此游戏引擎需要能够从相当远的距离渲染场景。此外,战场上存在大量植被,导致这些植被的过度绘制对降低性能产生了重大影响。这促使团队使用 Android GPU Inspector (AGI) 来帮助优化游戏的 GPU 使用率并消除瓶颈。
图 1:来自 NEW STATE Mobile 的屏幕截图
他们做了什么
NEW STATE Mobile 使用 AGI 来访问大量的 GPU 计数器信息,并相应地优化其 GPU 使用率。他们借助 AGI 提供的 GPU 活动分析数据,识别出不必要的渲染通道。在确定哪些部分占用 GPU 使用率和内存带宽后,他们继续使用 GPU 计数器和 GPU 活动来来回回检查优化进度,以查看他们是否朝着正确的方向前进。
图 2:来自 NEW STATE Mobile 的屏幕截图
以下是他们使用 AGI 了解到的有关游戏性能的一些内容
基础通道优化:深度预通道,一种提高 Early-Z 使用率的技术,有助于减少片段着色器的使用。深度预通道专门用于占用大部分屏幕空间的 LOD0,最大限度地减少了额外绘制调用可能带来的负担。此外,使用 32 位 scenecolor 格式可以提高整个渲染通道的性能。虚幻引擎 4 的默认 SceneColor 格式为 FloatRGBA,它是 64 位。如果使用 32 位格式,内存带宽可以减少一半。
影响测量:应用深度预通道后,GPU 利用率下降了 7.5%。由于深度预通道,更多片段可以进行 Early-Z。片段着色所需时间的比例下降了 2%。通过 32 位 scenecolor 格式,GPU 利用率降低了 5.3%。着色器繁忙度下降了 2%,GPU 从系统内存读取的总量下降了 330 MB/s。GPU 写入系统内存的数量减少了 78 MB/s,纹理内存读取也减少了 43 MB/s。
阴影通道优化:当网格用作阴影投射器时,使用高多边形 LOD 实际上并不会对质量产生影响。建议使用低多边形 LOD,这有助于减少三角形的数量。在虚幻引擎 4 中,可以通过控制台命令 'ForceLODShadow' 使用低多边形 LOD。
影响测量:用于阴影的三角形数量减少了约 120,000 个。AGI 中的 GPU 计数器数据显示,GPU 使用率下降了约 2%,从系统内存读取的 GPU 内存量下降了 130MB/s,从 GPU 写入系统内存的量下降了约 23MBs。
自动实例化:自动实例化可以应用于阴影通道和基础通道优化,它允许你在运行时合并相同的渲染命令,然后一次性渲染它们。这使得 NEWSTATE mobile 能够将全局照明应用于单个对象而不会损失性能。自动实例化是 UnrealEngine4 提供的基本功能。
影响测量:绘制调用减少了 500 个。它减少了约 48% 的绘制调用。GPU 利用率下降了约 3.5%。这些测量是使用 OpenGL 进行的。
图 3:显示 GPU 使用率降低的内部数据
结果
通过使用 AGI,NEW STATE Mobile 将其 GPU 使用率降低了 22%。通过深度预处理和阴影通道优化,GPU 使用率分别下降了 19% 和 3%。绘制调用以及 GPU 从系统内存读取和写入的总内存也大幅减少。
开始
通过使用 Android GPU Inspector (AGI) 识别性能问题和优化区域,了解如何分析你的游戏对 Android 设备的影响。