一个玩家把画面从 30 帧开到“120 帧”,第一反应是丝滑;一分钟之后,他在射击游戏里发现准星还是像挂了一根橡皮筋。屏幕更流畅,手感却没有变。这不是错觉,也不是设置没开对,而是 AI 帧生成(Frame Generation)本来就只解决其中一半的问题。

生成帧在画面里,不在游戏逻辑里

先把一件事说清:游戏逻辑的更新频率,由渲染帧决定,而不是显示帧。NVIDIA DLSS 4 的多帧生成(Multi Frame Generation)可以由 30fps 的渲染帧合成中间帧,让显示帧率达到 90 到 120fps 的观感。这里的“观感”二字很关键:屏幕上多出来的帧是根据相邻两张真实帧推算出来的,它们没有读到新的手柄输入,也没有让世界多走一步物理模拟。

用一个具体推演来看。假设基础帧率(Base FPS)是 30,每张真实帧之间间隔约 33 毫秒。玩家在两张真实帧之间按下开火,这个动作要等下一张真实帧才会被模拟并渲染出来,中间无论插进去多少张生成帧,画面都不会体现这次开火。生成帧让“等待”看起来更顺,却没有让“等待”变短。

基础帧率决定生成质量的天花板

帧生成靠的是光流(Optical Flow)和引擎提供的运动向量,去估计像素从上一帧到下一帧去了哪里。两张真实帧的间隔越长,物体在这段时间里移动的距离越大,估计越容易出错。基础帧率过低时,要补的间隔就长,遮挡关系、半透明、粒子和快速转动的镜头最先出问题。

常见的运动伪影(Artifact)有三类:物体边缘出现拖影或鬼影,因为被遮挡的背景在两张真实帧里都看不到;界面元素和准星被一起“运动”,因为它们并不属于场景运动;细小物体在插帧时闪烁或消失。这些问题和超分辨率露馅的位置很相似,共同点是:模型缺乏可靠信息的地方,就是它最容易猜错的地方。

因此比较健康的用法是:先把基础帧率拉到一个稳定且舒适的水平,再用帧生成把显示帧率往上抬。反过来,用帧生成去拯救一个只有二三十帧、且不稳定的基础帧率,往往得到的是流畅但发飘的画面。

把延迟拆成五段来算

“延迟”是一个太笼统的词。更有用的做法是把从按键到画面变化的过程拆成五段,各自计预算:

  • 采样:输入设备被读取的时刻,以及输入到达游戏的排队时间。
  • 模拟:游戏逻辑根据输入更新世界,取决于基础帧率或固定的逻辑步长。
  • 渲染:GPU 画出这一帧,排队越深越慢,引入渲染队列往往是最大的隐形延迟。
  • 生成:帧生成需要等下一张真实帧到达后才能生成中间帧,这一段的等待是它必然的代价。
  • 显示:显示器的刷新与同步方式,垂直同步或可变刷新率会改变这一段。

帧生成的等待落在“生成”一段:要在两张真实帧之间插入画面,就必须先拿到后一张真实帧。所以从系统角度看,开启帧生成通常不会减少延迟,而是额外增加一小段。团队要问的不是“开还是不开”,而是这一小段能否被别的环节的节省覆盖,比如减少渲染队列,或者提高基础帧率。

不同游戏该怎么取舍

取舍主要看玩家的操作对时间有多敏感。竞技射击、格斗和节奏类游戏,玩家靠的是对画面变化的即时反应,一点点额外延迟就能被感觉到,建议把基础帧率放在第一位,帧生成作为可选项。开放世界 RPG、叙事冒险、策略和模拟经营,大部分时间玩家在观察和决策,视觉平滑带来的收益更大,也更能容忍多一小段延迟。

介于两者之间的是赛车和第三人称动作。这类游戏对转向和格挡有时间要求,但镜头运动幅度又大,帧生成的伪影更容易暴露。我们更倾向于让玩家自己能在设置里看到“基础帧率”和“显示帧率”两个数字,而不是只显示一个总数。

云游戏里这个问题会更复杂,因为除了本地的五段,还有网络与编码。如果同时在云端渲染、云端生成、再传给玩家,延迟预算会被拉长,这一点可以对照云游戏 AI 超分里对整条链路的讨论。

一份可以直接使用的检查清单

金沙娱乐云游戏在讨论 AI 帧生成与画质时,倾向于用下面几条判断一个帧生成方案是否可以对玩家开放,具体做法以后续官方说明为准:

  1. 分别记录并展示基础帧率与显示帧率,不用后者代替前者。
  2. 在开启与关闭帧生成两种情况下,各测一次“按键到画面变化”的端到端时间。
  3. 检查渲染队列深度,先削掉可避免的排队延迟,再考虑生成。
  4. 用快速转镜、遮挡、半透明和界面叠加四类场景专门测伪影。
  5. 为竞技类游戏保留关闭帧生成的入口,并解释这样做的原因。

还有一个容易被忽略的方向:生成帧的稳定性并不只取决于光流,也取决于引擎给出的运动向量是否干净。如果连续帧之间的光照与材质自己在闪,帧生成就会把这种闪烁放大,这个问题在神经渲染的时间稳定性里有更完整的讨论。

视觉流畅和操作响应是两个指标,帧生成主要拉高前一个。把它们分开衡量,玩家才不会在“看起来很快”和“用起来很慢”之间困惑。衡量口径可以很简单:基础帧率、显示帧率、端到端延迟三个数字放在同一张表里,缺一不可。