移动设备性能指南

本页面的内容:

概述

以下是有关如何设置内容以便最优化移动平台性能 的注意事项与建议。这些事项按照最严重到最不严重的顺序排列。

性能层级

UE4 支持在移动设备上使用各种光照功能。使用这些功能将影响系统性能,可能会导致游戏在速度较慢的移动设备上运行效果差。如果可混合和匹配大多数 UE4 移动光照功能,则将这些功能归类到以下等级会比较有用。在构建移动游戏时,您应根据游戏所需的图形质量和支持的设备类型来决定使用哪些功能。可在 iOS 开发 and Android Development 下的设备兼容性页面中,查看 Epic 已测试过的设备以及我们认为最合适的层级的详细说明。

LDR(低动态范围)

低动态范围(LDR)模式是 UE4 支持的最高性能层级,推荐用于不需要光照或后处理功能的游戏。若要使用此模式,您必须在 项目设置编辑器 的“渲染”部分中位启用项目的 Mobile HDR 设置。

Advantages

Limitations

Recommendations

基本光照

在此层级中,可利用静态光照和完全粗糙材料创建具有有趣光照的场景,同时使性能最大化,以便在更大范围移动设备上使用。

Advantages

Limitations

Recommendations

全 HDR 光照

在此层级中,您可利用 UE4 中可用于移动端的大多数 HDR 光照功能,以及某些后处理功能。使用这些功能需求用较多的内存性能来换取高品质光照功能。

Advantages

Recommendations

全 HDR 光照,每个像素都带有来自太阳的光线

在此层级中,您可利用 UE4 中可用于移动端的所有 HDR 光照功能。此层级与“全 HDR 光照”层级相同,具有相同的优势与推荐,除了单方向光线的渲染质量更高。

Advantages

Recommendations

着色器复杂度查看模式

您可在 PC ES2 预览器中,使用着色器复杂度查看模式来查看材料成本。若要使用该模式, 只需在 PC ES2 预览器的控制台中输入 viewmode shadercomplexity。以 SM5 着色器复杂度为例, 绿色代表性能良好,亮红色表示内存消耗非常大,白色或粉色表示内存消耗极大。以下是来自 移动端案例展示的一些示例:

1.png 2.png 3.png

柱子材料在这里相当耗内存,半透明体积贴片也很耗内存。在此场景中,我让他们把透明贴片移除,因为他们太消耗内存了。

此处的柱子很耗内存,因为他们使用了全部 5 种纹理查询,还加了许多层叠。否则,这些场景只够使用 30fps。

此处的树使得像素极其消耗内存。如果玩家离得更近一些,或者用该材料覆盖了他的屏幕,则会极大地消耗内存。

移动内容缩放系数

移动内容缩放系数是一种缩放项目分辨率的方式,以便最佳匹配用于查看项目的移动设备的屏幕分辨率。 您可创建并存储多个设备的配置文件,方法是在项目配置文件夹中新建一个名为 DefaultDeviceProfiles.INI 的 .INI 文件。 在这个文件内,您可通过输入以下命令来指定对项目分辨率所作的更改。

 r.MobileContentScaleFactor = 

在下图中,您可看到使用上述命令对移动内容缩放系数进行设置的示例。

T_MCF_INI_File.png

上图截取自 UE4 Tappy Chicken 项目,显示了在各种移动设备上游戏时 Tappy Chicken 项目分辨率的变化。 文件上部用于处理 iOS 设备的分辨率缩放,文件下部用于处理安卓设备的分辨率缩放。 请务必注意每个 r.MobileContentScaleFactor 的后面都带有一个数字。 这个数字用在命令后面,用于决定应将项目分辨率放大还是缩小。

iOS 的移动内容缩放系数

在对 iOS 设备使用移动内容缩放系数时,在 r.MobileContentScaleFactor 后面输入以下数字将产生以下结果。 请注意:任何非 0 缩放系数的实际分辨率都将被修正,以匹配屏幕纵横比,并固定至原始分辨率。

iOS 缩放系数直接与苹果的缩放系数系统相关。

r.MobileContentScaleFactor 0.0:将使用设备的原始分辨率。

r.MobileContentScaleFactor 1.0:在 Retina 设备上采用非 Retina 分辨率。

r.MobileContentScaleFactor 2.0:在 iPhone 5S 和 iPad Air 等设备上采用全原始分辨率。

r.MobileContentScaleFactor 3.0:iPhone 6+ 的全原始分辨率。

安卓的移动内容缩放系数

在对安卓设备使用移动内容缩放系数时,在 r.MobileContentScaleFactor 后面输入以下数字将产生以下结果。 请注意:任何非 0 缩放系数的实际分辨率都将被修正,以匹配屏幕纵横比,并固定至原始分辨率。

r.MobileContentScaleFactor 0.0:将使用设备的原始分辨率。

r.MobileContentScaleFactor 1.0:将尝试为您提供横向 1280 x 720 分辨率,纵向 720 x 1280 分辨率。

r.MobileContentScaleFactor 2.0:将尝试为您提供横向 2560 x 1440 分辨率,纵向 1440 x 2560 分辨率。