《星空問(wèn)答》做到以下幾點(diǎn),褒姒黨將贏得比賽。盤點(diǎn)星空Starfield中的...

cpu影響幀數(shù)這個(gè)情況,對(duì)于經(jīng)常接觸模擬經(jīng)營(yíng)類(星露谷物語(yǔ)等),工廠流水線類(異星工廠,戴森球計(jì)劃等),開(kāi)放世界類(塞爾達(dá),MC)游戲的玩家應(yīng)該很熟悉.在這些游戲中,除了顯卡的渲染幀(FPS)以外,還有一個(gè)被稱為邏輯幀的事物,這就是CPU的運(yùn)算幀數(shù).
ps:以下內(nèi)容假設(shè)顯卡性能無(wú)限,瞬間即可渲染畫(huà)面
首先要明確一個(gè)概念,顯卡渲染的畫(huà)面不是憑空得來(lái)的,畫(huà)面也是數(shù)據(jù),原始數(shù)據(jù)有一個(gè)源頭,這個(gè)源頭就是cpu,是cpu準(zhǔn)備了待渲染的數(shù)據(jù)發(fā)給顯卡,顯卡才能進(jìn)行渲染,如果cpu罷工不給顯卡發(fā)待渲染數(shù)據(jù),那顯卡就不會(huì)進(jìn)行畫(huà)面渲染,一定要理解這個(gè)主次關(guān)系.
接下來(lái)是第二條概念,游戲內(nèi)的時(shí)間.就算是沒(méi)接觸過(guò)產(chǎn)線經(jīng)營(yíng)游戲的玩家,看過(guò)生化危機(jī)的應(yīng)該也知道一個(gè)概念:120幀的小刀傷害是60幀的兩倍,這就是因?yàn)樾〉兜膫瓦壿嫀瑨煦^了,在固定經(jīng)過(guò)幾個(gè)邏輯幀后造成一次傷害,那么對(duì)于我們?nèi)藖?lái)說(shuō),我們所習(xí)慣的以秒計(jì)時(shí)對(duì)應(yīng)到這種以每秒多少幀計(jì)時(shí),就產(chǎn)生了每秒傷害更高的效果.
常規(guī)游戲主機(jī)鎖30幀電腦鎖60幀,換算一下,每1秒(s)是1000毫秒(ms),那1000÷30≈33.33ms,1000÷60≈16.67ms,畢竟主機(jī)的cpu性能差嘛,那只要給cpu更多的運(yùn)算時(shí)間,只要cpu在33.33ms時(shí)間內(nèi)準(zhǔn)備好了這一幀的內(nèi)容,那顯卡就可以去渲染這一幀,如果cpu每一次工作都可以在33ms之內(nèi)完成,那顯卡也就可以穩(wěn)定30幀了,普通電腦同理,只要cpu能在16.67ms以內(nèi)完成工作,顯卡就可以穩(wěn)定渲染60幀.這也就解釋了為什么某些聯(lián)機(jī)游戲,一個(gè)人卡了大家都卡,因?yàn)橐腥说碾娔X的cpu都進(jìn)行完邏輯計(jì)算,與服務(wù)器交換完數(shù)據(jù),畫(huà)面才會(huì)交到你本人的顯卡里,所有聯(lián)機(jī)玩家的cpu下限決定了你幀數(shù)的上限.
接下來(lái)產(chǎn)生了兩個(gè)問(wèn)題:為什么很多3A大作我們不用關(guān)注邏輯幀只關(guān)注渲染幀?為什么星空就需要關(guān)注渲染幀?
這就是我們老生常談的:優(yōu)化!
普通3A大作會(huì)優(yōu)化畫(huà)面的表現(xiàn),優(yōu)化游戲所有的邏輯,甚至犧牲掉你看不到細(xì)節(jié),來(lái)保證cpu能夠滿邏輯幀運(yùn)行,那瓶頸自然來(lái)到了顯卡上.舉個(gè)簡(jiǎn)單的例子:在只狼中,我們知道佛像會(huì)發(fā)藍(lán)光,光線模擬是一個(gè)非常耗費(fèi)資源的運(yùn)算.而實(shí)際游戲中,如果你使用第三方外掛刪除掉游戲里的佛像的模型,會(huì)發(fā)現(xiàn)周圍環(huán)境依然有"光",這就是預(yù)渲染優(yōu)化技術(shù),首先創(chuàng)建一個(gè)擬真光源,將光投射到周圍模型上去,然后獲取模型被光照射后受到影響的顏色,把這個(gè)后處理顏色直接替換掉周圍模型原本的材質(zhì)顏色,那到了實(shí)際的游戲中,cpu就不需要去計(jì)算這個(gè)光線和光照效果了,因?yàn)?#34;光"已經(jīng)被預(yù)先"畫(huà)"到周圍環(huán)境里了(反正也不需要表現(xiàn)一個(gè)丁達(dá)爾效應(yīng)不是么).很多類似的優(yōu)化技術(shù)疊加起來(lái),cpu減少了計(jì)算,自然就能維持一個(gè)滿幀的邏輯幀.
接下來(lái)說(shuō)星空:這個(gè)游戲更偏向一個(gè)強(qiáng)邏輯性游戲,當(dāng)你在一個(gè)星球上探索的時(shí)候,你仰望星空,你沒(méi)有到達(dá)的星球也始終在運(yùn)行,但你甚至看不到那個(gè)星球,顯卡不會(huì)去渲染那個(gè)星球,但它在運(yùn)行,它在計(jì)算,它在占用你的cpu.這游戲還支持建造,那當(dāng)你在某一個(gè)星球上放下了1臺(tái)生產(chǎn)設(shè)備,你離開(kāi)了,設(shè)備還在運(yùn)轉(zhuǎn),同樣的你看不到顯卡不渲染但cpu在運(yùn)算.更進(jìn)一步,當(dāng)你在星球上放下了100臺(tái)設(shè)備?當(dāng)你放下了1w臺(tái)設(shè)備?你的cpu還扛得住運(yùn)算量么?普通3A大作里所有的場(chǎng)景都是制作組安排好的,你不能讓某石頭消失來(lái)減輕運(yùn)算也不能讓某個(gè)樹(shù)長(zhǎng)起來(lái)增加運(yùn)算.星空顯然不是這樣的,你可以改造星球,游戲會(huì)記住你的改造,這部分就會(huì)反映到cpu的運(yùn)算負(fù)載提升,反應(yīng)你存檔大小的增加(點(diǎn)名戴森球,后期存檔大小輕松突破20g保存一次耗時(shí)極高).當(dāng)你對(duì)世界做了過(guò)多的改變,cpu運(yùn)算量逐漸增加,最終會(huì)不堪重負(fù),cpu可能100ms甚至1s才能完成1幀的計(jì)算,這時(shí)候你的顯卡再怎么強(qiáng)大,它也只能每秒接受1幀的畫(huà)面渲染工作了.這就是最最典型的cpu滿載顯卡摸魚(yú)的情況.
接下來(lái)是題外話.
星空作為一個(gè)有較為自由的環(huán)境交互的游戲,顯卡的壓力比普通3A也要大很多.最明顯的一點(diǎn)就是它有晝夜交替,那就表示這個(gè)游戲你能看到所有的物體都要進(jìn)行實(shí)時(shí)光影運(yùn)算,預(yù)渲染只能解決沒(méi)有晝夜交替的游戲中的固定光源的場(chǎng)景,只要你換個(gè)光源立刻就露餡了,實(shí)時(shí)光源對(duì)顯卡是一個(gè)很大的壓力,所以高畫(huà)質(zhì)下這游戲?qū)︼@卡要求會(huì)極高,爆顯存估計(jì)輕輕松松.
第二個(gè)題外話是amd有難了,強(qiáng)邏輯游戲的數(shù)據(jù)交換量極大,這對(duì)cpu內(nèi)部數(shù)據(jù)交換速度,cpu與顯卡數(shù)據(jù)交換速度,CPU與內(nèi)存交換速度,都有非常要的要求,amd的if總線速度嚴(yán)重限制了amd在此類游戲上的發(fā)揮,甚至多ccd設(shè)計(jì)的處理器會(huì)出現(xiàn)一個(gè)ccd滿載其它c(diǎn)cd摸魚(yú)的情況,夢(mèng)回推土機(jī)時(shí)代1核有難7核圍觀,這只能期待制作組的優(yōu)化了,反正win10和win11的系統(tǒng)調(diào)度解決不了這個(gè)問(wèn)題.然后就是如果制作組不做特別優(yōu)化的情況下,有無(wú)3d緩存幾乎沒(méi)有區(qū)別.
最后就是強(qiáng)邏輯游戲,cpu要強(qiáng),怕出問(wèn)題就只能高價(jià)買intel,內(nèi)存頻率要高時(shí)序要低運(yùn)行要穩(wěn)定,如果你還想要點(diǎn)畫(huà)質(zhì)那顯卡也要好,總之要一個(gè)水桶機(jī)才能有最好的體驗(yàn),低u高顯的單機(jī)玩家也有難了.