OpenGL固定管线着色器/存储着色器

2020-07-18  本文已影响0人  徐徐图之哈哈

在OpenGL核心框架中,并没有提供任何内建渲染管线,在提交一个几何图形进行渲染之前,必须制定一个着色器。目前这些存储着色器由GLTools的C++类GLShaderManager进行管理,这些能够满足通常的渲染的基本要求。而更高级的自定义着色器不在本章讨论的范畴之内,后续会探讨

GLShaderManager的使用

Uniform值

注意:在C语言(或者C++语言)中,...表示函数接受一个可变的参数数量

固定着色器

单位着色器

GLShaderManager::UseStockShader(GLT_SHADER_IDENTITY, GLfloat vColor[4]);

注意:

平面着色器

GLShaderManager::UseStockShader(GLT_SHADER_FLAT, GLfloat mvp[16],GLfloat vColor[4]);

注意:

上色着色器

GLShaderManager::UseStockShader(GLT_SHADER_SHADED, GLfloat mvp[16]);

注意:

默认光源着色器

GLShaderManager::UseStockShader(GLT_SHADER_DEFAULT_LIGHT, GLfloat mvMatrix[16],GLfloat pMatrix[16],GLfloat vColor[4]);

注意:

点光源着色器

GLShaderManager::UseStockShader(GLT_SHADER_POINT_LIGHT_DIFF, GLfloat mvMatrix[16],GLfloat pMatrix[16],GLfloat vLightPos[3],GLfloat vColor[4]);

注意:

纹理替换矩阵着色器

GLShaderManager::UseStockShader(GLT_SHADER_TEXTURE_REPLACE, GLfloat mvMatrix[16],GLint nTextureUnit);

注意:

纹理调整着色器

GLShaderManager::UseStockShader(GLT_SHADER_c_MODULATE, GLfloat mvMatrix[16],GLfloat vColor,GLint nTextureUnit);

注意:

纹理光源着色器

GLShaderManager::UseStockShader(GLT_SHADER_TEXTURE_POINT_LIGHT_DIFF, GLfloat mvMatrix,GLfloat pMatrix[16],GLfloat vLightPos[3],GLFloat vBaseColor[4],GLint nTextureUnit);

注意:

上一篇 下一篇

猜你喜欢

热点阅读