GPU的工作原理是什么?渲染幾個(gè)階段流程介紹
圖形處理器GPU將是下述內(nèi)容的主要介紹對(duì)象,通過(guò)這篇文章,小編希望大家可以對(duì)圖形處理器GPU的相關(guān)情況以及信息有所認(rèn)識(shí)和了解,詳細(xì)內(nèi)容如下。
一、GPU的工作原理
在GPU出現(xiàn)以前,顯卡和CPU的關(guān)系有點(diǎn)像“主仆”,簡(jiǎn)單地說(shuō)這時(shí)的顯卡就是畫(huà)筆,根據(jù)各種有CPU發(fā)出的指令和數(shù)據(jù)進(jìn)行著色,材質(zhì)的填充、渲染、輸出等。
那么,GPU的工作原理是什么?
簡(jiǎn)單的說(shuō)GPU就是能夠從硬件上支持T&L(Transform and Lighting,多邊形轉(zhuǎn)換與光源處理)的顯示芯片,因?yàn)門(mén)&L是3D渲染中的一個(gè)重要部分,其作用是計(jì)算多邊形的3D位置和處理動(dòng)態(tài)光線效果,也可以稱(chēng)為“幾何處理”。一個(gè)好的T&L單元,可以提供細(xì)致的3D物體和高級(jí)的光線特效;只不過(guò)大多數(shù)PC中,T&L的大部分運(yùn)算是交由CPU處理的(這就也就是所謂的軟件T&L),由于CPU的任務(wù)繁多,除了T&L之外,還要做內(nèi)存管理、輸入響應(yīng)等非3D圖形處理工作,因此在實(shí)際運(yùn)算的時(shí)候性能會(huì)大打折扣,常常出現(xiàn)顯卡等待CPU數(shù)據(jù)的情況,其運(yùn)算速度遠(yuǎn)跟不上今天復(fù)雜三維游戲的要求。主機(jī)總線接口模塊收到來(lái)自PCI總線的讀寫(xiě)操作,包括對(duì)寄存器的讀寫(xiě)操作和對(duì)顯示存儲(chǔ)的讀寫(xiě)操作,完成對(duì)寄存器的初始化后,基本圖形模式能夠正常輸出顯示。打開(kāi)視頻采集寄存器后能夠?qū)崟r(shí)采集顯示視屏圖像窗口。
即使CPU的工作頻率超過(guò) 1GHz或更高,對(duì)它的幫助也不大,由于這是PC本身設(shè)計(jì)造成的問(wèn)題,與CPU的速度無(wú)太大關(guān)系。
二、實(shí)例闡述GPU渲染流程
下面以繪制一朵玫瑰為例來(lái)說(shuō)明GPU圖形流水線的工作流程。
首先,GPU從顯存讀取描述玫瑰3D外觀的頂點(diǎn)數(shù)據(jù),生成一批反映三角形場(chǎng)景位置與方向的頂點(diǎn);
由vertex shader計(jì)算2D坐標(biāo)和亮度值,在屏幕空間繪出構(gòu)成玫瑰的頂點(diǎn);
頂點(diǎn)被分組成三角形圖元;
geometry shader進(jìn)行進(jìn)一步細(xì)化,生成更多圖元;
隨后,GPU中的固定功能單元對(duì)這些圖元進(jìn)行光柵化,生成相應(yīng)的片元集合;
由pixel shader從顯存中讀取紋理數(shù)據(jù)對(duì)片元上色和渲染;
最后一個(gè)階段,根據(jù)片元信息更新玫瑰圖像,主要是可視度的處理。
由ROP完成像素到幀緩沖區(qū)的輸出,幀緩沖區(qū)中的數(shù)據(jù)經(jīng)過(guò)D/A輸出到顯示器上以后,就可以看到繪制完成的玫瑰圖像了。
圖形渲染過(guò)程具有內(nèi)在的并行性:頂點(diǎn)之間、圖元之間、片元之間的數(shù)據(jù)相關(guān)性很弱,對(duì)它們的計(jì)算可以獨(dú)立并行進(jìn)行。這使得通過(guò)并行處理提高吞吐量成為可能。
首先,渲染流水線具有時(shí)間上的功能并行。流水線的各級(jí)可以同時(shí)工作,當(dāng)各級(jí)都能滿負(fù)荷工作時(shí),能夠獲得最高性能。
其次,渲染流水線具有數(shù)據(jù)并行性。不僅可以通過(guò)SIMD提高每一個(gè)可編程著色器的性能,還可以在一個(gè)GPU內(nèi)集成多條渲染流水線實(shí)現(xiàn)更高的吞吐量。
總結(jié)一下,GPU渲染流程可以概括為以下內(nèi)容:
1.頂點(diǎn)生成
2.頂點(diǎn)處理
3.圖元生成
根據(jù)應(yīng)用程序定義的頂點(diǎn)拓?fù)溥壿?,把上階段輸出的頂點(diǎn)組織起來(lái)形成有序的圖元流。頂點(diǎn)拓?fù)溥壿嫸x了圖元在輸出流中的順序,一個(gè)圖元記錄由若干頂點(diǎn)記錄組成。
4.圖元處理
5.片元生成
這一階段將對(duì)每一個(gè)圖元在屏幕空間進(jìn)行采樣,即光柵化。每一個(gè)采樣點(diǎn)對(duì)應(yīng)一個(gè)片元記錄,記錄該采樣點(diǎn)在屏幕空間中的位置、與視點(diǎn)之間的距離以及通過(guò)插值獲得的頂點(diǎn)屬性等。
6.片元處理
片元處理階段是可編程的,由pixel shader完成,主要完成圖形的填色功能。模擬光線和物體表面的交互作用,決定每個(gè)片元的顏色及透明程度等屬性。
7.像素操作
最后,小編誠(chéng)心感謝大家的閱讀。你們的每一次閱讀,對(duì)小編來(lái)說(shuō)都是莫大的鼓勵(lì)和鼓舞。希望大家對(duì)圖形處理器GPU已經(jīng)具備了初步的認(rèn)識(shí),最后的最后,祝大家有個(gè)精彩的一天。