[官方培训]22-UE资产优化 Epic 肖月 笔记

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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值