本帖最后由 仙賢戀軒 于 2012-8-7 01:54 编辑
1.FPS的定义以及其与画面流畅度的关系
首先我们来看一下FPS的定义:
FPS(Frames Per Second),每秒钟填充图像的帧数。由于动态画面是由一幅一幅静态画面组成,在眼睛的视觉惯性下产生画面会动的效果,其中没一幅静态画面成为一帧。简单来说,一秒钟内所能连续投射出的静态画面数成为FPS,其单位为帧/秒(也记作Hz)。
一般来说,人眼对15FPS以上的画面才会有连续的感觉,当到达24FPS或更高的时候,人眼感觉不到闪烁感;当FPS大于30帧的时候,大脑和眼睛所接受到的信号也实际上只有30帧。
那么肯定就有人要问了,明明我的游戏跑起来有40+的帧数,为什么实际体验还是觉得卡呢?
先别急,让我们来看看一些经常接触的FPS数:
电影:24FPS,也有少数30FPS,以及极少数更高FPS数的电影;
电视:PAL制式25FPS,NTSL制式30FPS;
CRT显示器:75FPS;
LED显示器:60FPS及以上。
大多数的电影都是24FPS的制式,可是为什么我们看电影的时候丝毫没有卡顿的感觉呢?
首先我们要先明白一件事,当物体在快速运动时, 当人眼所看到的影像消失后,人眼仍能继续保留其影像1/24秒左右的图像,这种现象被称为视觉暂留现象,是人眼具有的一种性质。也就是说,当物体失去了或是变化了,视神经对物体的印象不会立即消失,而要延续1/24秒左右的时间,人眼的这种性质被称为“眼睛的视觉暂留”。所以无论FPS有多高,眼睛和大脑所能接受的一切也只有30帧左右而已。
因此我们回到上面的那个问题,为什么我们看着24FPS的电影丝毫没有卡顿的感觉呢?
由于电影胶片每秒呈现出24张画面,配合上我们那1/24秒的视觉暂留,正好在一秒内组成了连贯的画面,因而给我们留下了连续的感觉。
那么,为什么有时候打游戏明明有40+的FPS却还是卡顿呢?这不是和刚才说到的电影结果矛盾了么?
其实不然,游戏帧数和电影帧数有一个本质的区别:电影胶片上的图像是事先由连续动作中进行等时间间隔截取到的,对于每一幅画面而言,他停留在你脑中的1/24秒之后 必定有一个画面跟了上来,这是一个接连不断的过程;而游戏则不然:游戏画面是由GPU(部分也由CPU)进行现场运算而呈现出来的,他未必可以保证等时间间隔内得到同样的效果。举个极端一点的例子解释,比如说某一秒间,前半秒GPU渲染出5帧,后半秒渲染出50帧,那么他在这一秒内的帧数总和为5+50=55帧/秒,也就是55FPS。看上去很高,不是么?可是对于前半秒而言,他的实际FPS为5(Frames)/0.5(Second)=10FPS,明显会给视觉产生非常严重的卡顿感,也就是说,我们在前半秒会感受到明显的卡顿,后半秒流畅,而这一切就发生在75FPS之下。
这里我另外配合几张图说明对于一个60Hz的显示器,30FPS、60FPS和120FPS可能产生的情况。
上图是60Hz显示器跑30FPS可能出现的情况。
在游戏帧率这里 ,比如说第3帧和第4帧都掉帧了,那么对于显示器来说,其应该显示的第5到8帧全都丢失了,那么反馈到我们的眼睛里视觉帧率处第3帧和第4帧也跟着丢失了。
我们再来看60Hz显示器上跑60FPS时的情况。
假设此时第3帧和第4帧都掉帧了,那么显示器相对应的第3帧和第4帧也就会相应丢失,而由于其刷新率是眼睛所能感受到的两倍,也就相当于眼睛感受到的只掉了1帧。
最后再来看看60Hz显示器上跑120FPS时的情况。
假设此时第3帧和第4帧都丢失了,那么对于显示器来说,其只丢失了一帧;而同样的道理,眼睛也不会感受到丢失。
那么看到这里细心的朋友就会发现一个问题了,上面的三张图所演示的情况都是在时间间隔等长的假设下得到的结果,而往往实际情况并非如此,我前面所提到的那个极端例子也不是不可能不发生。那么,我们到底应该如何去进行判断呢?
这里我推荐一个简单一点的方法。既然我们的眼睛和大脑有着1/24秒的视觉暂留,即一张画面会在我们的脑海中停留1/24秒,也就是说我们只要保证在一张画面显示后的1/24秒内有新的画面出现,即两帧间的间隔小于1/24秒,那么我们就几乎不会感觉到卡顿。
我们知道1s=1000ms,1/24s=1000ms/24≈41.67ms。因此我们只要看看实际游戏操作中间隔大于41.67ms的帧有多少,多了多少即可。
接下来我会用一个实例来对这个问题进行详细阐释。 |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?注册
x
评分
-
查看全部评分
|