當前位置: 華文問答 > 遊戲

對於不同類別的遊戲,提升畫質或幀率,分別對應增加負載偏向於CPU還是顯卡?其中對應相關部份具體原理?

2023-08-07遊戲

這個問題的答案其實取決於遊戲的類別。對於目前的電腦架構來說,遊戲對電腦的所有硬件都有相當重的負載:

  • CPU 主要負責處理遊戲邏輯,處理遊戲的網絡通訊和與GPU進行數據上的溝通。這部份的負載相對較小。在一些最新的遊戲中,CPU可能也會需要負責一部份渲染(軟光柵著色/遮擋剔除等)。
  • 外存 主要負責將遊戲場景中所需要的資源傳入記憶體/視訊記憶體。考慮到目前的硬件水平,我們無法將一個遊戲中的所有資源都不經壓縮地放進記憶體或者視訊記憶體中。一個樸素的理解是,我們只去載入「可以看見」的東西。當我們的人物在場景中移動時,不斷出現的新的場景以及物體會需要從外存中載入得到的新的資源。
  • 記憶體和視訊記憶體 主要負責儲存從外存中讀到的東西。記憶體的壓力相對較低,主要為了遊戲邏輯提供資源以及為視訊記憶體提供交換區。視訊記憶體的壓力更大,它需要以極高的頻寬為渲染管線中的每一次隨機紋理采樣提供數據,每一幀會進行數十次到數千次的紋理采樣,而每一秒都有著數十幀甚至數百幀。當然,視訊記憶體也有著自己的緩存加速。
  • 顯卡 負責大部份的渲染。一般的渲染管線包含 頂點著色器 (vertex shader,VS),進行(相當多次的)矩陣運算; 像素著色器 (pixel shader,PS)或 片元著色器 (fragment shader,FS)計算螢幕上每個點顏色是什麽。這些著色器曾經是硬件概念,有著自己的專屬硬件;但是在近些年的顯卡架構中逐漸成為軟件概念,頂點和像素著色器使用相同的硬件單元。以現代的角度來看,著色器是一個並不合適的名字:它並不是為像素「著色」的「機器」,而是一種通用的、有著極高並列度的計算單元。當然,還有著其他類別的著色器。現代的顯卡是一種綜合硬件,因此還提供了AI加速器(tensor core,張量小算盤)和光線追蹤加速器(RT core,光線追蹤單元,提供光線追蹤加速結構的構建)。
  • 上面的內容是一個樸素的電腦結構科普。回到題目中的問題,我們可以總結出幾種情況:

  • 提升 畫質 ,比如在設定選單將所有選項都從極低變為極高。這些選項的變動可能會引起一幀中更多的render pass,VS中稍多的頂點計算,PS中更多的采樣和運算。總體來說,提升畫質主要影響對顯卡的需求,視訊記憶體和PS的壓力都會極大增加,而VS的壓力會稍許增加。
  • 提高 分辨率 ,比如從1080P變為2160P。VS的壓力取決於可見三角面片的數量,所以壓力不會增大。而對於PS,需要著色的像質數量變為4倍,一般也意味著其執行時間變為4倍長。在CPU端,遊戲邏輯的處理與分辨率關系並不大,但是由CPU運算的軟光柵會更耗時。
  • 提升 幀率 。幀率是一個被動的變量而不是輸入,一般取決於你的硬件上限。在這裏假設一款遊戲從(你手動鎖死的)30幀升到60幀。在顯卡端,VS、PS和視訊記憶體的壓力都成倍增加,在60幀下的運算量/吞吐量是30幀下的兩倍;在CPU端,遊戲邏輯的tick可以和幀率分離也可以和幀率繫結,所以對CPU端的影響可大可小。
  • 在許多遊戲社區中都流行著這樣一種說法:低分辨率吃CPU,高分辨率吃顯卡。結合以上分析,這一說法相對合理,CPU的壓力與分辨率的關系並不大,所以在低分辨率的條件下,顯卡的壓力相對更小,CPU可能成為瓶頸。