gltools 存储着色器

2018年1月9日 3209点热度 0人点赞 0条评论
GLShaderManager类定义在GLShaderManager.h头文件中
使用GLShaderManager前必须对其进行初始化shaderManager.InitializeStockShaders()
GLShaderManager有8种着色器模式
1. 单位着色器
    简单使用笛卡尔坐标系,所有坐标范围都是-1.0到1.0。所有片段用同一种颜色。几何图形是实心的、未渲染的。
    函数原型:GLShaderManager::UseStockShader(GLT_SHADER_IDENTITY,GLfloat vColor[4]);
2. 平面着色器
    允许为几何图形变换指定一个4×4的变换矩阵。典型情况是一种左乘模型视图矩阵和投影矩阵。
    函数原型:
GLShaderManager::UseStockShader(GLT_SHADER_FLAT,GLfloat mvp[16],GLfloat vColor[4]);
3. 上色着色器
    参数只有变换矩阵,顶点矩阵和颜色矩阵将被使用到,使用平滑着色。
    函数原型:
GLShaderManager::UseStockShader(GLT_SHADER_SHADED,GLfloat mvp[16]);
4. 默认光源着色器
    类似由位于观察者位置单漫射光所产生的效果。使对象产生阴影和光照效果。需要模型视图矩阵、投影矩阵和颜色值。还需要为顶点矩阵添加法线。
    函数原型:
GLShaderManager::UseStockShader(GL_SHADER_DEFAULT_LIGHT,GLfloat mvMatrix[16],GLfloat pMatrix[16],GLfloat vColor[4]);
5. 点光源着色器
    点光源着色器可以为光源指定位置,接受参数:模型视图矩阵、投影矩阵、光源位置、对象基本漫反射颜色。需要为顶点指定法向量。
    函数原型:
GLShaderManager::UseStockShader(GL_SHADER_POINT_LIGHT_DIFF,GLfloat mvMatrix[16],GLfloat pMatrix[16],GLfloat vColor[4]);
6. 纹理替换矩阵
    通过给定的模型视图矩阵,使用绑定到nTextureUnit指定纹理单元的纹理对几何图形进行变换。片段颜色直接从纹理样本中获取。需要指定顶点法线
    函数原型:
GLShaderManger::UseStockShader(GLT_SHADER_TEXTURE_REPLACE,GLfloat mvpMatrix[16],GLint nTextureUnit);
7. 纹理调整着色器
    将一个基本色乘以一个取自纹理单元纹理,需要为顶点指定纹理分量
    函数原型:
GLShaderManager::UseStockShader(GLT_SHADER_TEXTURE_MODULATE,GLfloat mvpMatrix[16],GLfloat vColor[4],GLint nTextureUnit);
8. 纹理光源着色器
    将纹理通过漫反射光照调整,光线是给定的,需要使用顶点法线和顶点纹理
  函数原型:
GLShaderManager::UseStockShader(GLT_SHADER_TEXTURE_POINT_LIGHT_DIFF,GLfloat mvMatrix[16],GLfloat pMatrix[16],GLfloat vLightPos[3],GLfloat vBaseColor[4],GLint nTextureUnit);

icebmji

这个人很懒,什么都没留下