粒子系统的核心优化概念

识别故障区域和问题内容,以优化效果。

Windows
MacOS
Linux

识别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
Select Skin
Light
Dark

Welcome to the new Unreal Engine 4 Documentation site!

We're working on lots of new features including a feedback system so you can tell us how we are doing. It's not quite ready for use in the wild yet, so head over to the Documentation Feedback forum to tell us about this page or call out any issues you are encountering in the meantime.

We'll be sure to let you know when the new system is up and running.

Post Feedback