UE资产优化
课程大纲
性能查看
- 整体指标
- 瓶颈定位
- Stat命令行
- Engine Scalabiity Setting
分模块优化
- 模型 +Nanite
- 材质与贴图
- 灯光与阴影 +Lumen
- 特效
目标:面向TA,美术,不影响视觉的前提下,优化运行和编辑效率
引擎:UE5.1延迟管线
平台:主流PC,Windows 10 with DX12
性能查看
整体目标
Stat FPS
在编辑器的控制台命令行中输入Stat FPS,可以看到当前场景运行的帧率,以及可以换算过来的实际生成每帧画面具体用了多少毫秒。

-
fps vs .ms
ms是更线性的指标
更适用于在同一平台上检查各feature的消耗。
还有一点需要注意的是在做具体的性能优化工作之前,我们需要把项目设置中的Smooth frame rate选项关闭掉,这个功能会尽量避免运行时帧率的峰值。如果开启我们在场景中各个区域做检查时可能会掩盖一些问题。
**Stat Unit**Graph
Stat Unit这个命令可以将前面帧率这个整体指标做进一步的拆解。
- Game:CPU,物体位置变换,交互,动画及物理相关
- Draw:CPU为GPU做绘制前的数据准备
- GPU:实际绘制的消耗

可以看出三个线程有大部分的并行内容,所以我们就可以简单通过几个线程耗时的对比,哪部分的消耗和最终的Frame消耗更接近来定位这个瓶颈。然后再考虑具体使用哪些优化手段。

如果我们在Stat Unit后面加个graph,就可以在一定的时间窗里,把几个线程的消耗变化绘制出来。这样可以很方便的在场景当中变化视角来检查出问题的区域。

每个线程各个步骤的工作细节也有专门的指令来进行性能查看。
**Stat SceneRendering**渲染线程
如果瓶颈在渲染线程可以通过Stat SceneRendering命令检查渲染线程各部的实际消耗,以及它收集到的场景的渲染信息。
- Decals(贴花),Light in scene(动态灯光的数量)
- Mesh draw calls(CPU生成的模型的 Drawcall数量)
- GatherRayTracingWorldInstances(Lumen光线追踪时收集场景信息的消耗)
- InitViews(做物体可见性剔除时的消耗)

Stat InitViews
可以通过Stat InitViews命令进一步把它的详细步骤展开。
渲染线程——>Culling
- View Visibillity,Occlusion Cull:效率,剔除计算消耗
- Processed,Frustum Culled,Occluded:效果,剔除前后数量变化

Stat RHI
Stat RHI可以帮我们查看各个Buffer在显存中的占用,渲染视图的GBuffer还有阴影贴图都包含在最上面的这个Render target memory里。下面的Texture memory是材质中用到的纹理,后面还有顶点Buffer的存储量等等。
当我们的硬件显存不高时,就需要重点关注这里,看看哪部分的消耗比较大,相应的来缩小项目的纹理大小标准。或者调整一下灯光的阴影质量。
RHI这个命令还包括Drawcall提交相关的内容,下半部分可以看到最终提交渲染的面数和Drawcall的数量。这里的DrawPrimitive calls跟前面的SceneRendering 中的MeshDrawcall

本文介绍了如何在UE5.1引擎下对游戏资产进行性能优化,包括使用Stat命令行监控整体和模块级性能,针对Nanite材质、Lumen特效、模型LOD、纹理优化、灯光阴影、GPU资源管理和特效进行精细化调整,以提升运行和编辑效率,同时降低对视觉的影响。

5404

被折叠的 条评论
为什么被折叠?



