概念

FPS(每秒帧数(Frames Per Second))是指动画或视频的画面数。
FPS是测量用于保存、显示动态视频的信息数量。
每秒钟帧数越多,所显示的动作就会越流畅。通常,要避免动作不流畅的最低是30。

FPS也可以理解为我们常说的“刷新率(单位为Hz)
一般我们设置缺省刷新率都在75Hz(即75帧/秒)以上。例如:75Hz的刷新率刷也就是指屏幕一秒内只扫描75次,即75帧/秒。而当刷新率太低时我们肉眼都能感觉到屏幕的闪烁,不连贯,对图像显示效果和视觉感观产生不好的影响。

问题描述

在使用UE5开发竞速类游戏的VR项目时,在低空竞速时,两侧的建筑物不停闪烁,产生撕裂现象。

原因

UE5运行的FPS大于显示设备(VR、显示器)的FPS,显示设备无法达到运行的刷新率。

比如VR设备的刷新率一般是70/90Hz,显示器60/120Hz等,而由于硬件配置高,UE5运行后的FPS是比较大的,显示设备无法达到显示的刷新率。

解决方法

方法一:控制UE5的FPS,将FPS调为低于显示设备的分辨率,比如60。

方法如下:

1.打开控制台,命令行中输入“t.maxfps 帧数”以修改最大帧率和关闭VSync

t.MaxFPS 60
r.VSync 0

但此方法仅是临时修改,重启程后失效。

2.在 DefaultEngine.ini 中修改

[/Script/Engine.Engine]
GameMaxFps=60

方法二:固定帧率

在UE5项目设置中修改

“项目设置” -> “引擎” -> “一般设备” -> “帧率”
将"使用固定帧率"选中, "固定帧率"设置为60

注意:如果是VR设备需关闭垂直同步才能固定帧率和MaxFPS,原因是VR的低延迟需求与桌面渲染逻辑的差异。
VR需严格匹配设备刷新率避免画面撕裂和眩晕,关闭垂直同步后通过固定帧率模式强制渲染线程与VR设备刷新率锁频;
而桌面程序开启垂直同步即可借助显示器刷新率稳定画面,无需额外锁频。

方法三:限制显卡的帧数

先将N卡控制面板的垂直同步打开,接着限制N卡的最大帧数为屏幕的帧数。

附加1:需要查看游戏运行的帧率,用于判断程序运行的流畅度,查看FPS方法以下:

1.在控制台命令中输入stat fps

stat fps

2.Get World Delta Seconds来获取帧率并打印到屏幕上

Delta Seconds其实就是游戏中每帧刷新所用的时间,用1除以Delta Seconds,得到的就是每秒中刷新的帧数。

附加2:启用和禁用垂直同步

垂直同步 (VSync) 将游戏或应用程序的图像帧速率与显示监视器的刷新速率进行同步,有助于建立稳定性。如果不同步,则可能会导致画面撕裂,即图像看起来在整个屏幕上呈现水平方向毛刺或重影的效果。

启用 VSync 后,便会获得完美对齐的画面而不会出现毛刺。关闭 VSync 后,便获得几乎没有限制的每秒帧数 (FPS),但是更有可能出现画面撕裂、抖动或卡顿,具体依配置而定。

启用或禁用垂直同步在UE中有三种方式:

1.在控制台命令中输入

r.VSyncEditor 1
r.VSync 1

2.使用蓝图函数

setVSyncEnabled

3.修改显卡设置

进入显卡设置(NVIDIA)中,将垂直同步关闭。