Language:
Page Info
Tags:
Engine Version:
Share

粒子系统的核心优化概念

识别GPU问题、渲染线程问题和游戏线程问题

UE4的几项功能让特效美术师能够对性能问题进行排查。首先,确定您的效果在何处产生瓶颈,这对于优化正确的问题,从而保持视觉完整性/质量大有帮助。

在关卡中玩游戏时监视问题的一种方法是打开STAT UNIT调试覆盖。

  1. 启动游戏。

  2. ` 键并在控制台中输入“stat unit”。

    statunit.png

“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设置为自动的循环效果)

Tags