简书链接:ue427空项目打包不卡ue51空项目打包运行卡的要命研究测试性能体验优化
文章字数:1871,阅读全文大约需要7分钟
知乎上有人提问 lumen是如何做到不卡顿的,我却不以为然,我的显卡虽然算不上好显卡,但是也不至于独立显卡一个空项目都玩不起吧,打个cf,玩腾讯模拟器和平精英吃鸡肯定还是会很流畅的. 一个空项目都卡,怎么能说是我电脑配置问题呢???

再来看提示
image.png

image.png

反射设置的提示

image.png

阴影贴图提示
image.png
虚拟贴图的提示

image.png

优化

image.png

1.目标RHI 改为DirectX11 UE5.1默认是12
image.png

渲染:
全局光照GI 从lumen改为 屏幕空间 (也可以设置为None)
反射方法改为屏幕空间(也可以设置为None)
image.png

阴影改为 阴影贴图而非虚拟阴影贴图
image.png

如果添加了后期处理
里面也有全局光照设置同样设置一下

其它

开发时更流畅的办法
低配置电脑 设置-设置为低
image.png
引擎可延展性设置 改为低

image.png

测试 native lumen
在画面中点击光照
image.png

显示帧数

image.png
控制台输入fps也行

设置降低帧数
image.png

降低屏幕百分比 默认100
image.png
把基于屏幕分辨率 改成手动 ,并设置为70 如下图
image.png

关闭光线追踪

关闭实时显示

image.png

关闭文件实时显示
image.png

##下面内容来自转载

记得在独立模式下运行(standalone Mode)
记得最小化编辑器
切记关闭帧率平滑turn off Frame rates smoothing
用控制台命令r.VSync=0关闭垂直同步

代码优化

少用Tick(要记住如果你的场景和世界中,有许多Actor的“Tick”函数在运行。那就会严重拖累游戏的流畅度。)*替代方案:Timeline、Timer
Manual toggling of Actor Tick 手动切换Tick(手动禁用和开启Tick,比如禁用那些距离玩家太远的Actor,它们不在摄像机里,在你靠近他们的时候再重新启用。)
Reducing the tick interval (减少Tick的时间间隔.)
Event drien systems (事件驱动&蓝图时间驱动)
C++的“RotatingMovementComponent”就是个很好的方法。它用于让对象自旋,但假如你还想进一步榨取性能,你就可以用顶点着色器实现它。
如果你制作的3D游戏会用到动画蓝图,记得要使用Fast Path,基本上动画蓝图中的这种闪电图标越多就越好。

美术优化

影响美术渲染性能的主要因素:

大量使用半透明材质:当半透明材质占据屏幕比例越大,且半透明材质越多的时候,性能影响越大
网格体拥有的材质数量越多,则需要调用的渲染指令越多,不同的材质需要调用其他着色器模型。比如绘制8600万三角形的个只有一个材质的平面是15fps,而绘制10万个有50个由以上材质组成的平面绘制是5fps
UE4场景是逐对象绘制的(也就是通常意义上的DrawCall),与前一个绘制对象相同材质的对象一般会优先绘制,绘制对象越多,调用绘制指令越多,则渲染需要的时间越长
开启相同质量的动态阴影情况下,组成模型网格体三角面越多,绘制开销越大
网格体优化技巧:
Mesh的三角面数量低,并且使用频繁,可合并;
远距离的模型,一般可以合并;
保证合并的Mesh在同一个区域;
保证合并的是共享相同材质的Mesh;
保证合并的Mesh是缺少碰撞或简单碰撞的;
保证合并的Mesh非常小或只接受动态光照
LOD细节层次:
*LOD:(Level of Details),简称为多细节层次。LOD技术根据模型的节点在显示环境中所处的位置(Screen Size)和重要度,来决定物体渲染的资源分配,降低非重要物体的面数和细节数,从而获得高效率的渲染计算。一般后一个层级的模型面数只有前一个50%;
*HLOD:主要在渲染材质上做了优化,近距离下,原模型可能使用了20个Material,但是远距离下,会统一的使用一个材质示例进行显示。
https://zhuanlan.zhihu.com/p/336501817?utm_source=wechat_session&utm_medium=social&utm_oi=1018420095655288832