很多初学者做出来的场景,一运行就卡成PPT——帧率不到30,风扇狂转。

这不是UE5的问题,是不会优化的问题。

UE5的性能优化是一个系统工程,涉及美术资源、光照、特效、蓝图、C++代码等多个方面。这篇文章把常见的优化手段讲清楚。

性能分析工具:先知道”慢在哪里”

优化之前,先要找到性能瓶颈。UE5提供了很多性能分析命令和工具。

Stat命令:最常用的性能分析工具

在运行游戏时,按~键(或者Backtick键)打开控制台,输入:

  • stat Unit:显示帧时间(Frame Time)游戏线程时间渲染线程时间GPU时间
    • 如果Frame Time约等于Game Thread时间 → 瓶颈在游戏线程(蓝图逻辑太复杂、AI太多)
    • 如果Frame Time约等于Draw时间 → 瓶颈在渲染线程(Draw Call太多、材质太复杂)
    • 如果Frame Time约等于GPU时间 → 瓶颈在GPU(光照太复杂、后处理太重、分辨率太高)
  • stat FPS:显示帧率
  • stat DrawCalls:显示Draw Call数量(越少越好,一般PC上控制在2000以下)
  • stat TriangleCount:显示屏幕上渲染的三角形数量
  • stat LightCount:显示光源数量
  • stat Memory:显示内存占用

Unreal Insights:更深入的性能分析工具

stat命令只能看到大概,如果要深入分析,用Unreal Insights

开启方法:

  1. Project Settings > Und Project > Performance里,勾选Enable Unreal Insights
  2. 运行游戏时,UE会自动记录性能数据
  3. Unreal Insights工具打开记录文件,可以看到每一帧里每个函数用了多少时间

优化手段一:减少Draw Call(渲染线程优化)

Draw Call是CPU告诉GPU”画这个物体”的次数。Draw Call越多,CPU开销越大

用HISM(Hierarchical Instanced Static Mesh)

如果一个场景里有1000棵树,每棵树是一个单独的Actor,那就至少有1000个Draw Call。

HISM,可以让这1000棵树合并成一个Draw Call(或者几个)。

使用方法:

  1. 在蓝图里,添加Hierarchical Instanced Static Mesh Component
  2. 设置Static Mesh(要实例化的模型)
  3. Add Instance节点,在指定位置添加实例(代替手动摆放Actor)

用合并模型(Merge Actor)

如果几个静态模型总是一起出现(比如一张桌子+四把椅子),可以用Merge Actor工具把它们合并成一个模型。

使用方法:

  1. 在关卡里选中要合并的Actor
  2. 工具栏 → Actor > Merge
  3. 设置合并选项(是否合并材质、是否保留碰撞等)
  4. 点击Merge,生成合并后的模型

注意: 合并后,这几个模型就变成一个Draw Call了,但每个模型还是独立的碰撞体(不会合并成一个大碰撞体,除非勾选Merge Collision)。

用World Composition / World Partition

对于大世界场景,不可能同时加载所有地形和模型。World Partition(UE5的新系统)会自动管理大世界的分块加载。

World Settings里,勾选Enable World Partition,然后设置Grid Size(分块大小)。UE5会自动把世界分成网格,只加载摄像机附近的网格。

优化手段二:降低模型复杂度(GPU优化)

使用LOD(Level of Detail)

LOD是”细节层次“的意思。一个模型可以有多个LOD版本:

  • LOD0:最精细的版本(面数最高,近距离用)
  • LOD1:稍微简化(中距离用)
  • LOD2:更简化(远距离用)

UE5会自动根据模型离摄像机的距离,切换LOD。

创建LOD的方法:

  1. 在静态模型的编辑器里,找到LOD Settings
  2. 点击Generate LODs,UE5会自动生成简化版本
  3. 也可以导入用3ds Max/Maya事先做好的LOD模型

Nanite:UE5的黑科技

Nanite是UE5的新技术,可以自动处理LOD——你导入一个超高精度的模型(几千万面),Nanite会自动在渲染时做简化,不需要手动做LOD。

开启Nanite:

  1. 在静态模型的编辑器里,找到Nanite Settings
  2. 勾选Enable Nanite
  3. 重新保存模型

注意: Nanite并不是万能的。对于透明材质、蒙皮模型(Skeletal Mesh)、UI,Nanite不支持或者效果不好。这些还是要做LOD。

优化手段三:优化光照(GPU优化)

控制动态光源数量

动态光源(Movable光源)每帧都要重新计算阴影,很费GPU。尽量用静态光源(Static)或者固定光源(Stationary)

如果一定要用动态光源,控制数量:

  • PC上,建议同时照射一个区域的动态光源不超过4-6个
  • 移动端上,建议不超过2-3个

使用距离场阴影(Distance Field Shadow)

距离场阴影是预先计算好的阴影近似,性能比动态阴影好很多。

开启方法:

  1. Project Settings > Rendering里,勾选Generate Mesh Distance Fields
  2. 重启编辑器
  3. 在定向光的细节面板里,勾选Cast Distance Field Shadow

合理设置Lumen质量

Lumen很费GPU。在Post Process Volume里,可以调整:

  • Lumen Scene Detail:场景细节(0.5-2.0之间,值越低性能越好)
  • Lumen Scene Resolution:GI计算分辨率(值越低性能越好)
  • Final Gather Quality:最终采样质量(值越低噪点越多,但性能越好)

对于移动端或者VR,建议把Lumen关掉,改用传统光照(烘焙光照贴图)

优化手段四:优化材质(GPU优化)

减少贴图数量

一个材质里用到的贴图越多,Shader越复杂,GPU开销越大。

优化方法:

  • 把多张灰度图(Roughness、Metallic、AO、Opacity Mask)打包到一张RGBA图的各个通道里
  • Texture CoordinateTiling参数来控制贴图平铺,而不是用更大的贴图
  • 合理设置贴图的Maximum Texture Size(比如远处的物体,用512×512的贴图就够了,不需要2K)

使用贴图压缩

UE5会自动压缩导入的贴图,但你需要选对压缩格式:

  • 颜色贴图(BaseColor):用BC7(DXT5的升级版,质量更好)
  • 法线贴图(Normal):用BC5(只压缩XY通道,Z通道可以重新计算)
  • 粗糙度/金属度等单通道贴图:用BC4(单通道压缩)
  • UI贴图:用UserInterface2D(不做压缩,保持原质量)

优化手段五:优化蓝图(游戏线程优化)

不要用太多Event Tick

Event Tick每帧都会执行,如果用得太多,游戏线程会很卡。

优化方法:

  • 对于不需要每帧检测的逻辑,用Timer(定时器)来代替
  • 比如检测玩家血量,可以每秒检测一次,而不是每帧检测
  • Set Timer by Function Name节点,设置检测间隔

减少蓝图节点数量

蓝图节点太多,也会慢。优化方法:

  • 把常用的节点组合封装成函数或者
  • 对于性能关键的逻辑,考虑用C++重写

移动端优化:手游/VR的特殊考虑

移动端的GPU性能比PC弱很多,需要额外优化:

  • 关掉Lumen:用传统光照(烘焙光照贴图)
  • 关掉虚拟阴影贴图(VSM):用距离场阴影或者静态阴影
  • 降低渲染分辨率:在Project Settings > Settings > Mobile里,设置Mobile Content Scale Factor(比如0.8,渲染分辨率是屏幕分辨率的80%)
  • 减少后处理效果:移动端不支持太复杂的后处理(比如Motion Blur、Depth of Field要小心使用)
  • 用Mobile渲染器:在Project Settings > Rendering里,勾选Support Compute SkincacheUse Mobile HDR的对应选项(具体根据UE5版本略有不同)

招聘需求参考(Boss直聘,2026年6月)

看了30多个”UE5性能优化”相关职位:

  • 熟练使用性能分析工具:stat命令、Unreal Insights
  • 了解常见的优化手段:HISM、LOD、Nanite、Lumen优化、材质优化
  • 有实际优化经验:能展示把一个卡顿的场景优化到60帧的过程
  • 加分项:会用C++做性能优化(比如用多线程、用Job System)

相关课程: 火星人教育UE5性能优化培训课程,涵盖Stat命令、Draw Call优化、光照优化、材质优化、移动端优化。

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。