Choose your operating system:
Windows
macOS
Linux
识别GPU问题、渲染线程问题和游戏线程问题
UE4的几项功能让特效美术师能够对性能问题进行排查。首先,确定您的效果在何处产生瓶颈,这对于优化正确的问题,从而保持视觉完整性/质量大有帮助。
在关卡中玩游戏时监视问题的一种方法是打开STAT UNIT调试覆盖。
启动游戏。
按 ` 键并在控制台中输入"stat unit"。
"stat unit"命令显示当前帧在游戏线程上花费的时间、渲染线程花费的时间和GPU花费的时间。可以监视stat unit更新的不同时间,以查看关卡中存在性能问题的区域。
关注不同的线程时间。如果您的目标帧率是30fps,所有线程应该保持在33.3ms以下。
如果任何线程超过了33ms,并且您的粒子可能是潜在的原因,您可以使用"STAT PARTICLES"命令来测量不同线程上的粒子时间。
"STAT PARTICLES"列出与游戏线程和渲染线程相关的多个统计信息。注意绘制调用(Draw Calls)(渲染线程)和标记时间(Tick Time)(游戏线程)。
针对游戏线程相关问题
一旦您确定了您有一个游戏线程问题,使用"STAT PARTICLES"命令来验证您的发现。
该stat提供相当多的信息,所以请仔细阅读链接页面上的说明,以帮助您确定成本开销最高的地方。关注粒子标记时间(Particle Tick Time)和粒子数量(Particle Counts)。
重要的是要记住,粒子系统是构成这种效果的组件(发射器/模块)的总和。系统中的发射器和模块越独特,场景中的系统越多,游戏线程的成本开销就越高。
一旦您确定了哪些游戏线程系统是违规的,就可以采取几种方法。
减少所用系统上的粒子发射计数。
减少场景中粒子系统的数量。
缩短某些发射器的生命周期(计算粒子计算的时间量)。
检查成本开销高昂的计算,例如碰撞等,以确保您使用的设置是最佳的,减少碰撞或粒子/网格体碰撞的数量。
如有必要,删除成本开销高昂的计算,例如碰撞、动态参数等。
如果可能的话,使用静态网格体效果替换游戏线程计算的粒子效果。
在粒子系统上设置固定边界,这样就不会在每一帧中计算固定边界。
增加LodDistanceCheckTime,以便减少检查LOD的次数(对于LODMethod设置为自动的循环效果)