在近几年的游戏世界中,无论是单机游戏还是网络游戏,无论是手机还是PC平台,玩家们经常会遇到一个令人沮丧的进度条——“正在编译着色器…”这一过程不仅让人感到漫长,甚至还可能导致游戏闪退,成为了许多玩家心中的痛点。回想去年《黑神话:悟空》刚发布时,网络上充满了调侃,很多玩家在等待游戏开始之前,就已经经历了九九八十一难,第一难是解压游戏,等待的时间从十几分钟到几个小时不等;第二难便是着色器的编译,许多人在这个阶段卡住了,无法继续游戏。
举个例子,我手机中有一款二次元射击游戏《尘白禁区》,虽然平时进行日常任务只需不到一分钟,但每次登录时,都会在“正在编译着色器”的界面上卡顿,进度条缓慢跳动,CPU的使用率直线上升,手机也变得异常发热。更令人焦虑的是,如果不小心触发锁屏,进度条可能会停止,让人捏一把冷汗。
如今的手游大多都实现了PC与手机双端的画面,随着画质的提升,编译着色器的问题也愈发突出。无论是《鸣潮》还是《原神》,众多玩家在网上纷纷吐槽这一问题。而华为的鸿蒙NEXT系统因其原生《原神》编译着色器的速度极快,仅需三分钟,甚至被某些UP主称为“黑科技”。
那么,着色器究竟是什么呢?
01 着色器的基本概念
着色器(Shader)是一段运行在GPU(图形处理器)上的代码,负责计算每个像素的光照、颜色、纹理等效果。简单来说,着色器就像是GPU的“使用说明书”,它指引着GPU如何渲染游戏中的画面。如果这本说明书出现问题,玩家们可能会看到各种奇怪的画面,例如场景加载不出来、角色模型变得漆黑一片,甚至眼睛变成诡异的紫色。
02 编译着色器的原因
那么,为什么会出现“下载十分钟、编译半小时”的情况呢?这与每位玩家的硬件配置有很大关系。显卡型号、驱动版本、游戏版本乃至操作系统,只要其中一个变量发生变化,之前的说明书对你的机器来说就成了“天书”。因此,当玩家第一次启动游戏或更新驱动后,CPU需要根据当前的环境进行现场“翻译”,将程序员编写的代码转化为机器能理解的二进制指令,这个过程就叫作“编译着色器”。
新游戏的图形API通常是DX12或Vulkan,这些新API引入了PSO缓存技术,可以在一定程度上提高运行性能,因此玩家可以肉眼看到“编译着色器”的过程。而较老的游戏使用DX11、DX10或OpenGL等API则不需要进行这样的编译,因为它们的画质较低,CPU可以在运行时顺带完成这项工作。
然而,一些开发商在更新图像处理时并不会在公告中明确说明,默默进行热补丁,这就会导致重新编译着色器,典型的例子就是《APEX英雄》。我有个朋友的老旧电脑,每次进入游戏前都要编译十分钟,再读十分钟地图,结果在等待的过程中,敌人影都没见着,半个小时过去了。
有些游戏则支持“后台编译”或“先跳过,后续手动编译”的选项,但如果优化不到位,玩家可能会遇到各种诡异的BUG。例如在PC版《使命召唤》中,左上角的“着色器预载XX%”进度条常常让人感到恶心,加载缓慢且经常卡住,若不加载完毕又不敢进入匹配,生怕中途冒出“着色器优化”警告弹窗,导致游戏崩溃。很多玩家甚至在网上流传了一些“玄学”方法,比如反复点击匹配再取消,或者在靶场挂机等待加载完成。
03 如何应对漫长的等待
面对漫长的编译等待,玩家们能做的并不多,主要取决于开发者、软件及硬件的优化。例如,Steam设置中的“着色器预缓存”功能,旨在让同配置的其他玩家编译好的着色器上传,供你直接下载,从而跳过编译过程。然而,这一功能在主流的Windows游戏中效果有限,常常因为连接超时反而导致启动变慢,建议PC玩家直接关闭。
此外,NVIDIA控制面板中有“着色器缓存大小”的设置,通常默认只有512MB,这样会导致动态编译的游戏在切换时抢占空间。将其设置为较高的缓存大小(例如5GB以上或无限制)可以缓解一部分重复编译带来的卡顿,但需要注意硬盘空间的占用。
最近,微软在ROG Xbox Ally掌机上推出了“云端编译着色器”技术,旨在将编译任务转移到云端处理,减少电池消耗并避免风扇发出噪音。此外,微软还推出了“高级着色器交付”功能,允许游戏下载时预加载着色器,减少首次运行时的卡顿,已经在《崩坏:星穹铁道》中得到应用。这一系列措施表明,编译着色器所花费的时间和额外功耗已成为一个痛点,开发者们正在竭尽全力为玩家提供更流畅的游戏体验。
04 主机游戏的优势
与PC相比,PS5或Xbox等游戏主机在这方面就省事多了。由于硬件规格高度统一,厂商可以直接预编译一份“标准说明书”随游戏分发,几乎不需要重新编译的烦恼。这也是我认为主机相比PC的一个优势:即下即玩,不必经历繁琐的等待。
当然,这种设计也成为了模拟器的痛点。在使用Yuzu、Ryujinx等Switch模拟器的玩家中,常常会遇到游戏刚开始或进入新区域时的卡顿,这种现象存在已久,归根结底是着色器编译的问题。复杂的Switch游戏,如《塞尔达传说:王国之泪》,更是频繁出现帧数暴降的情况。一般情况下,模拟器在游戏进行3至5小时后,自动记录大多数着色器,后续再重开游戏时,才能实现更流畅的体验。
如果你正经历频繁的卡顿,首先不要慌张——着色器缓存正在努力改善你的游戏体验,而这个改善过程恰恰也成为了糟糕体验的来源。我们能做的,就是避免频繁更换显卡驱动、重新安装系统或卸载重装游戏等不必要的操作,保持正常游戏即可。希望游戏开发者们也能在热更新时更加谨慎,减少不必要的麻烦。返回搜狐,查看更多