如何使用UE5新功能 “打包型关卡Actor” 实现场景的性能优化

如何使用UE5新功能“打包型关卡蓝图”实现场景性能优化



内容分为:

  1. 简介
  2. 实操
  3. 优化结果展示

看不懂原理看看实操就大概就能明白


什么是“打包型关卡蓝图”

“打包型关卡蓝图”是UE5新功能 世界分区(World Partition) 的一部分
不依赖于项目是否启用了世界分区

官方文档有关世界分区中 关卡实例化 的内容


优化的原理

官方文档:
这个功能的原理是将场景中的 静态网格体 资产合并以创建 进行了渲染优化的单一 蓝图Actor
将静态网格体替换为链接到打包型关卡Actor(Packed Level Actor) 的 打包型关卡蓝图(Packed Level Blueprint) 实例。

人话:
“模型” 放入 “关卡资产”
“关卡资产” 放入 “Actor”-;
“Actor” 则直接放在 “真正的关卡” 中;
优化的核心:
“Actor” 自动将关卡内部模型收集,全部优化为 实例化静态网格体 InstancedStaticMesh


演示如何使用

演示场景
我准备了这个场景作为演示

  • TestMap为主关卡(蓝色标识)
  • 关卡中摆放有很多的Mesh(红色标识)

1.创建打包关卡Actor

点击

1. 选中要打包的全部模型(上图1)

注意,包括场景中的 模型 ,Actor 内部的模型 ,甚至 构建函数中生成的模型
都可以参与优化,都可以选上

2. 右键模型创建打包关卡Actor(上图2)
3. 打包设置(下图)

在这里插入图片描述

枢纽点类型,字面意思,就是指合并以后得Actor轴应该在哪
这里因为Mesh是场景模型,所以使用世界原点。例如你打包的是一辆车,你可以选择actor原点等,方便复制

4. 保存Map和Actor

MapA

确认后会分别创建一个 MapActor( BBP_ )


2. 到这一步,整个优化流程就已经结束了!

创建完成就会是这样的状态,

  1. Mesh在关卡MapA里
  2. MapA在BPP_MapA里(蓝色标识)
  3. Actor在主关卡TestMap里(红色标识)

创建完成

结束后会是这样的状态,箭头是他们的关系

HISM
可以看到此时全部模型已被优化合并为4个实例网格体

要注意的是,只有 同模型+同材质+同属性(例如可移动属性) 才被引擎认为可以做为一个实例网格体


如何继续编辑

是不是看到这里,害怕自己辛苦摆的模型,到这一步是不是被合并就不可逆了?
合并模型优化法 给人留下了心理阴影)
不要怕,我们继续讲解如何编辑

1.进入编辑

编辑
选择MapA,并点击编辑
打开编辑
BBP_的actor将会在主关卡中展开!
可以看到红框处,所有信息都回来了!

你可以继续在这里尽情编辑场景,且由于此外的场景环境均为灰色,更加直观了
修改完成后就可以点击提交

提交后将会对模型重新优化


2.编辑完成后提交

提交修改

提交时需要注意(写文时为UE5.1),你可能在编辑完成后找不到提交按钮
按如图步骤,双击1回到主关卡,这样2的Actor才会是外部显示,此时点击2,就可以在细节中看到3提交按钮


打包前
打包后
附一个DrawCall前后对比,不损失任何细节的情况下优化出200倍而已


什么情况用这个最爽:

你有3个超级无敌好看的砖头,你使用这个砖头拼了一个长城!
你现在有几千万个Draw Call!
使用这个优化后,你仅有3个Draw Call*,整个长城仅仅是3个实例网格体

一些提示

  • 可逆可编辑可还原,因为优化过程中所有信息会被保存。例如按照往常合并的方式,模型坐标会因为不可逆的合并而消失。
  • 如果你想还原,只需进入编辑,把里面的东西再复制出来就可以了。
  • Datasmith插件导入场景可以智能的把建模软件的同模型导入为一个资产,结合这种优化很强[ 官方Datasmith文档(查看实例化章节)]
  • 此功能对多人协同项目十分友好,可以按个人负责区域划分多个关卡Actor,只需迁出自己场景的Actor,而不用迁出整个关卡
  • 关卡Actor是可以移动和复制的。例如你拼好一栋楼并打包,你可以复制为多栋楼。
  • 编辑关卡Actor,也理所当然的会同步到所有复制的关卡Actor
  • 如果使用流关卡或世界分区等,应按照流送区域合并Actor
  • 求求你们看官方文档吧
  • 当前版本(UE5.1)样条网格在合并后只会是默认样条线形态(一小节)

后续版本新加入功能

这里更新一些后续版本新加入的功能或调整

5.3

关卡实例Actor过滤器

在这里插入图片描述
Actor筛选器在世界分区关卡内允许每个关卡实例采用变体。
它们包含数据层实例和/或本地数据层,设置为支持通过纳入用户定义的默认筛选器来筛选Actor。
根据每个关卡实例中设置的筛选器默认值、覆盖和激活状态,将在流送生成时纳入或排除与这些预配置的筛选器关联的所有Actor。
筛选掉的数据将完全从游戏中删除。

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值