渲染是最終使影象符合3d場景的乙個階段,通俗點來說就是把前期做好的各種模型、效果或動畫的片段結合在一起,在這些過程中必然會涉及到複雜的特技和效果,以目前的計算機運算能力很難達到實時顯示,所以要在編輯完圖形影象後,通過調整修改得到我們所需要的最終效果進行輸出,也就是渲染。
如上圖所示,cup gpu互動方行為可描述如下:
從上圖可知,gpu渲染管線的起始輸入為頂點資料,這些頂點資料是由應用載入到視訊記憶體中的,再由drawcall指定,作為頂點著色器的輸入。之後進行頂點著色器,圖元裝配,幾何著色器,光柵化,片段著色器,最後經過測試與混合,得到螢幕最終要顯示的畫素,當然顯示器最終顯示的顏色還會有伽馬矯正這裡就不多說了。下面逐一分析每一階段的作用。
1.頂點著色器:輸入為cpu載入到視訊記憶體的頂點資料,處理單位為頂點,即每個頂點都會呼叫一次頂點著色器。主要任務:
2.圖元裝配:本階段將頂點著色器輸出的所有頂點作為輸入,並所有的點裝配成指定圖元的形狀;
3.幾何著色器:幾何著色器把圖元形式的一系列頂點的集合作為輸入,它可以通過產生新頂點構造出新的(或是其它的)圖元來生成其他形狀。
4.光柵化:這裡它會把圖元對映為最終螢幕上相應的畫素,生成供片段著色器(fragment shader)使用的片段(fragment)。在片段著色器執行之前會執行裁切(clipping)。裁切會丟棄超出你的檢視以外的所有畫素,用來提公升執行效率。
5.片段著色器:主要目的是計算乙個畫素的最終顏色,這也是所有高階效果產生的地方。通常,片段著色器會要使用3d場景的許多資料(比如光照、陰影、光的顏色等等),這些資料可以被用來計算最終畫素的顏色。
6.測試:
7.混合:對於不透明的物體,可以直接關閉混合操作,因為不透明的物體的顏色值可以直接覆蓋掉顏色緩衝區的值。如果是透明的物體,讓該物體的顏色值與顏色緩衝區的值進行混合。
1.unity shader入門精要 ,馮樂樂
2.opengl中文**:
OpenGL ES渲染管線
渲染管線 graphics pipeline 在 opengl es 1.0 版本中,支援固定管線,而 opengl es 2.0 版本不再支援固定管線,只支援可程式設計管線。什麼是管線?什麼又是固定管線和可程式設計管線?管線 pipeline 也稱渲染管線,因為 opengl es在渲染處理過程中...
opengl渲染管線
學習著色器,並理解著色器的工作機制,就要對opengl的固定功能管線有深入的了解。首先要知道幾個opengl的術語 渲染 rendering 計算機根據模型 model 建立影象的過程。模型 model 根據幾何圖元建立的物體 object 幾何圖元 包括點 直線和多邊形等,它是通過頂點 verte...
GPU渲染管線
3 光柵化階段 4總結 主要是為了得到三維頂點的法線,紋理等資料資訊 但是不能夠 幾何階段這個座標系轉化如下 這個階段主要做的事情事頂點著色器 模型變換,檢視變換,頂點著色 模型變換 將建模座標系轉化為世界座標系,相當於以物體為中心轉化為以世界為中心的轉化,可以理解為為模型統一乙個座標系 檢視變換 ...