[轉]3D渲染管線

轉自:http://tgerm.org/SRP/編程

在3D中有兩種渲染管線,分別是圖形渲染管線和GPU渲染管線。app

圖形渲染管線

《Render-Time Rendering Third Edition》一書中將計算機圖形渲染的流程劃分爲3個階段:應用階段(Application Stage)幾何階段(Geometry Stage)光柵化階段(Raterizer Stage)組成了圖形渲染管線。性能

 

 

應用階段(Application Stage)

準備好要渲染的場景數據,如相機,模型,燈光等信息,爲提升性能對不可見的物體進行剔除(Culling),最後設置好每一個即將渲染的模型所對應的渲染狀態。渲染狀態包括但不限於材質,紋理,Shader等。測試

幾何階段 Geometry Stage

該階段運行在GPU上。orm

模型和視圖變換 Model and View Transform

 

頂點着色 Vertex Shading

頂點着色階段的目的即確認頂點處材質的光照效果。像頂點位置,法線等數據都會經過該階段發送到光柵化階段。blog

投影 Projectiong

該階段就是將模型從三維空間投射到二維空間的過程。ip

常見的投影方式有兩種:正交投影,透視投影get

裁剪 Clipping

  • 當圖元徹底處於視體內部,直接進入下個階段
  • 當圖元徹底處於視體外部,直接丟棄
  • 當圖元部分處於視體內部,對圖元進行裁剪併產生新的圖元

裁剪階段即對部分處於視體內部的圖元進行裁剪操做。it

屏幕映射 Screen Mapping

進入該階段頂點座標仍然是三維的,但x,y在通過上面的投影階段已是二維的狀態。此時x,y與z座標組成了窗口座標系。io

假設在一個窗口裏對場景進行繪製,窗口最小座標(x1, y1),最大座標(x2, y2)。屏幕映射首先進行平移,隨後進行縮放,在映射過程當中z座標不受影響。新的x和y座標稱爲屏幕座標系,並和z座標進入光柵化階段。

屏幕映射階段便是將獲得的座標映射到對應的屏幕座標系上。

光柵化階段(Rasterizer Stage)

該階段也運行在GPU上

三角形設置 Triangle Setup

計算三角形表面的差別和三角形表面的其餘相關數據

三角形遍歷 Triangle Traversal

掃描三角形覆蓋的像素區域,並將重合的像素生產片斷(fragment)。

像素着色 Pixel Shading

逐像素處理着色運算

合併 Merging

圖形系統通常都是使用雙緩衝機制,也就是最終生產的圖像會輸出到後臺緩衝區(backbuffer),而後交換至屏幕。合併階段就是將前面全部片斷操做(如:顏色緩衝區,alpha通道,模板緩衝區,深度測試結果等)所產生的片斷顏色合併至後臺緩衝區(backbuffer)。

GPU渲染管線

  • 綠色階段徹底能夠編程
  • 藍色階段可配置,不可編程
  • 灰色階段徹底固定,不可配置,不可編程
相關文章
相關標籤/搜索