渲染管线的基本流程
一、渲染管線是什么
渲染管線也叫做渲染流水線,他的流程是:模型數據 -> 頂點著色器 -> 曲面細分著色器 -> 幾何著色器 -> 裁剪 -> 屏幕映射 -> 三角形設置 -> 遍歷三角形 ->片元著色器 -> 逐片元操作 -> 成像
二 、具體操作
1.頂點著色器(Vertex Shader)
????????頂點著色器是完全可編程的,他的輸入來自CPU發來的模型數據。顧名思義頂點著色器是用來處理頂點的,所以輸入進來的數據中每個頂點都會走頂點著色器。
????????頂點著色器不能銷毀和創建任何頂點,也無法獲得頂點與頂點之間的關系。
????????他的主要的工作有:坐標轉換、逐頂點光照、輸出后續所需要的數據
2.曲面細分著色器(用于細分圖元,屬于可選著色器)
3.幾何著色器(用于逐圖元操作,也屬于可選著色器)
4.裁剪
????????我們的場景通常很大,相機的可視范圍很小,這時候有的物體完全就在相機的可視范圍內,有的只是部分在相機的可視范圍,還有就是完全不在相機的可視范圍。而部分在相機的可視范圍內的圖形就需要裁剪了。我們通常將物體與相機可視范圍邊緣的相交位置生成一個新的點替換未顯示的點,這一步驟就叫做裁剪,將裁剪過后的數據傳遞給下一個流水線。
5.屏幕映射
屏幕映射的工作是把每個圖元的x和y坐標轉換到屏幕坐標系下。屏幕坐標系是二維坐標系,它和我們用于顯示畫面的分辨率有很大的關系。
6.三角形設置
從這一階段就進入了光柵化階段。上一個階段輸出的是屏幕坐標系下的頂點位置和其他的相關信息(例如:深度,法線方向,視角方向)。
這一階段的主要任務是計算每個圖元覆蓋了哪些像素,并計算它們的顏色。
7.遍歷三角形
這個階段將會檢查每個像素是否被三角形網格覆蓋,若被覆蓋則會生成一個片元。
8.片元著色器
這個階段是可編程的階段,這個階段的輸出結果是一個或多個顏色值例如下圖
9.逐片元操作
這一階段被稱為輸出合并階段
主要任務
三、渲染階段
1.模型數據
2.幾何階段(頂點著色器、曲面細分著色器、幾何著色器、裁剪、屏幕映射)
3.光柵化階段(三角形設置、遍歷三角形、片元著色器、逐片元操作)
總結
- 上一篇: 令人惊叹的8个深度学习应用「我去,这也能
- 下一篇: WIN10 下 IE11 F12开发者工