OpenGL ES 3 0 渲染管線介紹

2021-09-02 17:49:31 字數 1138 閱讀 9766

記住下面這張圖,其中帶陰影的方框表示 opengl es 3.0 管線中可程式設計階段。

頂點著色器主要進行頂點相關的一些操作。可以用於通過矩陣變換位置、計算照明公式來生成逐頂點顏色以及生成或者變換紋理座標等基於頂點的傳統操作。產生紋理座標、顏色、點位置等資訊送往後續階段。

頂點被組合成圖元的過程叫做圖元裝配。圖元是指點、直線和三角形。

該過程還有兩個重要操作:裁剪和淘汰。裁剪是指對於不在視錐體(螢幕上可見的3d區域)內的圖元進行裁剪;淘汰是指根據圖元面向前方或後方選擇拋棄它們(如物體內部的點)。

將轉化為片段(fragment)的過程叫做光柵化。在這裡,虛擬3d世界中的物體投影到平面上,並生成一系列的片段。

而將每個圖元頂點輸出生成每個片段值的機制叫做插值

片段(fragment)可以簡單的理解為帶有深度等資訊的畫素點。螢幕上的乙個畫素點可能對應多個片段。

通常我們在這裡對片段進行處理(紋理取樣、顏色彙總等),將每個片段的顏色等屬性計算出來並送給後續階段。

這裡又包括下圖所示一些步驟:

畫素歸屬測試

判斷當前畫素是否歸 opengl 所有,即 opengl es 幀緩衝區視窗的部分被另乙個視窗所遮蔽,則被遮擋畫素不屬於 opengl 上下文。

裁剪測試

判斷當前畫素是否位於剪裁矩形範圍內,如果位於裁剪區域外則被拋棄。

模板測試

模板測試主要將繪製區域限定在一定範圍內,一般用在湖面倒影、映象等場合。

深度測試

深度測試是將輸入片元的深度與幀緩衝區中對應片元的深度進行比較,確定片段是否應該被拒絕。

混合將新生成的片段和儲存在緩衝區的片段進行混合。

抖動用於最小化因為使用有限精度在幀緩衝區中儲存顏色值而產生的偽像,使用少量顏色模擬更寬的顏色範圍。

opengl 管線的最終渲染目的地被稱作幀快取(framebuffer)。

借鑑《opengl es 3.0 程式設計指南》一書。

OpenGL ES渲染管線

渲染管線 graphics pipeline 在 opengl es 1.0 版本中,支援固定管線,而 opengl es 2.0 版本不再支援固定管線,只支援可程式設計管線。什麼是管線?什麼又是固定管線和可程式設計管線?管線 pipeline 也稱渲染管線,因為 opengl es在渲染處理過程中...

OpenGL ES 渲染管線

頂點著色器是乙個可程式設計的處理單元 執行頂點的變換 透視矩陣 光照 材質的應用等與計算等頂點的相關操作 每個頂點執行一次頂點著色器 opengl es的工作流程為首先將原始的頂點幾何資訊及其他屬性傳送到頂點著色器中 經過頂點著色器處理後產生頂點座標 顏色 位置等後續流程需要的各項定點屬性資訊 然後...

opengles3 0 一 基本概念

opengl物體圖形都由點 線和多邊形組成。而組成他們的關鍵就在於我們的頂點資料。就像畫畫在開始前會先畫出大概的位置,opengl在繪製的時候也需要準備繪製的位置,而這些位置就是頂點,當頂點組合起來就是頂點座標 opengl程式語言是glsl,就是我們說的著色器語言。語法上比較像c c 但是在這一基...