0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

游戏画面卡顿是什么原因

454398 来源:工程师吴畏 2019-04-18 10:13 次阅读

对于广大玩家们而言,影响游戏体验的一大元凶,就当属卡顿和画面撕裂了,特别是在玩动作游戏时,卡顿影响发挥的情况让人想要砸键盘。

我依稀记得,曾经玩《阿卡姆之城》最高难度因为机能不行掀桌子砸键盘的黑历史,那种按下按键过了将近一秒才能得到回应的体验让人无比的光火。

但最后还是硬着头皮打穿了,二十多帧的游戏体验,为什么要跟键盘过不去呢,不如去换电脑。..

其实,造成这一切的,不单单只是硬件水平的问题,比如说,同样的硬件,驱动版本有问题的话,也会影响性能的发挥。

而卡顿的表现也不只有帧率低的情况,高帧率卡顿的情况也会影响游戏的表现,辨别卡顿的方法,除了看帧率外,还可以通过帧时间鉴别。

帧率是口锅,什么都能装

“哎呀,又掉帧了”,一般遇到游戏卡顿大家都会这么说,但对另一些同学来说,帧率却仍然是一个非常陌生的名词——游戏卡顿,和掉帧有什么关系呢?

事实上,帧率指的是平均一秒内,游戏更新显示了多少张“画面”——同动画和电影一样,游戏呈现给玩家的方式,也是通过快速的画面更迭来实现动态的画面的。

这是利用了视觉暂留现象实现的,由于人类眼睛的生理结构,如果每秒能更新超过16张连续的画面的话,就会给人一种“画面连贯”的错觉。

但不同的是,3D图形渲染的机制,就决定了动画和电影中一些能够造成“动态视觉”的设计方法难以同样地应用。

因而在3D游戏当中,就需要更高地帧率来实现动态的画面,这也是为什么人们常说需要至少30帧的原因(当然,30帧只是最低要求,如果有足够刷新率的显示器,能够以更高的帧率来运行游戏,自然是更好的)。

一般来说,帧率已经足以反映游戏体验是否流畅了,不过,它其实是不能详实可信地反映游戏运行过程中实际情况的——如前面所说,动画和游戏实际上是通过视觉暂留现象来实现动态画面的。

而具体到游戏而言,则需要至少每秒30张画面(也就是30fps)才能保证人眼不会明显地感受到卡顿,但帧率作为计算方式计算的实际上是每秒的平均帧率,它并不能准确地反映这一秒内硬件渲染画面的真实情况。

你需要帧时间来救场

这个时候,就可以求助于帧时间来更为详细地分析卡顿的情况了——帧时间指的是硬件渲染每帧画面的时间(也可以说是每一帧画面的绘制时间),它的计量单位是毫秒(ms)。

理想情况下,当我们游玩某一游戏获得每秒60帧的帧率时,它每帧画面在1秒钟(1000毫秒)内停留的时间应当精确于16.7毫秒。

但实际上,游戏在实时运算时,随着画面的变化,显卡、CPU、内存等硬件由于需要互相协调运作,因而每帧生成的时间间隔,并不一定稳定地在一个理想的数值。

比如说,极端情况下,一秒钟内,如果前500毫秒渲染了60帧,在后500毫秒没有渲染任何帧,这样虽然帧率测量结果将仍将显示为平均60fps,但在那没有渲染的500毫秒内,人眼是会感受到图像信息没有变化的,这样的体验基本就可以称之为卡顿了。

当然,这只是个极端的例子,但在实际情况中,30fps的理想帧时间是33.3ms,如果高于这个数字,人眼就有可能感受到卡顿。

简单来说,较高帧数下出现的卡顿问题正是帧生成时间不稳定导致的,当硬件无法及时处理游戏数据的实时运算时,就会出现一些生成时间惊人的帧,这时即使硬件已经处理好这一帧后面的数十个帧了。

因此,为了获得流畅的游戏体验,高帧率和稳定的低水平帧时间就缺一不可了。

你们猜,下面这种情况,你们觉得实际游戏体验有没有出现卡顿呢?

真相只有一个!卡顿却不是

硬件是造成卡顿和掉帧的第一元凶?硬件当然是出现卡顿时人们通常能想到的原因——执行游戏后台进行的计算工作的,是处理器,将数据传输给处理器的,则是内存。

面对日益复杂精美的图形画面,显卡多年来一直都在风中摇摆,价位的差异,基本上就是计算机硬件水平的划分,五千的游戏本,自然和一万的游戏本能完成的工作是有着天壤之别的(台式机同理)。

更好的计算机硬件,能同时处理更多的数据,应对更为复杂的工作,支持更新的图像技术——从DX8到DX12,这几年游戏画面的进步也是有目共睹的——需要占用至少3.5GB显存的游戏用4GB显存的显卡运行,出现卡顿也是正常的了。

因而,人们面对卡顿第一时间怀疑是自己硬件的锅,也是很正常的,毕竟——没那能力硬揽瓷器活是会翻车的。

驱动也来凑热闹!

另外,驱动程序也在很大程度上影响着硬件的性能发挥,我就曾经遇到过某一版本的驱动导致游戏帧数下降了一大半不到二十帧的情况。

吓得我赶紧回滚至前一个版本了(其实一开始玩新游还以为是硬件不行,后来发现玩之前的游戏也这样。..)。

但这又是因为什么呢?我们先来了解一下驱动是什么——设备驱动程序(英语:device driver),简称驱动程序(driver)。

是一个允许高端(High level)计算机软件(computer software)与硬件(hardware)交互的程序,这种程序创建了一个硬件与硬件,或硬件与软件沟通的接口,经由主板上的总线(bus)或其它沟通子系统(subsystem)与硬件形成连接的机制,以使得硬件设备(device)上的数据交换成为可能。

由于驱动程序需要对硬件功能进行低级访问才能运行,因此驱动程序通常也是在高特权的环境中运行的,如果出现问题,几乎可以肯定会导致系统的运行出现问题。

这也是为什么编写驱动程序的任务通常软件工程师或计算机工程师来完成的,这是因为他们比大多数人有更好的信息来设计他们的硬件。

因此,驱动程序的表现直接决定了硬件的实际效能输出,如果某个版本的驱动更新出现了问题,就会遇到我之前遇到的性能问题。

好在,一流的软件工程师和计算机工程师也不是吃素的,因而,一般在后续的版本更新里也会修复这些问题。

落井下石的游戏负优化

那我大几万买的笔记本/台式机为什么有时候玩一款游戏也会卡顿呢?这就不得不说到游戏公司有时候令人惊讶的“负优化”的。

事实上,除了负责硬件数据输出效率的驱动,在制作游戏时,游戏中要出现多少素材,怎样优化硬件数据传输的效率,也都会影响到最终的游戏体验(比如寒霜朋克玩到后期就会出现这个问题)。

比如说,2007年的二战即时战略游戏《英雄连》,如果正常游玩的话,用现在的游戏本来运行就能保持到一个很高的帧率水平。

但是在开启了修改器取消人口上限后,几百个小分队挤在屏幕中央的画面的确看起来虽然十分的壮观,但同时也会因为占用过多的系统资源而不可避免地发生卡顿的情况。

事实上,许多游戏在设计时就是通过减少场景内不必要的素材来提高游戏的效能表现的,而一些取巧的设计思路也能产生不错的效果。

著名的射击游戏《使命召唤》系列,就是以区域内素材的使用见长的。

它将游戏使用的素材集中于设计好的“必经道路”上,不仅避免了浪费机能的情况,还给玩家们带来了一流的电影化体验(事实上,有一段时间里,一些玩家是把COD当互动电影来对待的)。

而另一种常见的解决方案,大概就属游戏设计当中的纸片山纸片人了——这种设计大大减少了硬件的数据处理量,还在一定程度上保证了视觉效果的体验。

而硬件应用效率的问题,则分别和游戏所使用的引擎和开发人员的技术功底有关。

前者主要是引擎本身采用的算法可能导致的效能问题,而后者则在于对游戏运行过程中对硬件使用的优化——如何更加高效地运用内存、显存还有处理器,是开发人员在技术层面一直试图不断突破的一种能力。

而负优化的情况,基本上就是反面教材了。

总之

总而言之,面对游戏画面卡顿的情况,硬件和软件都有可能是造成这一切的元凶,升级硬件,降低画面设置诚然是一种不错的选择。

不过识别卡顿的真正原因,对对症下药,更新驱动或是放弃一款游戏,也是游玩过程中需要注意的,用帧时间来分析游戏运行状况,就能更为清晰地了解实情,是升级硬件,还是更换驱动,怎样选择也就一目了然了。

在追求极致游戏体验的道路上,怎样能少花钱多办事,玩得舒心,还是一门值得研究的学问呢!

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 电脑
    +关注

    关注

    15

    文章

    1602

    浏览量

    67288
  • 帧率
    +关注

    关注

    0

    文章

    8

    浏览量

    2587
收藏 人收藏

    评论

    相关推荐

    STM8L的RTC时钟什么原因导致的?

    ); RTC_WakeUpCmd(ENABLE); } } 上面程序段是我来回切换RTC时间的函数,可是从1s切换到100ms时会出现的时间有长有短,我初步判断是RTC
    发表于 04-18 08:25

    磁环绕线电感温度高什么原因

    电子发烧友网站提供《磁环绕线电感温度高什么原因.docx》资料免费下载
    发表于 03-29 14:46 0次下载

    RT-Thread SDIO驱动SDget scr返回失败是什么原因呢?

    STM32F429芯片,rt-thread标准版,添加了SD驱动,调试时发现在mmcsd_get_scr时返回-1,打印错误日志发现是cmd.err=-1,这是什么原因呢? 打印信息如下:
    发表于 02-23 06:05

    电脑闪屏是什么原因,怎么解决?

    电脑闪屏是什么原因,怎么解决? 电脑闪屏是指计算机屏幕在使用过程中出现频繁的黑屏、白屏或闪烁的现象。这种问题可能会给用户带来极大的困扰,影响正常的使用体验。造成电脑闪屏的原因有很多,比如硬件故障
    的头像 发表于 12-25 11:21 1790次阅读

    传感器测不出频率一般是什么原因 传感器测量时的注意事项

    传感器测不出频率一般是什么原因 传感器测量时的注意事项
    的头像 发表于 12-01 09:39 335次阅读

    L298N驱动电机什么原因

    L298N驱动电机什么原因
    发表于 11-01 06:56

    电容器经常鼓包是什么原因

    电容器是电子设备中常用的一种元件,用于存储和释放电荷。然而,经常有人发现电容器出现鼓包的情况,这是由于什么原因呢?
    的头像 发表于 10-26 14:26 3796次阅读
    电容器经常鼓包是<b class='flag-5'>什么原因</b>?

    什么是凹槽效应?什么原因引起的?怎么抑制这种异常效应呢?

    在刻蚀SOI衬底时,通常会发生一种凹槽效应,导致刻蚀的形貌与预想的有很大出入。那么什么是凹槽效应?什么原因引起的?怎么抑制这种异常效应呢?
    的头像 发表于 10-11 18:18 1075次阅读
    什么是凹槽效应?<b class='flag-5'>什么原因</b>引起的?怎么抑制这种异常效应呢?

    无刷电机在换向的时候有怎么解决?

    遇到换向的情况要怎么解决
    发表于 10-11 06:26

    为什么用T型加速对步进电机进行控制会出现的情况?

    为什么用T型加速对步进电机进行控制会出现的情况
    发表于 10-09 07:28

    什么原因引起电容响

    什么原因引起电容响 电容器是电路中常用的一种元件,它具有将电能存储与释放的特性。但是,在实际使用过程中,可能会出现电容器出现响声的情况。那么是什么原因造成了电容器的响声呢? 一、电容器本身
    的头像 发表于 09-07 16:04 3558次阅读

    电机哆嗦是什么原因 电机振动是什么原因

    电机哆嗦是什么原因 电机振动是什么原因  电机哆嗦和电机振动是常见的问题。电机哆嗦指的是电机运转时,产生明显的颤动,而电机振动则是指电机震动幅度较大的问题。这两种问题均会影响电机的工作效率,降低设备
    的头像 发表于 08-28 17:43 2178次阅读

    什么原因导致锡膏印刷质量问题的呢?

    在smt加工程序开始时,有一个非常重要的环节,那就是锡膏印刷。锡膏印刷的质量将直接影响我们后续SMT加工的质量和整个PCBA板的质量。那是什么原因导致了这些印刷缺陷呢?有哪些解决办法呢?以下
    的头像 发表于 08-18 15:57 870次阅读
    是<b class='flag-5'>什么原因</b>导致锡膏印刷质量问题的呢?

    锡膏印刷的质量是什么原因导致的?

    在smt贴片生产商的加工初期,有一个非常重要的环节,那就是锡膏印刷。锡膏印刷的质量将直接影响我们后续SMT加工的质量和整个PCBA板的质量。那是什么原因导致了这些生产缺陷呢?有哪些解决办法?以下
    的头像 发表于 08-12 18:47 573次阅读
    锡膏印刷的质量是<b class='flag-5'>什么原因</b>导致的?

    PCBA焊点锡裂是什么原因

    一站式PCBA智造厂家今天为大家讲讲有翅金属弹片直焊电路板锡裂或翅膀断裂是什么原因?。接下来为大家介绍有翅金属弹片直焊电路板锡裂或翅膀断裂问题。
    的头像 发表于 05-04 09:12 996次阅读