提问 发文

UE场景优化原则与方案

微微菌

| 2023-03-30 19:16 1105 0 3

1.在制作前根据【信息】来确定项目场景帧率

明确目标,以这个目帧数标去制作场景

(MS毫秒:渲染一张图需要的时间)

信息:分辨率、功能、场景类型、甲方使用的机器等

2.性能在场景逐渐复杂的过程中应该是缓慢下降的,不可以突然下降

即使帧率下降,也不要有太明显的感觉

3.每一处的性能消耗尽可能得到画面质量提升

避免无意义的性能消耗

4.在项目表现质量和性能消耗中找到平衡

现在的虚幻技术还做不到两边兼顾

二、判断优化方案的方法

1.首先判断问题出在CPU还是GPU,因为CPU只由Drawcall与剔除影响,所以先检查Drawcall与剔除。

备注:drawcall相关内容:小区域内过多的actor数量(且这些mesh不是同一个instance)、单个模型内过多的材质球数量

查看DrawCall的最常用方法:

~键,控制台,输入 stat engine(看面数);实时场景统计:stat SceneRendering(再次输入命令,窗口消失)

一般我们的数字孪生的项目所在机器(3070显卡为例)合适的Drawcall数量在7000左右,越好的电脑可以支持的越多。(这个drawcall数量是在每一个drawcall都是正常drawcall的情况下,如果你用了1个drawcall画了一个特别庞大的东西,比如说一个几亿面的白模,那就不适用这个情况)

ps:通过在材质中使用自定义基元数据来减少drawcall:https://zhuanlan.zhihu.com/p/215545723


若数值区间不好参考,可以尝试把视锥从场景远处对象少的位置移至场景对象丰富位置,若有明显的drawcall突然暴涨,则需要检查这个区域内的模型与材质球数量drawcall。

2.排除CPU的问题后,剩下的都是GPU的优化内容。

按【ctrl】+【shift】+【,】打开GPU查看器,把鼠标移至色块上,可以查看不同内容对GPU造成的消耗所占份额。展开左上角的scene如下图:可以看出阴影、灯光、体积云造成的消耗比较大,那么优先从这几个方向寻找优化空间


按以往经验来看,我们可以优先从这几项来排查(打开/关闭来对照帧率)

2.1 检查UDS天空球的【太阳投射阴影】与【对云造成投影】的消耗

(UDS的最大消耗也在灯光的作用距离以及cascade shadow的级数,以及体积云)

2.2 检查植物造成的消耗

(主要是在面数上,植被一定要做LOD)

2.3 检查光照复杂度,是否有太多消耗过高的区域出现

2.4 检查着色器复杂度,排查是否有消耗过于离谱的材质出现

收藏 0
分享
分享方式
微信

评论

游客

全部 0条评论

10603

文章

10.49W+

人气

19

粉丝

1

关注

官方媒体

轻松设计高效搭建,减少3倍设计改稿与开发运维工作量

开始免费试用 预约演示

扫一扫关注公众号 扫一扫联系客服

©Copyrights 2016-2022 杭州易知微科技有限公司 浙ICP备2021017017号-3 浙公网安备33011002011932号

互联网信息服务业务 合字B2-20220090

400-8505-905 复制
免费试用
微信社区
易知微-数据可视化
微信扫一扫入群