

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