OpenGL下的固定存储着色器

2020-08-13  本文已影响0人  君幸食j

在开发中,要求不高的话,OpenGL提供的固定存储着色器可以满足我们的要求。这些存储着色器由GLTools的C++类GLShaderManager进行管理,只需要传递不同存储器所需要的数据到参数列表就可以使用了,主要有以下几种存储着色器:

单位着色器

/*
 参数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);

纹理调整着⾊器

/*
 参数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);
上一篇 下一篇

猜你喜欢

热点阅读