现有的高票答案都是从视觉流畅的角度来分析的,都解释的很好,但是游戏开发中,以每秒 60 帧作为性能目标的原因,并不仅是单纯考虑到视觉流畅性。
事实上,仅考虑视觉流畅性的话,30 帧是完全可以接受的。在画面细节足够的情况下,人眼脑补运动感的能力会被充分调动起来,不会太在意帧间区别。而实际上,xbox360 和 ps3 上都有大量的游戏运行在 30 帧每秒,包括光环,战争机器,神秘海域,杀戮地带这样的大作。
而且以现在的 3D 技术,完全可以在 30 帧的情况下, 加入动作模糊等特效, 对画面中高速运动的物体加上人为模糊,从而实现和电影画面相似的质感。 在打开动态模糊的情况下,30 帧和 60 帧的视觉流畅度差异极小。
这里有一个游戏 30 帧和 60 帧视频对比的网站:30fps vs 60fps
可以看到,差别需要细看才能体会,而且单看 30 帧的话,不会让人在视觉上觉得卡顿。
但是开发者和玩家仍然会尽可能的追求 60 帧的体验,为何?因为对游戏而言,流畅感并不仅来自于视觉方面,操作的流畅也至关重要。
决定操作流畅感的,主要是操作响应时间。这是指玩家做完一个操作,到游戏画面反映出这个操作影响为止,所需的时间。
而根据目前大多数游戏引擎运行的方式,这个过程需要 3 帧。就是说玩家的任何操作,最快也要 3 帧之后才能体现在画面上。因此,游戏的响应速度对帧率高度敏感。
30 帧的情况下,每帧显示 33ms, 响应极限大概是 100ms。
60 帧的情况下,每帧显示 16ms, 响应极限大概是 50ms。
实际表现中,由于游戏逻辑处理,以及显示设备还有一个几毫秒的响应时间,一般 60 帧的游戏响应速度会在 60 到 70ms,30 帧游戏的响应速度会在 120 到 150ms。
因此,对玩家而言,60 帧能够明显的感到比 30 帧流畅。
======= 关于 3 帧延迟 ========
3 帧延迟和游戏引擎对逻辑和渲染的处理流程有关,在当下比较常用的渲染流程下,3 帧是一个极限。对此制作过吉他英雄的 NeverSoft 的联合创始人 Mick West 专门撰文进行过详细分析,全文见如下连接:
Gamasutra – Programming Responsiveness
我有空的时候考虑翻译一吧,至于原理,倒是引用他一张图就够了:
他自己对多个游戏的响应速度测试:
Gamasutra – Measuring Responsiveness in Video Games
评测网站 DigitalFoundry 的测试:
Console Gaming: The Lag Factor Article • Page 1 • Eurogamer.net
确实只有少部分游戏可以达到 3 帧的响应速度,一般游戏能做到 4 帧就算不错。