在3D中有兩種渲染管線,分別是圖形渲染管線和GPU渲染管線。app
《Render-Time Rendering Third Edition》一書中將計算機圖形渲染的流程劃分爲3個階段:應用階段(Application Stage)、幾何階段(Geometry Stage)、光柵化階段(Raterizer Stage)組成了圖形渲染管線。性能
準備好要渲染的場景數據,如相機,模型,燈光等信息,爲提升性能對不可見的物體進行剔除(Culling),最後設置好每一個即將渲染的模型所對應的渲染狀態。渲染狀態包括但不限於材質,紋理,Shader等。測試
該階段運行在GPU上。orm
頂點着色階段的目的即確認頂點處材質的光照效果。像頂點位置,法線等數據都會經過該階段發送到光柵化階段。blog
該階段就是將模型從三維空間投射到二維空間的過程。ip
常見的投影方式有兩種:正交投影,透視投影get
裁剪階段即對部分處於視體內部的圖元進行裁剪操做。it
進入該階段頂點座標仍然是三維的,但x,y在通過上面的投影階段已是二維的狀態。此時x,y與z座標組成了窗口座標系。io
假設在一個窗口裏對場景進行繪製,窗口最小座標(x1, y1),最大座標(x2, y2)。屏幕映射首先進行平移,隨後進行縮放,在映射過程當中z座標不受影響。新的x和y座標稱爲屏幕座標系,並和z座標進入光柵化階段。
屏幕映射階段便是將獲得的座標映射到對應的屏幕座標系上。
該階段也運行在GPU上
計算三角形表面的差別和三角形表面的其餘相關數據
掃描三角形覆蓋的像素區域,並將重合的像素生產片斷(fragment)。
逐像素處理着色運算
圖形系統通常都是使用雙緩衝機制,也就是最終生產的圖像會輸出到後臺緩衝區(backbuffer),而後交換至屏幕。合併階段就是將前面全部片斷操做(如:顏色緩衝區,alpha通道,模板緩衝區,深度測試結果等)所產生的片斷顏色合併至後臺緩衝區(backbuffer)。