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

    文章

    1692

    浏览量

    68782
  • 帧率
    +关注

    关注

    0

    文章

    10

    浏览量

    2613
收藏 人收藏

    评论

    相关推荐

    数据采集网关出现断网可能是什么原因?如何排查?

    数据采集网关出现断网可能是什么原因?如何排查?
    的头像 发表于 11-30 13:43 185次阅读

    什么原因导致压力传感器漂移?

    什么原因导致压力传感器漂移的呢?我们在设计的时候怎么才能消除压力传感器漂移呢?
    的头像 发表于 08-22 18:00 1015次阅读
    <b class='flag-5'>什么原因</b>导致压力传感器漂移?

    OPA361输入为复合视频,输出视频图像画面异常,跟过曝一样,为什么?

    输入为复合视频,输出视频图像画面异常,跟过曝一样,不知到是什么原因
    发表于 08-19 06:24

    什么原因促使250A接线端子被烧毁

    德索工程师说道在电气系统中,250A接线端子扮演着重要的角色,犹如人体的关节,连接着电气系统的血脉。然而,这些微小的部件偶尔会遭遇“烧伤”事故,是什么原因导致了这场灾难?我们又能如何避免?
    的头像 发表于 07-05 14:33 489次阅读
    是<b class='flag-5'>什么原因</b>促使250A接线端子被烧毁

    esp32s3 ota升级过程中,RGBLCD+LVGL显示异常,屏幕画面闪烁跳动是什么原因导致的?

    esp32s3 ota升级过程中,RGBLCD+LVGL显示异常,屏幕画面闪烁跳动,不进行ota升级时,LCD显示正常,这有可能是什么原因导致吗?
    发表于 06-27 08:10

    esp32-s3驱动rgb屏刷屏,花屏是什么原因

    。还有设置timings.pclk不能超过8mhz,不然就会花屏是什么原因?是esp32-s3的一些配置没有开启吗?
    发表于 06-19 06:21

    无刷直流电机原因

    不规则的出现(就好像有东西阻挡了一下,只是一瞬间的),但是电机可以正常运行,不知道是什么原因,有高手支招没有。 非常感谢大家!祝新年好。
    发表于 05-08 07:31

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

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

    提升企业组网效率:如何彻底解决网络问题

    顿成为了办公室常见的困扰,严重影响了工作效率和员工的心情。网络,你受够了吗? 网络的程度可以分为三个级别: 第一级:轻微
    的头像 发表于 04-01 17:58 890次阅读

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

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

    touchgfx4.20.0控件很多的时候严重,软件占用电脑内存非常大怎么解决?

    4.20.0升级不了4.21.4,升级出现代码错误,程序运行不起来等各种问题;目前请问下有解决4.20.0占用内存大的方法吗?不然浪费大量的时候,软件点一下就好久,根本没法用!
    发表于 03-15 08:13

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

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

    短路是什么原因造成的 igbt上下桥短路原因

    短路是什么原因造成的 igbt上下桥短路原因  短路是一种电路故障,其特点是电流绕过正常的电路路径,通过一条或多条低阻抗的路径流过。IGBT是一种常见的功率半导体器件,可用于控制和放大电流。在
    的头像 发表于 02-18 10:08 3438次阅读

    电机空转没事,带负载就转不起来是什么原因

    电机空转没事,带负载就转不起来是什么原因  电机空转没问题,但带负载无法转动可能是由于多种原因引起的。 首先,让我们了解电机的工作原理。电机是将电能转化为机械能的一种设备,它通过电磁感应原理产生转矩
    的头像 发表于 02-02 18:15 1.5w次阅读

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

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