使用儲存著色器

2021-06-25 09:10:40 字數 867 閱讀 7101

glshadermanager是gltools的c++類

glshadermanager 預定義的識別符號  p62 表3.1

uniform

glshadermanager::usestockshader(glenum shader... ...);

選擇乙個儲存著色器並提供這個著色器的uniform值,這些工作通過一次函式呼叫就能完成。

單位(identity)著色器

這種著色器值使用乙個屬性glt_attribute_vertex  vcolor引數包含了要求的顏色。

glshadermanager::::usestockshader(gl_shader_identity,glfloat vcolor[4]);

平面(flat)著色器

這種著色器允許對幾何圖形變換指定乙個4x4變換矩陣。典型情況下這是一種左乘模型檢視矩陣和投影矩陣,經常被稱作「模型檢視投影矩陣」這種著色器只使用乙個屬性glt_attribute_vertex。

glshadermanager::::usestockshader(gl_shader_flat,glfloat mvp[16],glfloat vcolor[4]);

上色(shaded)著色器

這種著色器位移的uniform值就是幾何圖形中應用的變換矩陣。glt_attribute_vertex和glt_attribute_color在這種著色器中都會應用。顏色值將本平滑地插入頂點之間(稱為平滑著色)。

glshadermanager::::usestockshader(gl_shader_shaded,glfloat mvp[16]);

預設光源著色器

點光源著色器

紋理替換矩陣

紋理調整著色器

紋理光源著色器

著色器(Shader)之畫素著色器

畫素著色器實際上就是對每乙個畫素進行光柵化的處理期間,在gpu上運算的一段程式。不同與頂點著色器,畫素著色器不會以軟體的形式來模擬畫素著色器。畫素著色器實質上是取代了固定功能流水線中多重紋理的環節,而且賦予了我們訪問單個畫素以及訪問每乙個畫素紋理座標的能力 多重紋理就是我們同時啟用多層紋理,然後規定...

OpenGL ES 著色器 片斷著色器詳解

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 入門練習 0...

頂點著色器 片段著色器

一 著色器 著色器只是一種把輸入轉化為輸出的程式。著色器也是一種非常獨立的程式,因為它們之間不能相互通訊 它們之間唯一的溝通只有通過輸入和輸出。在最簡配置下,至少都得有兩個著色器 乙個叫頂點著色器 vertex shader 它將作用於每個頂點上 另乙個叫片段著色器 fragment shader ...