渲染管線(Rendering Pipeline)

1. Application stage 應(yīng)用階段

軟件執(zhí)行、應(yīng)用驅(qū)動(dòng)、CPU運(yùn)行
碰撞檢測(cè)、全局加速算法、動(dòng)畫(huà)、物理模擬

  • 準(zhǔn)備場(chǎng)景數(shù)據(jù)、模型及光源
  • 剔除(Culling):剔除不可見(jiàn)物體,提高性能
  • 設(shè)置渲染狀態(tài) 材質(zhì)、紋理、shader的數(shù)據(jù)
    輸出渲染所需的信息,即輸出渲染圖元(Rendering Primitives)

2. Geometry stage 幾何階段

進(jìn)行多個(gè)多邊形和定點(diǎn)的操作

  • 模型變換: 物體坐標(biāo)系→世界坐標(biāo)系
  • 視覺(jué)變換: 世界坐標(biāo)系→相機(jī)坐標(biāo)系
  • 頂點(diǎn)Shading: 在不同頂點(diǎn)計(jì)算Shading方程,所得結(jié)果用于光柵化
    Shading:光線在某個(gè)材質(zhì)上產(chǎn)生的效果
  • 投影
    可視化空間變換至單位立方體(正規(guī)可視化空間)
    計(jì)算正交投影和透視投影,Z坐標(biāo)不存儲(chǔ)在圖像中(存在Z-buffer中)
  • 裁剪
    基本圖元的頂點(diǎn)出現(xiàn)在可視空間內(nèi),視為有效,可以進(jìn)行光柵化
    基本圖元只有部分頂點(diǎn)在可視空間會(huì)被裁剪(由固定的硬件操作)
  • 屏幕映射
    OpenGL的原點(diǎn)在屏幕左下角
    DX的原點(diǎn)在屏幕右上角
    DX10之前的版本,像素的中心坐標(biāo)為(0,0)
    DX10之后的版本及OpenGL,像素中心坐標(biāo)為(0.5,0.5)

3. Rasterizer stage 光柵化階段

接收數(shù)據(jù)為變換和投影后的頂點(diǎn)及其相應(yīng)的Shading方程數(shù)據(jù)
光柵化的目標(biāo): 計(jì)算覆蓋在每個(gè)物體上的像素顏色

  • 三角形設(shè)置: 三角形表面差異和其他相關(guān)數(shù)據(jù)(由固定的硬件操作)
  • 三角形遍歷: 檢查每個(gè)像素是否在三角形內(nèi)部
    Fragment在這里產(chǎn)生,通常采用插值法計(jì)算
  • 像素Shading: 輸入差值Shading的數(shù)據(jù),輸出一個(gè)或者多個(gè)顏色用于下一階段
    可編程控制GPU執(zhí)行,常用紋理技術(shù)
  • 合并: 合并color buffer中的顏色
    可以通過(guò)配置產(chǎn)生不同的效果
    Z-buffer解決能見(jiàn)度問(wèn)題、Alpha通道執(zhí)行Alpha test、stencil buffer記錄已渲染圖元的位置
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容