opengl es _ 入門_01
opengl es _ 入門_02
opengl es _ 入門_03
opengl es _ 入門_04
opengl es _ 入門_05
opengl es _ 入門練習_01
opengl es _ 入門練習_02
opengl es _ 入門練習_03
opengl es _ 入門練習_04
opengl es _ 入門練習_05
opengl es _ 入門練習_06
opengl es _ 著色器 _ 介紹
opengl es _ 著色器 _ 程式
opengl es _ 著色器 _ 語法
opengl es_著色器_紋理影象
opengl es_著色器_預處理
opengl es_著色器_頂點著色器詳解
opengl es_著色器_片斷著色器詳解
opengl es_著色器_實戰01
opengl es_著色器_實戰02
opengl es_著色器_實戰03
學習是一件開心的額事情
本節學習目標
輸入值和輸出值
片段著色器內建變數
輸入值:片段著色器接受頂點管線最終輸出的迭代值,這些值包括片段的位置,已解析的主顏色和輔助顏色,一系列的紋理座標以及片段的霧座標距離。
下面這個**,將是對這些變數的詳細介紹
|變數|型別|描述|
|---|
|gl_fragcoord|vec4|片斷的位置,包含z成分,它表示固定功能所計算的深度值,唯讀|
|glfrontfacing|bool|唯讀,指定這個片段是否屬於乙個正面圖元|
|gl_color|vec4|片段著色器的主色|
|gl_secondcolor|vec4|片段的輔助顏色|
|gl_texcoord[n]|vec4|片段的第n紋理座標|
|gl_fogfragcoord|float|片段的霧座標|要麼指定為視覺空間中的圖元的z座標,或者差值霧座標|
|gl_pointcoord|vec2|乙個點塊紋理的片斷位置在[0.0,0.1]|範圍中,如果當前圖元並不是點塊紋理或者點塊紋理被禁用|
特殊的輸出值
在片段著色器中,特殊的輸入值經過組合,產生片斷的最終值.
gl_fragcolor 是片斷的最終顏色。
gl_fragdepth 片斷的深度值
gl_fragdata 允許把資料寫入到額外的緩衝區中
如何渲染多個緩衝區
片段著色器可以使用gl_fragdata 陣列,把值同時輸出到多個緩衝區,在陣列元素gl_fragdata[n] 中寫入乙個值將導致這個顏色被寫入到緩衝區中乙個適當的片段中,這個片段位於傳遞給gldrawbuffers()函式的陣列的第n個元素中,片斷著色器把值寫入到gl_fragcolor 或者gl_fragdata 中,但是不能同時寫入到兩者中.
總結
OpenGL ES 著色器指令碼
static char vshaderstr attribute vec4 a position n attribute vec4 a color n varying vec4 v color n void main n n static char fshaderstr ifdef gl es n ...
著色器(Shader)之畫素著色器
畫素著色器實際上就是對每乙個畫素進行光柵化的處理期間,在gpu上運算的一段程式。不同與頂點著色器,畫素著色器不會以軟體的形式來模擬畫素著色器。畫素著色器實質上是取代了固定功能流水線中多重紋理的環節,而且賦予了我們訪問單個畫素以及訪問每乙個畫素紋理座標的能力 多重紋理就是我們同時啟用多層紋理,然後規定...
頂點著色器 片段著色器
一 著色器 著色器只是一種把輸入轉化為輸出的程式。著色器也是一種非常獨立的程式,因為它們之間不能相互通訊 它們之間唯一的溝通只有通過輸入和輸出。在最簡配置下,至少都得有兩個著色器 乙個叫頂點著色器 vertex shader 它將作用於每個頂點上 另乙個叫片段著色器 fragment shader ...