调整引擎功能的级别

控制台变量和命令

有些功能可以在运行时,由游戏的控制台或者编辑器的输出日志窗口/控制台进行开关切换。 已有很多控制台变量可以用来调整引擎的渲染质量,以配合不同的平台和硬件性能(请看一下 BaseScalability.ini 文件,使用编辑器界面,使用 sg. 的控制台变量,或者 Scalability 控制台命令)。

几个对分析最有用的变量:

控制台变量 描述
r.SetRes 改变屏幕,或窗口的分辨率。
r.VSync 开启/关闭垂直同步(可能依赖于是否原生全屏)。
r.ScreenPercentage 用于减小内部实际渲染分辨率,画面会在重新放大。
r.AllowOcclusionQueries 用于禁用遮挡(可以让场景运行的更慢)。
r.TiledDeferredShading 能够关闭基于 Tile 的延迟光照技术(GPU粒子的光影则没有退回方法)。
r.TiledDeferredShading.MinimumCount 能够调整使用多少灯光应用在基于 Tile 的延迟光照技术(视觉上并没有差异但性能会有不同)。
Pause 暂停游戏或者 Matinee(分析时更加稳定,但禁用了 Update/Tick)。
Slomo 能够对游戏进行加速或者减速播放。
r.VisualizeOccludedPrimitives 显示被裁剪掉的物件的外盒框。
StartFPSChart StopFPSChart 请看下文。
r.SeparateTranslucency 这是一个用于修复半透明情况下景深的问题的功能,如果不需要的时候可以把它关闭,并有其他影响(查阅 SceneColor)。
r.Tonemapper.GrainQuantization 用于关闭在 Tonemapper 中添加的噪点来避免 Color Banding,由于 8bit 量化和较小的质量改进在输出为 10:10:10 并不必须。
r.SceneColorFormat 能够选用不同的 SceneColor 格式(默认是 64bit 的最佳质量,并支持屏幕空间子表面散射)。
FX.AllowGPUSorting 禁用粒子排序(在大量粒子的使用可以妥协使用)。
FX.FreezeParticleSimulation 禁止粒子的更新。
r.SSR.MaxRoughness 调整屏幕空间反射(SSR)粗造度的最大值,并覆盖后处理中的该设置。请查阅 Show Flag VisualizeSSR。

命令行选项

有些功能可以在命令行中进行关闭,比如 UE4.exe -NoSound

几个对分析比较有用的开关是:

命令行选项 描述
-NoSound 禁用声音和音乐系统。

-NoTextureStreaming

关闭贴图 steaming(对于隔离问题时很有帮助)。
-NoVerifyGC 否则需要预期在 Release 版本中每 30 秒会遇到的性能波动。
-NoVSync 能够更快的渲染但会导致画面撕裂,尤其是在高帧数下。
-Streaming 在使用 StartFPSChart/StopFPSChart 很有用,能够从一个非 windows 设备上来获取数据并用于进一步检测(假设我们是实时的 cook 数据)。

编译选项

请不要在 Debug 版本下进行性能的分析和测量。为了方便起见,我们建议针对 Development 版本做性能分析。在 Shipping 下的性能实际上会因为开发特性进一步的移除而更快。 测试当然最好是在 Shipping 中完成,但需要一些代码功能被打开才行。(比如控制台,比如 stat unit 功能)。