【帧的概念】
首先我们需要知道什么叫帧数。下面这个GIF里的玩具想必大家小时候都玩过,就是画很多有细微区别的静态图画连续播放,利用人眼的视觉暂留效应,他就会变成动画,我们的电脑也是利用这个原理来工作的。
每一张静态画面就被称之为1帧,一秒钟闪过了30张画面,那就是30帧/秒,帧/秒的单位是FPS,也就是30帧每秒就等于30FPS。
那么这里你自己也能总结出一个结论,那就是帧数越高你的画面越流畅,1秒钟闪过1张画面,和一秒闪过10张画面和1秒闪过100张画面,那肯定是100FPS流畅。但是我们的肉眼有一个识别上限,也就是说,当帧数超过一定水平,你就无法分辨出区别了。这个值到底是多少,我们后面详细说。
电脑里用于输出帧数的元器件叫显卡,显卡的用途就是绘制图像并输出。所以衡量电脑游戏的流畅度,就是看你的游戏FPS,游戏的FPS就代表了你的显卡一秒向显示器输出了多少帧,这里我们暂且不讨论显卡刷新率大于显示器刷新率会发生什么,如果想了解的请看这个文章:【什么是画面撕裂?垂直同步,G-sync,Freesync到底有啥用?】
【静态帧与模糊帧】
这时候就要引入一个概念,静态帧与模糊帧。
我们知道电影拍摄的时候,相机都有一个曝光时间,假设我们的快门时间是1/10秒也就是0.1秒,那么在拍摄这张画面的时候,快门就会打开0.1秒,那么你的画面就会包含着0.1秒内全部的信息,那么这一帧,包含的内容就是这0.1秒里画面所有的变化。
就比如这个马,从A点跑动到B点花了0.1秒,相机快门时间也是0.1秒,那么这一帧就完整的记录了马从A点跑动到B点的模糊图像。这里不相信的话你可以随便播放一个电影或者用摄像头录制的画面,你在画面发生变化的时候任意一个时间点暂停,那你得到的都是一个模糊的画面,这就是快门时间导致的。
相机的记录原理就注定了,假设快门时间是0.042S,1秒能录24帧,这24帧每一帧虽然都是模糊的,但是你把这24帧连贯起来,他就是完整的马从A点移动到C点的一个完整流程。也就是说,电影里的每一帧都是模糊帧,而模糊帧是包含了物体在整个曝光周期内的完整运动信息。比如下图,这个人的腿从左边到右边运动的过程,这个过程的运动信息被相机捕捉到了,所以这一帧包含了他的腿部从左侧运动到右侧的信息。
但是我们的游戏不是这样,我们的游戏是由游戏引擎渲染出来的,渲染出来的每一张画面,都是清晰的帧,你任何时候截屏,你截图出来的画面都是一张非常清晰的画面,这就导致了一个问题那就是,清晰帧与清晰帧之间的间隔是缺失了运动信息的。比如下图GTA5的截图,如果是电影里开车的场景,你暂停一下,周围的画面肯定是模糊的,但是游戏里,车速明明都120km/h了,你截个图,还是清晰的帧。
这里我做了个图,左边是一滴水从高处落下,右边也是,但是左边是模糊帧,右边是静态帧,所以当你去以动画视频的形式播放的时候,左边的画面就会明显比右边连贯的。
【电影为什么24帧就流畅?】
那你了解了模糊帧和静态帧之后,你也就清楚了为什么电影只要24帧就算流畅。因为电影全程都是模糊帧,每一帧与每一帧之间衔接的都非常顺畅,但是游戏不一样,游戏里第一帧到第二帧之间的所有信息都是丢失的,假如你在电影里一个转身镜头,你会看到类似下面的一个这样的画面,周围的场景全是模糊的,他包含了这个转身镜头里所有的信息。而在游戏里,你只能看见,起始点,中间的几个点,还有终点,点帧与点帧之间的过渡信息完全丢失。
那既然这样,我在游戏里打开[动态模糊]这个选项不就行了么,当然没问题,从原理上讲,游戏内的动态模糊选项就是用来模仿电影的模糊帧的,但是这里有个问题就是,电影为了保证观感,很多的影片厂商做特效的时候都是逐帧修改的,力求整个一个半小时的影片每一帧都是完美的表现,但是游戏不是,游戏每秒都要输出大量帧,不可能说让某个后期去给你每一帧每一帧优化吧,所以游戏里的动态模糊都是利用固定算法来模拟的,这个动态模糊的效果肯定不如电影那种高度定制化的模糊帧,所以说即便你在游戏里打开了动态模糊,24帧的游戏依旧算不上流畅,因为游戏的动态模糊无法和电影那种比。
【帧生成时间】
电影里,一秒就是24帧,这是固定的,每一帧都是0.042的间隔。所以帧与帧之间是平滑的。但是电脑游戏不是,你的显卡性能是恒定的,但是游戏的场景复杂程度不是恒定的,可能你一会在大广场,画面里啥都没有,这时候帧数是100,一会你进了森林,全是树叶,那画面复杂了,帧数就是70了。所以以为画面会有变化,显卡性能却不变,那么就会出现帧数波动的情况。
比如举个例子
第一组:第一帧与第二帧间隔了0.3秒,第二帧与第三针间隔了0.1秒,第三针与第四帧间隔了0.2秒,第四帧与第五帧间隔了0.4秒。
第二组:每一帧都间隔0.25秒
那么这里帧与帧之间的间隔就被我们称之为帧生成时间。
那么你从面板上看,两者都是5 fps,都是一秒5帧,但是由于前者的帧数不平滑,导致实际上流畅度也不如后者。就是因为帧生成时间不够平滑导致的。
举个极端例子,前半秒就1帧,后半秒59帧,虽然你从面板上看是60fps,但是这个画面你就是会觉得钝了一下。
【定格动画或者电影】
评论区有不少人指出:动态模糊是导致电影画面流畅的这个结论是错误的,人眼的视觉暂留也是错误的,因为电影的帧间隔是固定的,定格电影看着也很流畅啊。
那么这些人很明显没有搞清楚一件事,那就是连贯和流畅是两个定义。
定格电影的拍摄方式和传统电影不一样,传统电影是采用摄像机拍摄的,那么就会涉及到快门时间,也会涉及到动态模糊。而定格电影是采用拍照后,移动场景景物,再拍照,再移动景物,最后把所有的照片连起来,这就是定格电影了,那么定格电影就不涉及到动态模糊。
这里给大家推荐一个比较新的定格电影《犬之岛》你们可以做个很简单的对比,手机大家都有吧,你可以拿两个手机,左边放一个普通的录像机录出来的电影,比如就复仇者联盟吧,右边放犬之岛,然后你对比一下他们两个的画面流畅度,你会明显发现犬之岛的画面不流畅,那么描述犬之岛的名词叫:连贯,没错,当帧间隔相同的时候,画面就是连贯的,因为我们的大脑可以把这些画面串起来,所以你会觉得画面是连贯的,但是连贯不代表流畅,连贯代表你还觉得这个画面是“动的”,而流畅描述的是指在画面“是动的”的前提下“衔接顺畅”。
因此,定格电影对比普通电影不流畅的地方就是因为没有动态模糊,这里注意我说的是不流畅,而不是不连贯,再次强调:连贯和流畅是两个定义。
【垂直同步】
关于垂直同步的详细工作原理这个文章有介绍,有兴趣的可以了解一下:【什么是画面撕裂?垂直同步,G-sync,Freesync到底有啥用?】
不愿意看文章的我简单说一下,垂直同步可以强制显卡的输出帧和显示器刷新率完美契合,也就是说,开启垂直同步就可以缓解帧生成时间不均匀导致的不流畅,强制显卡的所有输出帧间隔一样,但是垂直同步会大幅增加鼠标延迟,导致你会觉得鼠标变肉,就和鼠标底部粘了口香糖一样,等于是丢了西瓜捡芝麻。鼠标延迟远比画面不流畅更难受
【交互性】(此子标题内容来自极客湾科普视频)
视频链接:https://www.bilibili.com/video/av16461036?t=117
无论是电影还是主机,都是一种调动我们感官的一种娱乐项目,而电影只是用来看的,那么只需要保证音画同步,你就不会觉得违和,但是游戏是用来玩的,所以不仅需要保证音画同步,还需要保证你所有的输入操作都和屏幕实时同步,不然就会被我们的大脑所捕获到,产生违背日常认知的感觉,这种感觉就会让你很难受。一般来讲,正常情况下,普通人对于游戏画面的响应时间在100ms左右,如果我们晃动鼠标,鼠标晃动这个画面在100ms内输出到了显示器上,你就不容易察觉不到输入延迟。
而我们的游戏引擎工作原理决定了一件事就是我们的操作必须要3-5帧之后才能反馈到屏幕上,如果是60帧的画面,操作延迟大概在70-110ms左右,你很难察觉,而如果是24帧的画面操作延迟就达到了150-240ms,如果是30帧,那么延迟也在100-180ms之间,也就是你的操作反馈到屏幕上会出现滞后的现象,那么这就会违背你的认知,让你非常难受。
所以这里有个结论,就是你的帧数越低,你的操作延迟越高,而很明显60帧已经是100ms附近的极限值了,也就是说,如果你使用的是PC端,那你必须要保证帧数高于60你的鼠标才能在100ms之内反馈到屏幕上。
【为什么主机30帧就算流畅?】
很多主机用户经常说,我们主机30帧就流畅了,那些说60流畅的是不是要求太高了。这里就可以解释这个问题了,首先,主机上几乎所有的游戏都是默认开启动态模糊的,那么由于有动态模糊的存在,30帧所带来的画面不流畅会被缓解一部分,其次,主机上是强制开启垂直同步的,那么就是主机的所有输出帧,都会和电影那样每一帧间隔都力求完美相同。所以动态视力稍微好一点的人,都会察觉的出来PC的30并不如主机上30流畅。而主机使用的是手柄,开了垂直同步操作的延迟也不会那么明显,所以垂直同步的负面作用也被手柄抵消了。
再者,很多主机用户都是在客厅玩游戏,你距离电视比较远,通常都在3-8米,所以距离拉开后,就算是30帧不流畅,你的画面也不会显得那么不流畅。而电脑屏幕不是,电脑屏幕绝大多数人都是在1米之内去观看的,所以低帧率更容易被人眼所捕获。
而且手柄不会受到操作操作延迟的影响,因为手柄需要的输入反馈次数很低,摇杆的操作就算滞后100ms你也不会觉得什么,按钮滞后100ms你同样不会觉得什么,而鼠标的操作,一旦滞后超过100ms,那么你绝对会产生不适应感。
【人眼的适应性】
我们的眼睛适应能力是非常强大的,假如说,你从来没见过60帧,你一直在玩30帧主机,那么你的眼睛就会逐渐适应30帧,你的画面实际上并不流畅,只是因为你的眼睛适应了这个不流畅,所以你的大脑把这个不流畅当成了理所应当。就好像你在厕所呆一下午,厕所里的味道你的鼻子也会适应,然后你就会感觉厕所也没什么味道啊,但是实际上还是有味道的,只是你的鼻子适应了。同理,你长期使用30帧,你的眼睛也适应了,所以你并不会觉得30卡,但是如果说让你长期玩60帧的画面,突然再让你回去玩30帧的主机,相信我,地球上所有眼睛正常的人都会认为30帧卡,因为你的肉眼适应了60后,你会觉得30很难受,画面不连贯。
最为致命的就是,PC上游戏的优化不像主机那么好,主机由于就一台,一个型号,针对性优化非常容易,可以一直恒定30帧,加上我上面说的,人眼适应了,你就不会觉得那么卡,PC游戏,很多人的电脑配置不一样,那么厂商就没法统一优化,导致帧数各种乱跳,一会60非常流畅,一会又40突然掉帧,那么这种一会流畅一会不流畅,就会让你的眼睛非常难以适应,你眼睛习惯了60,突然画面复杂,掉帧到40,这时候你眼睛还没适应,你就是觉得卡,然后突然恢复了60,又觉得流畅,然后这种流畅,掉帧,掉帧,流畅,波动的帧数就会让你非常难受。你的眼睛也根本无法适应这种波动的帧数。就像一个厕所一会臭气熏天一会香气扑鼻,你就会觉得异常恶心,但是把你一直放在臭气熏天的环境,一会你的鼻子就会适应。
【为什么电脑30帧就不流畅?】
电脑和主机不一样,动态模糊和垂直同步是可选选项,大多数游戏默认是不开启的,那么就导致PC上如果还是30帧,画面会因为全是静态帧以及帧生成时间不均导致异常的不流畅。
打开动态模糊后,会影响视觉观感,虽然能缓解画面不流畅。而不开垂直同步,帧生成时间不均匀也会让你感觉画面不流畅。开启垂直同步会增加鼠标延迟,鼠标延迟比画面不流畅更恶心。那么你想要保证画面流畅,还不要输入延迟,那唯一的方法就是增加帧数,帧数上去了,就算帧生成时间不均匀,帧的数量也可以弥补这个问题,输入延迟也会随着帧数的提高而显著降低
鼠标和手柄的操作区别也是影响流畅度的关键,比如你同样是转动视野180度,从正前方转到后方,手柄因为摇杆范围就那么大,你推到顶,你视野转动的速度也就是上限了,但是键鼠不一样,鼠标做转身180度操作的时候,你可以飞快的甩鼠标,瞬间就能把头扭过来,那么手柄操作就是,你得缓慢的看着视野从前面转动到后面,而鼠标瞬间就能从正前方转动到后方。
那么在主机上,这个转动视野的整个流程你都需要完整的看完,而鼠标你可能只看见了正前方的画面,然后瞬间就转到了后面的画面,所以手柄的操作强制了你不能进行大幅度视野晃动,所有的晃动视角你必须要看着动画走完,那么这无形间增加了你所看见的画面数量,比如你转身用手柄,花了3秒转身,每秒30帧,那么你转身这个动作你看见了90张画面,而鼠标瞬间转过来,他只看见了正前方的画面,转过来后正后方的画面,他有可能只看见了2张画面,所以同样一个转动视野180度这个操作,因为鼠标和手柄的差异,导致了PC上绝对不能用30帧来衡量流畅。
手柄的活动区域是被限制死的,但是鼠标的活动区域是整个鼠标垫,所以操作的不同就注定了手柄的输入延迟没那么明显,而鼠标反馈必须要100ms内。
【电脑游戏需要多少帧才算流畅】
既然游戏的动态模糊效果不如电影,而不开垂直同步帧生成时间不平滑,开了垂直同步会大幅增加鼠标延迟,帧数低了也会增加鼠标延迟。那么电脑游戏到底多少帧算流畅呢?
根据我个人的流畅恒定(仅代表我个人感觉)如果你的显示器没有G-sync或者Freesync技术,刷新率是60Hz,那么你至少需要保证你的帧数在60-90稳定才能保证没有明显的鼠标延迟,同时画面较为流畅。而如果你想要获得丝滑般顺畅,注意这里是丝滑,不是流畅,那么你必须要用144的显示器并且跑到100帧以上。
而很多人说我的游戏画面40-60也很流畅啊,其实这就是井底之蛙理论,因为你没有体验过更流畅,而且加上你的眼睛适应了这个帧数,所以你会觉得流畅,而真正的流畅你还没见过呢。就像你让一个人从出生就吃树皮,那么他会觉得树皮也不错,但是你让他吃饭后,他肯定不愿意吃树皮了。你让一个长期吃饭的人去吃树皮,那他打死也不会吃。
40-60光鼠标延迟都能被人体明显感知,所以不可能会流畅,当然,如果你是说我在电脑上用手柄,那当我没说这句话。
【简单测试肉眼可识别的帧数上限】
我并没有找到任何一家权威的医疗或者生物机构测试肉眼刷新率上限,那么我们只能自己测试。
首先想要测试肉眼可识别的帧率上限,那就必须要有一个刷新率超高的显示器,我自己用的显示器是宏碁XB271HU,刷新率是165hz。
测试方法:游戏使用优化较好的守望先锋和GTA5两款游戏,保证全程200帧以上,不开垂直同步,不开动态模糊,手动将显示器刷新率设定为24,60,85,100,120,144,165,从24开始,24hz玩10分钟,然后调到60hz玩10分钟,感觉和24hz有区别,那么再上调到85hz,感觉还有区别,那么调到100hz玩10分钟,感觉100hz和85hz区别不是很明显,调回85hz玩10分钟,感觉没什么区别,那么85就是他的肉眼识别上限。测试前不会告知使用者档位数据,采用盲评模式,其次会告知被测试人只关注画面流畅度,不需要考虑鼠标的输入延迟。
根据我对我10名男性10名女性,包含儿童,成年人,老年人,我的同学,我的客户,我的朋友,我的亲戚等测试,我初步得出不专业的测试结果:
儿童的识别上限在100-120
常年玩射击游戏的识别上限在144-165
绝大多数成年人的识别上限在85-100
老年人的识别上限在60-85
最后是全文总结:
- 模糊帧包含了物体在整个曝光周期内的运动信息
- 静态帧只包含了物体在那一瞬间的位置信息
- 帧与帧的间隔被我们称为帧生成时间
- 电影虽然只有24帧,但是全是模糊帧且帧间隔完全相同,所以看着比较连贯
- 电影里的动态模糊是高度定制和逐帧修改的
- 游戏里的动态模糊是靠着算法模拟的,效果不如电影的原生动态模糊
- 游戏主机30帧画面看着不卡是因为开启了动态模糊和垂直同步
- 大多数主机玩家距离显示器比电脑玩家要远,距离可以缓解低帧数的不流畅感
- 人眼具有适应性,长期适应30帧后你就不会觉得30卡,但30帧其实并不流畅
- 电脑30帧不流畅是因为默认没有开启动态模糊和垂直同步
- 开启垂直同步会大幅度增加输入延迟,导致鼠标有粘滞感
- 电脑即便开启了垂直同步和动态模糊,30帧也不流畅,因为输入延迟太高
- 输入延迟的太高会导致大脑认为违背日常认知,导致你会很别扭
- 电影不需要考虑输入延迟,音画同步就行,手柄受输入延迟的影响小
- 鼠标的输入延迟最好控制在100ms内,临界值是60帧
- 手柄转动视角速度是受摇杆限制的,电脑上甩鼠标并没有被限制角度
- 鼠标和手柄的不同就注定了鼠标必须要高帧率来缓解输入延迟
- 根据不专业测试,人肉眼可识别的刷新率上限是90-120附近
- 即便是非常不敏感的人都能察觉出120hz和165hz的输入延迟的差别
- 144hz的显示器真的非常重要,这从来就不是噱头,用过你才知道
转载自知乎【Shieieiki教你学电脑硬件】,如侵删
原文地址:https://zhuanlan.zhihu.com/p/48674410