OpenGL 固定管線下爲開發者提供了幾種着色器:單元着色器、平面着色器、上色着色器、默認光源着色器、點光源着色器、紋理替換矩陣着色器、紋理調整着色器、紋理光源着色器。下面依次介紹API和參數說明。bash
/**
使用場景:繪製默認OpenGL 座標系(-1,1)下圖形. 圖形全部片斷都會以一種顏色填充
參數1: 存儲着⾊色器器種類-單元着⾊器
參數2: 顏⾊
**/
GLShaderManager::UserStockShader(GLT_SHADER_IDENTITY,GLfloat vColor[4]);
複製代碼
/**
使用場景:在繪製圖形時, 能夠應⽤變換(模型/投影變化)
參數1: 存儲着⾊器種類-平面着⾊器
參數2: 容許變化的4*4矩陣
參數3: 顏⾊
**/
GLShaderManager::UserStockShader(GLT_SHADER_FLAT,GLfloat mvp[16],GLfloat vColor[4]);
複製代碼
/**
使用場景:在繪製圖形時, 能夠應用變換(模型/投影變化) 顏色將會平滑地插⼊入到頂點之間 稱爲平滑着色.
參數1: 存儲着色器種類-上色着色器
參數2: 容許變化的4*4矩陣
**/
GLShaderManager::UserStockShader(GLT_SHADER_SHADED,GLfloat mvp[16]);
複製代碼
/**
使用場景:在繪製圖形時, 能夠應⽤用變換(模型/投影變化) 這種着⾊器會使繪製的圖形產生 陰影和光照的效果
參數1: 存儲着色器種類-默認光源着色器
參數2: 模型4*4矩陣
參數3: 投影4*4矩陣
參數4: 顏色值
**/
GLShaderManager::UserStockShader(GLT_SHADER_DEFAULT_LIGHT,GLfloat mvMatrix[16],GLfloat pMatrix[16],GLfloat vColor[4]);
複製代碼
/**
使用場景:在繪製圖形時, 能夠應⽤用變換(模型/投影變化) 這種着色器會使繪製的圖形產生陰影和光照的效果.它與默認光源着⾊器⾮常相似,區別只是光源位置多是特定的.
參數1: 存儲着⾊器種類-點光源着色器 參數2: 模型4*4矩陣
參數3: 投影4*4矩陣
參數4: 點光源的位置
參數5: 漫反射顏色值
**/
GLShaderManager::UserStockShader(GLT_SHADER_POINT_LIGHT_DIEF,GLfloat mvMatrix[16],GLfloat pMatrix[16],GLfloat vLightPos[3],GLfloat vColor[4]);
複製代碼
/**
使用場景:在繪製圖形時, 能夠應用變換(模型/投影變化)這種着⾊器經過給定的模型視圖投影矩陣.使用紋理單元來進行顏⾊填充.其中每一個像素點的顏色是從紋理中獲取
參數1: 存儲着⾊器種類-紋理替換矩陣着⾊器
參數2: 模型4*4矩陣
參數3: 紋理單元
**/
GLShaderManager::UserStockShader(GLT_SHADER_TEXTURE_REPLACE,GLfloat mvMatrix[16],GLint nTextureUnit);
複製代碼
/**
使用場景:在繪製圖形時, 能夠應用變換(模型/投影變化)這種着⾊器經過給定的模型視圖投影矩陣. 着⾊器將⼀個基本色乘以一個取自紋理單元nTextureUnit 的紋理.將顏色與紋理進行顏色混合後才填充到片斷中.
參數1: 存儲着⾊器種類-紋理調整着色器
參數2: 模型4*4矩陣
參數3: 顏色值
參數4: 紋理單元
**/
GLShaderManager::UserStockShader(GLT_SHADER_TEXTURE_MODULATE,GLfloat mvMatrix[16],GLfloat vColor[4],GLint nTextureUnit);
複製代碼
/**
使用場景:在繪製圖形時, 能夠應用變換(模型/投影變化)這種着⾊器經過給定的模型視圖投影矩陣. 着⾊器將一個紋理經過漫反射照明計算進行調整(相乘).
參數1: 存儲着⾊器種類-紋理光源着⾊器
參數2: 模型4*4矩陣
參數3: 投影4*4矩陣
參數4: 點光源位置
參數5: 顏色值(⼏何圖形的基本色)
參數6: 紋理單元
**/
GLShaderManager::UserStockShader(GLT_SHADER_TEXTURE_POINT_LIGHT_DIEF,G Lfloat mvMatrix[16],GLfloat pMatrix[16],GLfloat vLightPos[3],GLfloat vBaseColor[4],GLint nTextureUnit);
複製代碼