

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、《RealtimeRendering》翻譯——葉將暉第二章第二章圖形渲染管線圖形渲染管線“鏈條的牢固水平取決于它最單薄的環(huán)節(jié)。”—Anonymous在這章一開始我們將會(huì)介紹稱為圖形渲染管線(graphicsrenderingpipeline)的組成,其中圖形渲染管線也被簡(jiǎn)稱為管線。管線的功能主要有生成、渲染、二維圖像、獲取虛擬攝影機(jī)、三維對(duì)象、光源、著色方程、紋理等。在實(shí)時(shí)渲染中渲染管線是最主要的工具。在圖2.1中描繪了運(yùn)用管線的過程。
2、對(duì)象的位置、形狀以及在環(huán)境中的特征與在這環(huán)境中攝影機(jī)的位置都由它們的幾何所決定。一個(gè)對(duì)象的外貌是由它們的材質(zhì)屬性、光源、紋理與著色模式所影響的。圖2.1.2.1.在左圖中,在四棱錐頂端上固定了一個(gè)虛擬攝影機(jī)(在四條線的交點(diǎn)上)。只有在視見體積中的物體才能被渲染。透視投影渲染圖像(正如該案例),視見體積是一個(gè)平截頭體,也就是一個(gè)截得的矩形底部。右圖所示的就是攝影機(jī)所“看見”的場(chǎng)景。值得注意的是左圖中的紅色圓環(huán)沒有在右圖中渲染出來的,那是因
3、為它的位置不在視見體積中。而且左圖中的扭曲藍(lán)色棱柱經(jīng)過裁去了椎體的頂部。在渲染管線中的不同階段,我們即將對(duì)此進(jìn)行討論與解釋,其中主要集中于功能的介紹而非實(shí)現(xiàn)。細(xì)節(jié)的實(shí)現(xiàn)除了是程序所不能控制的元素外,其余的我們將會(huì)留在后面的章節(jié)所討論。例如,在畫線中頂點(diǎn)數(shù)據(jù)的格式、顏色、樣式、是否有深度暗示,這些都是非常重要的,無論是采用森漢姆的畫線算法(Bresenham’slinedrawingalgithm)[142]還是采用雙向均勻算法(sysm
4、metricdoublestepalgithm)[1391]進(jìn)行畫線。通常這些管線都是在不可編程的硬件上實(shí)現(xiàn)的,這是為了盡可能的提高與優(yōu)化執(zhí)行效率?;纠L畫的細(xì)節(jié)與填充算法會(huì)在羅杰斯(Rogers)一書[1077]中深入討論。雖然我們可能很少的去控制那些底層硬件、算法、編碼方式時(shí),卻有效的影響了繪圖的速度與質(zhì)量。2.12.1架構(gòu)架構(gòu)在這物質(zhì)世界,管線的概念被表現(xiàn)為不同于工廠中滑雪纜車裝配線的許多形式。它也被應(yīng)用在了圖像渲染上。一個(gè)管線包
5、括了若干個(gè)階段[541]。例如在油管中,油管中第一部分的油不能移動(dòng)到第二部分,除非第二部分的油已經(jīng)移動(dòng)到了第三部分,第四部分也是如此。這就意味著管線的速度是由其中最慢的階段所決定的,無論其他的階段是多么的快。理論上來說,在非管線系統(tǒng)中把管線分成n個(gè)階段就相當(dāng)于把速度加快了n倍。這種因?yàn)檫@是輸出設(shè)備所能支持小于16Hz的最大速度。就像名稱表示的,程序階段是由程序所驅(qū)動(dòng)的或是在通用CPUs上運(yùn)行的軟件所執(zhí)行的。這些一般程序都是能夠并行的多線
6、程執(zhí)行(threadsofexecution)的多核CPUs。這樣就能夠高效的運(yùn)行各種在程序階段的龐大任務(wù)。在程序階段中,通常是在CUPs中執(zhí)行如碰撞測(cè)試、重力加速算法、動(dòng)畫、物理模擬等許多任務(wù)。下一步就是幾何階段,在這階段中處理變換、投影等操作。在這一階段中將會(huì)計(jì)算該繪制什么、何如繪制與在哪里繪制。幾何階段往往是在可控制許多可編程核與固定操作的圖形處理單元(GPU)硬件下執(zhí)行的。最后,在光柵階段用前一階段生成的數(shù)據(jù)與想要的任意的每個(gè)像
7、素來繪制(渲染)圖像。光柵階段的完全是在GPU下執(zhí)行的。這些階段與他們的內(nèi)部管線將在后面的三個(gè)節(jié)中進(jìn)行討論。更多關(guān)于何如在GPU下執(zhí)行這些階段的細(xì)節(jié)將在第三章中介紹。2.22.2程序階段程序階段因?yàn)槌绦螂A段是在CPUs下執(zhí)行的,因此開發(fā)人員能夠完全控制它做什么。因此,開發(fā)人員能夠完全的決定其執(zhí)行與能進(jìn)行隨后的修改以提高執(zhí)行效率。此處的改變也會(huì)影響隨后階段的執(zhí)行。例如,程序階段的算法與設(shè)置能夠減少渲染三角形的數(shù)量。在程序階段的最后,幾何將
8、交給幾何階段。他們都是由渲染圖元組成的,比如,點(diǎn)、線與三角形,這些最后可能展現(xiàn)在屏幕上(或者無論你使用的何種輸出設(shè)備)。這是程序階段最重要的任務(wù)。在這階段基于軟件的執(zhí)行結(jié)果不像幾何階段與光柵化階段那樣將其分成子階段。但是,為了提高實(shí)行效率,在個(gè)階段總是在多核處理器上并行執(zhí)行。在CPU的設(shè)計(jì)上,這被叫做超標(biāo)量體系(superscalar)結(jié)構(gòu),因?yàn)樗軌蛟谕粫r(shí)間、同一階段執(zhí)行多種處理。在15.5章中將提到各種多核處理模式。在這階段執(zhí)行的
9、一般是碰撞測(cè)試。經(jīng)過兩個(gè)對(duì)象的碰撞測(cè)試,可能會(huì)產(chǎn)生一個(gè)回應(yīng)并送回給對(duì)象與力反饋設(shè)備。程序階段也是響應(yīng)輸入的地方,例如鍵盤、鼠標(biāo)、頭盔顯示器等。依賴于這些輸入設(shè)備,就可以實(shí)現(xiàn)各種不同的行為。包括紋理動(dòng)畫,動(dòng)畫變換以及其他階段不執(zhí)行的計(jì)算都會(huì)在這一階段執(zhí)行。例如分層視域剔除等加速算法也都在這實(shí)現(xiàn)。2.32.3幾何階段幾何階段幾何階段負(fù)責(zé)大量的邊與頂點(diǎn)的操作。這一階段可以進(jìn)一步拆分為如下幾個(gè)階段:模型與觀察變換,頂點(diǎn)著色,投影,剪裁,屏幕映射
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫(kù)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
評(píng)論
0/150
提交評(píng)論