【游戏知识】当你打“王者农药”卡到坑时,你可以这样装X

来源:互联网 发布:gsm是什么卡的网络 编辑:程序博客网 时间:2024/05/01 17:56

前言

(本文部分参考了中嶋谦互——《网络游戏核心技术与实战》)
大家在玩游戏时都经历过游戏卡顿,游戏不能流畅运行,最后导致游戏体验很差的经历。无论是多人竞技的网络游戏(MOBA),还是一些大型的单机游戏,一定都出现过这个问题。例如很火的LOL,王者农药,和各大单机游戏。

我们从小就会说游戏很卡,那当我谈论卡时,我们究竟在谈论什么?


神秘的帧

说到帧这个东西,所有人第一个想到的应该是电影或者动画的专业术语“帧”。实际上,游戏里的帧并不神秘,此帧就是电视电影动画里的“帧”。(帧也简称为FPS,不是第一人称射击那个FPS)

说帧有什么意义?必须先说明游戏是什么。其实游戏的整体逻辑很简单,就是用游戏客户端根据玩家的输入数据,进行计算,最后为玩家播放动画

而播放动画的原理实际和电影差不多,图像按照帧来进行播放。我们都知道人眼具有视觉暂留现象,所以,人眼看到的任何动画刷新每秒都要超过一定次数时,就会看到连续的动画。这个次数即帧数。
电影每秒播放24帧画面。而游戏根据具体场景每秒播放30帧到60帧
(原因后面解释)

这就是游戏播放画面的原理,每秒播放60帧画面,使我们看到的图像连续流畅。
所以,我们说游戏画面卡(注意是画面卡)时,通常都是说播放帧数达不到要求,看到的动画不连续。


为什么会卡

解释为什么会卡之前,我个人愿意把卡顿分为两类。一类是单纯的画面卡顿;另一类是游戏计算的整体卡顿。
1. 单纯画面卡顿
单纯游戏画面卡顿的情况,通常是因为显卡,主要即GPU,在显示和渲染图像上能力不足造成的(计算机上的画面必须通过显卡进行渲染才能显示),每秒无法播放完所有画面。而游戏计算运行的速度正常,每秒能够正常产生帧。
2. 整体卡顿
根据画面要求的最小帧数我们可以得出,游戏中任何一个和计算机交互的操作都要在1/60 即 16毫秒内完成。如果时间延迟较大,那么图像就会出现卡顿。
我们都知道一些MOBA游戏,玩家的数据是通过网络共享的,个人的数据也通过网络确认。所以,一旦网络延迟,使数据无法在16ms内完成传输,就会出现我们地图上显示的坐标和其他玩家的不同,出现瞬移,我们的操作无效等…


屏幕刷新频率

你可能会注意到一个问题,那就是计算机显示器的屏幕刷新频率是60次/s。(一些职业玩家的屏幕刷新率是144)这就是说,如果是一台普通的显示器,在硬件上每秒只能播放60个画面。而帧数越高游戏越流畅,经常也能观察到游戏中的FPS实际远超60。那么这到底有什么意义?
首先要说明,帧数并不是越高越好。由于屏幕的刷新频率和帧数产生不统一,就很容易出现“画面撕裂”现象——显示器将多个帧放在同一个画面显示——两个画面不同意,开起来图片好像撕裂了。
为了解决这个问题,有两种方式。一种,提高显示器的刷新频率。另一种,开启游戏的垂直同步功能——渲染所有帧后,丢弃一些帧不输入给显示器,保证输出的FPS为60(俗称:锁60)。


游戏为什么要60帧?

前面提到电影每秒只需要播放24帧,人观看时就会觉得十分流畅。而游戏保持24帧时就会有明显的卡顿,至少需要30帧以上,60帧才能保证流畅。
原因在于,以下几点。
1. 动态模糊
玩过单反的都知道一个词,叫安全快门。它保证拍摄出的画面是清晰不模糊的。游戏中的每个画面都是通过GPU渲染的清晰无比,相当于 1/无穷大 的快门时间。
而电影画面的拍摄,难免拍摄到模糊的画面。人脑会自动通过模糊的画面补全一段时间的影像,而完全清晰的则不会。这是要提高帧数的原因之一
2. 帧率大小
如果在显示器上,一个点每次移动一个像素,那么我们看到的画面就是很流畅的。而如果一个点每次移动10个像素,在同样的帧数下看,就会有跨度,不够流畅。
因此,为了画面精细,每次要尽可能少的移动像素。这就需要提高画面帧数。
3. 其他原因
还有一些其他的人眼视觉和GPU稳定性原因


总结

通过上面的解释,应该可以得出结论——游戏实际是一个播放指定动画的过程,为了游戏的流畅,要求游戏每秒播放30至60帧画面。
当游戏卡顿时,通常是由于GPU无法渲染这些帧数的画面,或因为计算本身较慢造成无法生成画面。


参考文章

对于帧数锁定和视觉现象,参考了以下文章
http://www.techweb.com.cn/shoujiyouxi/2016-10-11/2409976.shtml
http://digi.163.com/15/1021/10/B6EMMU1J0016688K.html

原创粉丝点击