◤智创脉动◢打机电脑卡顿?这程式惹祸啦! | 中國報 China Press
  • 告别式
  • ADVERTISEMENT

    ADVERTISEMENT

    ADVERTISEMENT

    ADVERTISEMENT

    ◤智创脉动◢打机电脑卡顿?这程式惹祸啦!

    有没有遇过玩时遇到卡顿,以为是配置问题,但换了更先进和高档的,问题依旧出现……

    ADVERTISEMENT

    ADVERTISEMENT

    许多玩家为了让自己的体验更好,就会入手非常高配置的,但玩时依然会遇到卡顿状况,相信这时候的玩家肯定怒气冲天,打算订购最新处理器或显卡!


    稍安毋躁,遇到这个问题,大家不用急着排查故障,首先观看一下上方是否有“着色器编译”(Shader Compilation)这行字,或许这就是导致你卡顿的罪魁祸首了。

    许多卡顿问题,皆由“着色器编译”的过程所引起,而这问题在领域中日益严重。

    由于每台的显卡都不同,因此,需要着色器编译,才能在不同品牌、型号的显卡上运行,在这编译的过程中,难免会有出错,导致卡顿。


    看到这里,相信大家会问“着色器”到底什么东西?

    何谓着色器?

    着色器其实这是一种用来帮助确认渲染图形各种细节的程式,工程师需要这工具来提升画面和表现。

    例如,像素着色引擎(Pixel shaders,)用来计算像素的属性,这包括该像素的颜色、亮度、反射率和透明度等。

    里有天气系统,要呈现下雨的特效时,工程师想让中的各处细节有湿润的外观,就可以使用特殊的着色器来实现,不需要自己亲手在某件物品上去打造水渍。

    由此可见,所谓的着色器,可以让GPU(Graphics Processing Unit,图形处理器)的使用,更加灵活且有效率,一定程度上,取代了之前的固定渲染管道(Fixed-Function Pipeline)技术。

    阅读更多精彩文章 马上浏览独家配套

    何谓着色器编译?

    “编译”是一个术语,指的是将工程师编写的程式码转换后,让运行相关软件的特定处理器得以理解并执行,例如,你可以编译程式码在Intel处理器或Apple晶片上运行。

    同样的事情对于GPU也是必要的,着色器程式码必须编译成在特定 GPU品牌和型号上运作,如果更换GPU、更新驱动(Driver Update)或更新时,就必须对着色器重新编译。

    简单来说,你可以将各品牌、型号的GPU,想像成不同国籍的人,将你说的语言,翻译成他们能懂的语种;当你有补充说明时,就得重新翻译一次,让它们更清楚你的意思。

    那么,为何有些会出现着色器编译卡顿呢?这个就和开发人员的具体工作有关了。

     

    为何有些会出现着色器编译卡顿问题?

    有些开发者致力于优化编译过程,使它对性能没有影响;换而言之,翻译人员需要传达的内容,必须要很简洁,不管哪一种GPU都能“听懂”,这样就不会出现卡顿状况。

    但是,有些开发者在中大量使用着色器,甚至是滥用,又或许因为赶工因素,没有时间对着色器编辑做优化,这样玩家就容易遇到着色器编译占用资源大,导致卡顿的问题。


    编译卡顿的情况在“虚幻引擎4”(Unreal Engine 4)构建的中,尤其严重。

    具体来说,在DirectX 12下运行时,这些卡顿会成为一个问题,这是因为DirectX 12改变了着色器编译的运作方式,将更多的控制权交给了开发人员;同时,这也表示,开发者可能没有使用最新和最进步的DirectX版本,确认最佳化着色器编译的方式。

    如何解决着色器编译问题?

    令人遗憾的是,玩家并没有太多办法主动来解决着色器编译带来的卡顿。只能寄望于开发者在制作之初,对于有用心的优化。对于着色器编译卡顿,玩家能做的相当有限,但其中一些可能会稍微有点帮助:

    ⊙ 如果有允许你预先做着色器优化,那么静待着色器优化完成后,再玩

    ⊙ 延后GPU驱动程式的更新,直到你完成当前进度,这能避免再次触发编译导致卡顿。

    ⊙ 当中开始卡顿时,暂停,并等待一会儿,让它执行完毕再继续。

    ⊙ 选择玩DirectX 11而不是DirectX 12版本的,着色器卡顿的状况会减少或不存在,但会失去DirectX 12的某些功能。


    现在新一代的显卡厂商也意识到着色器编译给玩家所带来的问题,于是在这方面带来了技术上的优化。

    如果你下次玩时,发现明明自己配置足够,玩开始时还是有卡顿的问题,无需担心是否是自己配置不够,等到的着色器优化完成后就,可以流畅玩了。

    主机上,为何不会有着色器编译卡顿问题?

    着色器编译问题,在PS5和Xbox Series X/S等中,完全不存在。

    这是因为主机内部的硬体是固定的,开发者只需要针对特定项目来预编译所有着色器,无需在本机系统上因为每个玩家硬体不同而分别编译。

     

    ※图:互联网

    ADVERTISEMENT

    ADVERTISEMENT

    *本網站有權刪除或封鎖任何具有性別歧視、人身攻擊、庸俗、詆毀或種族主義性質的留言和用戶;必須審核的留言,或將不會即時出現。

    ADVERTISEMENT


    ADVERTISEMENT

    ADVERTISEMENT

    ADVERTISEMENT

    ADVERTISEMENT

    ADVERTISEMENT

    ADVERTISEMENT

    ADVERTISEMENT