我的项目中用到大量的metahuman,请问如何在保证最大效果的基础上,优化帧率?

Viewed 112

目前的想法是massAI来处理人群,是ecs架构。但是这个架构主要是优化cpu的部分,我是比较担心这么走下去帧率能否最大限度提升(目前我把场景所有人群隐藏后,帧率提升了20左右),所以想考虑优化这个部分

8 Answers

性能优化,需要先明确性能热点所在。可先确定是哪个线程的问题。
先对工程做如下设置:

  • 用 Standalone 模式运行
  • 关掉Frame Rate Smoothing (Smooth Frame Rate)
  • 关掉VSync (r.VSync 0)

之后,启动游戏,在需要优化的地方,在控制台输入: Stat UnitMax ,把整个游戏画面截图发过来看看(原图,右上角信息要清楚)

另外,同上条件下,在控制台输入 stat startfile ,等待3 秒后,再输入一次 stat stopfile,然后去 Saved 下边把性能文件发过来看看

另外,你还可以build一下光照,虽然当前你的性能大头是游戏线程

最新截图看GPU是大头,你在帧率稳定时分别执行一下 stat engine、stat gpu、stat scenerendering 、stat initview,并依次截图看看

image.png
你的 2023-11-10 23:39 的新1里的图是build之后的吗? 其中显示GPU还是大头

CPU 在等。
image.png

渲染线程在等RHI(或者说GPU)
image.png

GPU开销主要集中在 occlusion cull 、 shadow depth、basepass、prepass。
image.png
image.png

  • basepass开销:讲道理就是你模型太多,面数太高导致的。
  • shadow depth:你的实时光太多。
  • prepass:半透的物体是不是太多了?
  • occlusion cull:大概也跟你的Skinned Mesh太多有关。
    综上,你的蒙皮模型太多导致GPU开销太大了。