探尋顯卡內(nèi)部的秘密
當(dāng)你看到炫目的游戲畫面時有沒有想過這些畫面都是如何渲染出來的呢?時常掛在嘴邊的顯示核心流處理器、顯存在其中又起到了什么作用呢?或許你只是偏愛游戲本身而對上邊這些問題并不關(guān)心,不過讀完本文,或許你會對游戲以及顯卡都會產(chǎn)生全新的認(rèn)識和濃厚的興趣。下面就讓我們一起來探尋顯卡內(nèi)部的秘密。
屬于顯卡的油畫
游戲畫面由一幀一幀靜態(tài)畫面組成。可以把每幀畫面比作一幅油畫。顯卡在完成這幅畫時,需要先勾邊,描繪出物體外形、尺寸等,接著再為這幅畫注入色彩,加入明暗、高光等細(xì)節(jié)。比如一個立方體木塊,顯卡要根據(jù)指令將決定它大小的八個頂點(diǎn)位置確定下來,給出它的形狀輪廓。接著顯卡需要讓這個立方體看上去像是一個木塊,根據(jù)木塊的表面形狀來進(jìn)行紋理貼圖。貼完圖后,這個木塊已基本成型,但它的表面卻沒有光澤,周圍也沒有任何陰影,非常生硬。顯卡會根據(jù)指令,確定光源的位置,然后根據(jù)光線數(shù)據(jù),計算出木塊高光部位、影子等,使它更真實(shí)生動、更有立體感。當(dāng)然實(shí)際的游戲畫面并不僅是一塊木頭,茂密的森林、澎湃的海浪以及戰(zhàn)爭場面中的大量士兵、坦克,一切一切都需要非常復(fù)雜的繪制過程。
游戲的渲染指令首先送到顯示核心,然后再做任務(wù)分配。定義頂點(diǎn)、勾勒輪廓和渲染細(xì)節(jié)這兩個過程以前是分別由顯示核心的頂點(diǎn)單元(Vertex Shader)和像素渲染管線(Pixel Shader)完成的,但進(jìn)入到DirectX 10統(tǒng)一渲染架構(gòu)時代,為了提高畫面渲染效率,頂點(diǎn)單元和渲染管線合為一體,變成了今天的流處理器(StreamProcessor),讓頂點(diǎn)架構(gòu)和細(xì)節(jié)渲染同時完成。而當(dāng)完成畫面渲染后,顯卡還需要通過ROP Domain(光柵操作單元)將顯卡渲染出的3D圖像轉(zhuǎn)化為顯示器所需的數(shù)據(jù)并由輸出接口輸出。
那么顯存又起到什么作用呢?實(shí)際上顯示核心得到的頂點(diǎn)、陰影以及畫面變化趨勢等指令最初都是從硬盤里的游戲目錄里被調(diào)入內(nèi)存再調(diào)入顯存的。顯存和內(nèi)存一樣都是指令的臨時寄存器,但顯存的帶寬優(yōu)勢使它更加高效。
流處理器數(shù)量更為重要
統(tǒng)一渲染架構(gòu)時代,流處理器數(shù)量是決定顯示核心性能的關(guān)鍵?,F(xiàn)在的顯卡大都擁有數(shù)量眾多的流處理器,而對游戲畫面的渲染任務(wù)則被有序分為多個部分,由不同的流處理器共同完成。因此,流處理器數(shù)量越多,渲染任務(wù)分配就越細(xì),渲染同樣畫面所需時間就越少,效率自然越高。雖然流處理器頻率也影響著渲染效率,但顯然它的定位并沒有流處理器數(shù)量那么高。比如,NVIDIA GeForce 9800GTX和AMDRadeon HD4850兩款定位相似,在拋開流處理器結(jié)構(gòu)和單個流處理器的效能不談的情況下,雖然9800GTX流處理器頻率是HD4850的數(shù)倍,但HD4850還是憑借800個流處理器的數(shù)量優(yōu)勢獲得了性能上的領(lǐng)先。所以消費(fèi)者購買顯卡時應(yīng)該以顯示核心流處理器數(shù)量作為考慮的出發(fā)點(diǎn),當(dāng)然頻率越快越好。
顯存容量同樣不容忽視
顯存帶寬計算公式是:顯存頻率×位寬/8。例如Radeon HD4850的顯存頻率為2200MHz,位寬為256bit,那么它的顯存帶寬就是2200x256/8=70.4GB/s。顯存的頻率和顯存的位寬決定了顯存在單位時間內(nèi)能夠傳輸?shù)臄?shù)據(jù)量,因此顯存的頻率和位寬對顯卡性能的影響是非常大的。那么顯存容量大小又有何意義呢?游戲的頂點(diǎn)架構(gòu)、陰影模式、光照強(qiáng)度等指令數(shù)據(jù)都是先從硬盤里調(diào)入內(nèi)存,然后再調(diào)入顯存的,由于顯存帶寬要比內(nèi)存帶寬高很多,因此顯示核心調(diào)用顯存里的數(shù)據(jù),肯定會比調(diào)用內(nèi)存快得多。如果顯示核心在顯存里找不到所需數(shù)據(jù)才會訪問效率更低的內(nèi)存。大容量顯存的意義在于使顯卡在游戲渲染過程中盡量少去訪問效率更低的數(shù)據(jù)寄存器,以保證高效渲染?,F(xiàn)在的大型3D游戲的渲染愈發(fā)復(fù)雜,也就需要更加龐大的渲染指令數(shù)據(jù)。所以顯存頻率和位寬固然重要,但顯存容量同樣不容忽視。
不過這也要視顯卡規(guī)格而定,類似GeForce 9500GT這樣的低端顯卡,核心處理速度并不快,顯存中裝再多的數(shù)據(jù)也是浪費(fèi),配備512MB或者1GB的大顯存沒有意義。而類似RadeonHD4850或者是更高端的Radeon HD4870、GeForce GTX260,1GB甚至更多的顯存都是有必要的,因為用戶不可能用這么好的顯卡在1024×768低畫質(zhì)條件下玩游戲,更高的分辨率、更多的游戲特效都需要得到大容量顯存的支持。