1. 存儲著色器
存儲著色器由GLTools的C++類GLShaderManager管理著脑又,他們能夠滿足基本的渲染需求牙躺。
2. 存儲著色器初始化和使用
shaderManager.InitializeStockShaders();
shaderManager.UseStockShader(GLEnum shader,...)
3. 存儲著色器的種類
3.1 單位(Identity)著色器
GLShaderManager::UseStockShader(GLT_SHADER_IDENTITY,GLfloat vColor[4]);
參數(shù)1:存儲著色器種類
參數(shù)2:顏色
使用場景:
- 單位著色器只是簡單的使用默認的笛卡爾坐標(biāo)系。
- 所有片段都應(yīng)用同一顏色,幾何圖形為實心和未渲染的。
3.2 平面著色器
GLShaderManager::UseStockShader(GLT_SHADER_FLAT,GLfloat mvp[16],GLfloat vColor[4]);
參數(shù)1:存儲著色器種類
參數(shù)2:允許變化的4*4矩陣
參數(shù)3:顏色
使用場景:在繪制圖形時,可以應(yīng)用變換(模型/投影變化)
3.3 上色(Shaded)著色器
GLShaderManager::UseStockShader(GLT_SHADER_SHADED,GLfloat mvp[16]);
參數(shù)1:存儲著色器種類
參數(shù)2:允許變化的4*4矩陣
使用場景:在繪制圖形時拌喉,可以應(yīng)用變換(模型/投影變化),顏色值將被平滑地插入頂點之間(稱為平滑著色)。
3.4 默認光源著色器
GLShaderManager::UseStockShader(GLT_SHADER_DEFAULT_LIGHT,GLfloat mvMatrix[16],GLfloat pMatrix[16],GLfloat vColor[4]);
參數(shù)1:存儲著色器種類
參數(shù)2:模型視圖44矩陣
參數(shù)3:投影44矩陣
參數(shù)4:顏色值
使用場景:在繪制圖形時俐银,可以應(yīng)用變換(模型/投影變化)尿背,這種著色器會使繪制的圖形產(chǎn)生陰影和光照的效果。
3.5 點光源著色器
GLShaderManager::UseStockShader(GLT_SHADER_POINT_LIGHT_DIFF,GLfloat mvMatrix[16],GLfloat pMatrix[16],GLfloat vLightPos[3],GLfloat vColor[4]);
參數(shù)1:存儲著色器種類
參數(shù)2:模型44矩陣
參數(shù)3:投影44矩陣
參數(shù)4:點光源的位置
參數(shù)5:漫反射顏色值
使用場景:在繪制圖形時悉患,可以應(yīng)用變換(模型/投影變化)残家,這種著色器會使繪制的圖形產(chǎn)生陰影和光照的效果。它與默認光源著色器非常類似售躁,區(qū)別只是光源位置可能是特定的坞淮。
3.6 紋理替換矩陣著色器
GLShaderManager::UseStockShader(GLT_SHADER_TEXTURE_REPLACE,GLfloat mvpMatrix[16], GLint nTextureUnit);
參數(shù)1:存儲著色器種類
參數(shù)2:模型4*4矩陣
參數(shù)3:紋理單元
使用場景:在繪制圖形時,可以應(yīng)用變換(模型/投影變化)陪捷,這種著色器通過給定的模型視圖投影矩陣回窘,使用紋理單元來進行顏色填充,其中每個像素點的顏色通過紋理中獲取市袖。
3.7 紋理調(diào)整著色器
GLShaderManager::UseStockShader(GLT_SHADER_TEXTURE_MODULATE,GLfloat mvpMatrix[16],GLfloat vColor, GLint nTextureUnit);
參數(shù)1:存儲著色器種類
參數(shù)2:模型4*4矩陣
參數(shù)3:顏色值
參數(shù)4:紋理單元
使用場景:在繪制圖形時啡直,可以應(yīng)用變換(模型/投影變化)烁涌,這種著色器通過給定的模型視圖投影矩陣,著色器將一個基本色乘以一個取自紋理單元nTextureUnit的紋理,將顏色與紋理進行顏色混合后才填充到片段中酒觅。
3.8 紋理光源著色器
GLShaderManager::UseStockShader(GLT_SHADER_TEXTURE_POINT_LIGHT_DIFF,GLfloat mvMatrix,GLfloat pMatrix[16],GLfloat vLightPos[3]撮执,GLfloat vBaseColor[4],GLint nTextureUnit);
參數(shù)1:存儲著色器種類
參數(shù)2:模型44矩陣
參數(shù)3:投影44矩陣
參數(shù)4:點光源位置
參數(shù)5:顏色值(幾何圖形的基本色)
參數(shù)6:紋理單元
使用場景:在繪制圖形時,可以應(yīng)用變換(模型/投影變化)舷丹,這種著色器通過給定的模型視圖投影矩陣抒钱,著??將?個紋理通過漫反射照明計算進行調(diào)整(相乘)。