我的電腦配置很高,玩游戲還經(jīng)??D,原來(lái)是著色器編譯的問(wèn)題
為了讓自己的游戲體驗(yàn)更好,許多玩家都喜歡時(shí)不時(shí)地升級(jí)一下運(yùn)行平臺(tái)的配置。不過(guò),大家有時(shí)候會(huì)發(fā)現(xiàn):不管自己的電腦如何強(qiáng)大,在玩一些游戲的時(shí)候依舊會(huì)遇到卡頓。這是怎么回事呢?在確保硬件方面沒(méi)有任何問(wèn)題的前提下,游戲卡頓問(wèn)題可能是“著色器編譯”的過(guò)程導(dǎo)致的,而這個(gè)問(wèn)題在如今的PC游戲領(lǐng)域里非常普遍,博士帶大家來(lái)看看。

大伙家里的PC硬件千差萬(wàn)別,特別是顯卡,因此游戲需要“著色器編譯”這一流程才能在不同品牌、型號(hào)的顯卡上運(yùn)行。由于各種各樣的原因,上述的編譯過(guò)程難免就會(huì)出錯(cuò),導(dǎo)致游戲卡頓。那么,有人問(wèn)了,著色器是什么?其實(shí)這是一種用來(lái)幫助確認(rèn)渲染圖形各種細(xì)節(jié)的電腦程序,游戲開(kāi)發(fā)人員需要這玩意來(lái)提升游戲畫(huà)面和表現(xiàn)。

比如:一款游戲里有天氣系統(tǒng),當(dāng)下雨的時(shí)候,開(kāi)發(fā)人員想讓游戲中的各處細(xì)節(jié)有濕潤(rùn)的外觀,就可以使用特殊的著色器來(lái)實(shí)現(xiàn),不需要自己親手在某件物品上去打造水漬。由此可見(jiàn),所謂的著色器可以讓GPU的使用更加靈活且效率,一定程度上取代了之前的固定渲染管道(Fixed-Function Pipeline)技術(shù)。

至于編譯的話,其實(shí)就是一個(gè)電腦術(shù)語(yǔ),指的是將工程師編寫(xiě)的程序代碼轉(zhuǎn)換后,讓運(yùn)行軟件的特定處理器得以理解并執(zhí)行。而著色器程式代碼也必須編譯成在特定GPU品牌和型號(hào)上運(yùn)作的內(nèi)容,顯卡才能運(yùn)作,這就是上述的“著色器編譯”。如果更換GPU、更新驅(qū)動(dòng)或者游戲收到更新時(shí),我們就必須對(duì)著色器重新編譯。

舉個(gè)簡(jiǎn)單的例子,我們可以將各品牌、型號(hào)的GPU想象成不同國(guó)籍的人,你說(shuō)的語(yǔ)言需要翻譯成他們能懂的語(yǔ)種,他們才能理解。而有補(bǔ)充說(shuō)明的時(shí)候,你自然需要重新翻譯一次。那么,為何有些電腦游戲會(huì)出現(xiàn)著色器編譯卡頓呢?這個(gè)就和開(kāi)發(fā)人員的具體工作有關(guān)了。

目前有些開(kāi)發(fā)者致力于最佳化編譯過(guò)程,使之對(duì)游戲性能(幾乎)沒(méi)有影響,換而言之,翻譯人員需要傳達(dá)的內(nèi)容很簡(jiǎn)潔,不管哪種顯卡都能“聽(tīng)懂”,自然不會(huì)卡頓;而有些開(kāi)發(fā)者在游戲中大量使用著色器,甚至是濫用,使得電腦在編譯時(shí)壓力很大,以至于卡頓成為了一個(gè)問(wèn)題!

看到這里,我們也可以理解:游戲主機(jī)就不會(huì)出現(xiàn)著色器編譯卡頓的問(wèn)題。擁有游戲主機(jī)的硬件是固定的,開(kāi)發(fā)者只需要針對(duì)特定項(xiàng)目來(lái)預(yù)編譯所有著色器(濫用都無(wú)所謂),無(wú)需在本機(jī)系統(tǒng)上因?yàn)槊總€(gè)玩家硬件不同而分別編譯。既然知道了上述原理,我們有什么辦法去處理上述卡頓呢?博士告訴大伙:很不幸,這種問(wèn)題只能由開(kāi)發(fā)者來(lái)修復(fù)。而好消息是:隨著游戲開(kāi)發(fā)工具的進(jìn)步,著色器編譯卡頓問(wèn)題會(huì)有所改善。