这里要先说一下帧的概念。我们经常看到一些动图,就是多张图片连接在一起,从而让人感觉到有动起来的效果。
这个动图里的一张图片,就是一帧。电影里一秒有 24 张图片,帧数就是 24 帧/秒,换成英文也就是 24FPS。电影和游戏里,帧数越高,我们所看到的画面也就越流畅。
但电影和游戏有一个最大的不同:电影是摄像机拍出来的,而游戏是引擎渲染出来的。
一、模糊帧与清晰帧
这是我截取《小丑》电影里的一张图,可以看到,这里小丑的图是模糊的。这种模糊图就叫做模糊帧。
模糊帧的好处是能够记录一段时间内的所有信息。比如说下面的红衣小孩,1 秒内跑了一段距离,而摄像机是 1 秒 1 帧,那么我们就可以在这一帧里看到这 1 秒内小孩所有的运动信息。
电影中所有用摄像机拍出来的画面都是模糊帧,都记录了短时间内运动的所有信息。所以尽管电影 1 秒只有 24 帧,但这 24 帧包含了 1 秒内所有的运动状态和运动信息,我们自然也就觉得很流畅了。
而游戏和电影恰好相反,由引擎渲染的画面全部都是清晰帧,除非你开动态模糊,否则任意时刻截图一定是清晰帧。
清晰帧用来截图当壁纸是很不错的,但它有一个最大的问题就是帧与帧之间的过渡信息丢失了。在游戏里,一帧的时间内,人物从 A 运动到 B,只有 A 点的图和 B 点的图,是没有从 A 到 B 的过程图的。这也就导致了游戏的帧率必须要比电影高很多,才能保证看上去很流畅。
二、帧生成时间
影响流畅度的不仅有清晰帧和模糊帧,还有帧生成时间。
电影里,一秒就是 24 帧,这是固定的,每一帧都是 0.042 的间隔。这个间隔就是帧生成时间,帧生成时间恒定,所以帧与帧之间就很平滑。
而电脑游戏的帧生成时间不是恒定的。在不同的游戏场景里,帧生成时间是不同的。比如你在大雪环境下,0.025 秒生成一帧,那到了森林,可能就要 0.05 秒一帧。从大雪进入森林,帧数就会波动,导致画面看上去不流畅。
三、交互性
电影只是用来看的,那么只需要保证音画同步,我们就不会觉得违和。
但是游戏是用来玩的,所以不仅需要保证音画同步,还需要保证你所有的输入操作都和屏幕实时同步,不然就会被我们的大脑所捕获到,产生违背日常认知的感觉,这种感觉就会让你很难受。
一般来讲,正常情况下,普通人对于游戏画面的响应时间在 100ms 左右,如果我们晃动鼠标,鼠标晃动这个画面在 100ms 内输出到了显示器上,你就不容易察觉不到输入延迟。
而我们的游戏引擎工作原理决定了一件事就是我们的操作必须要 3-5 帧之后才能反馈到屏幕上,如果是 60 帧的画面,操作延迟大概在 70-110ms 左右,你很难察觉,而如果是 24 帧的画面操作延迟就达到了 150-240ms ,如果是 30 帧,那么延迟也在 100-180ms 之间,也就是你的操作反馈到屏幕上会出现滞后的现象,那么这就会违背你的认知,让你非常难受
所以这里有个结论,就是你的帧数越低,你的操作延迟越高,而很明显 60 帧已经是 100ms 附近的极限值了,也就是说,如果你使用的是 PC 端,那你必须要保证帧数高于60你的鼠标才能在 100ms 之内反馈到屏幕上。