1. 首页
    2. 图形学

    gltools 存储着色器

    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);
    
    评分 0, 满分 5 星
    0
    0
    看完收藏一下,下次也能找得到
    • 版权声明:本文基于《知识共享署名-相同方式共享 3.0 中国大陆许可协议》发布,转载请遵循本协议
    • 文章链接:https://icebmji.com/blog/?p=321 [复制] (转载时请注明本文出处及文章链接)
    上一篇:
    :下一篇

    评论已关闭