UE5性能优化

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6

1.定位瓶颈

首先需要判断瓶颈在哪UE4命令行输入stat unit

在这里插入图片描述
Game处理游戏逻辑的时间

Draw根据剔除物体收集渲染信息发送到GPU的时间

GPU:渲染光照计算所需要的时间

哪个时间更接近Frame的时间就从哪里入手通常代码不出问题情况下一般都是GPU的问题。

2.Game

如果是Game时间更接近可以看看Tick代码是否有循环次数比较多的或者是UE官方不建议在Tick调用的函数一直在Tick里面调用可以把耗时的操作采用多线程的方式解决可以使用Unreal Insights工具分析

3.Draw

如果是Draw时间更接近可以看看是不是物体过多导致剔除耗时过长输入stat initviews可以查看情况。还有就是DrawCall可以通过RenderDoc查看调用的次数优化场景可以把一些不需要很高精度的模型合成成1个actor

4.GPU

如果是GPU时间更接近造成的原因比较多往往也是主要需要优化的地方通过RenderDoc截图帧数较低的分析然后找到Scene节点这里以延迟渲染为例。
在这里插入图片描述
可以看到主要的渲染流程就是PrePass->BasePass->ShadowDepths->Light->PostProcessing

  1. PrePass主要是执行对不透明物体深度测试生成一张RT。这里的消耗主要是与actor的数量以及actor的面数有关

在这里插入图片描述
2. BasePass主要根据Shader输出的颜色高光粗糙度等生成一系列的RT并存储在GBuffer里方便后续的阴影和光照计算。这里的计算主要和shader的复杂度以及贴图的质量有关
在这里插入图片描述

  1. Shodow和Light的计算是耗时最多的这里和光源的数量actor的数量模型的精度都有这密切的关系具体情况需要具体分析

  2. PostProcessing主要是对输出的画面做处理与后处理盒子的数量和后处理的Shader有关系

总结根据RederDoc所反馈的信息调整耗时高的步骤和DrawCall。通常情况下优化性能都是从GPU入手DrawCall是最消耗时间的减少DrawCall是最有效的优化方法。对于大世界场景建议使用UE5的Nanite以及一些不需要特别精细的模型可以减少面数并合并成一个模型阴影可以使用shadowmapshader的优化也是很重要的将材质节点转成HLSL更利于优化。减少DrawCall的方法可以从合批入手合并模型合并贴图提高纹理的复用率合批的模型尽量使用一个材质球。

5.内存

内存占用过高的话首先是C++里面new了空间用完要及时的delete加载了一些资源用完也是需要及时的释放其次就是避免使用过大的纹理贴图使用过大的纹理贴图也会影响GPU的消耗占用过多的显存。

6.半透明物体

半透明物体一般都是最后渲染的过多的半透明物体对GPU渲染的消耗也是很多的两个半透明物体重叠时渲染次序的排序也是比较重要的。

未经允许禁止转载。

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6