一、概述
這篇文章主要講解渲染管線(rendering pipeline)的理論知識。
渲染管線是指:在給定一個(gè)3D場景的幾何描述及一架已確定位置和方向的虛擬攝像機(jī)(virtual camera)時(shí),根據(jù)虛擬攝像機(jī)的視角生成2D圖像的一系列步驟。
下圖所示為構(gòu)成渲染管線的各個(gè)階段,以及與各個(gè)階段相關(guān)的內(nèi)存資源。
從上圖中我們可以看到,渲染管線就像工廠中的流水線,把各個(gè)處理過程分成不同的階段,各個(gè)階段可以獨(dú)立工作,這樣,各個(gè)階段就可以同時(shí)工作,效率自然就會比較高。3D渲染從最初的場景描述到最終的顯示結(jié)果,這整個(gè)過程就是在3D渲染管線中完成的。
這篇文章中,我們將詳細(xì)講解D3D11中渲染管線的各個(gè)階段。
二、渲染管線的各個(gè)階段
2.1 輸入裝配階段
輸入裝配(Input Assembler,簡稱IA)階段從內(nèi)存讀取幾何數(shù)據(jù)(頂點(diǎn)和索引)并將這些數(shù)據(jù)組合為幾何圖元(例如,三角形、直線)。我們通過指定圖元拓?fù)鋪砀嬖VDirect3D以何種方式組成幾何圖元。D3D11中常見的拓?fù)漕愋陀幸韵聨追N:
(1)點(diǎn)列表(point list):每個(gè)頂點(diǎn)都會被繪制為一個(gè)獨(dú)立的點(diǎn),如下圖:
(2)線帶(line strip):前后相鄰的兩個(gè)頂點(diǎn)會形成一條直線,如下圖:
網(wǎng)友評論