一.概念
顶点着色器
- 顶点做色器主要作用是指定形状
- 以数组(顶点数据)的形式传递3个3D坐标作为这个过程的输入
片段着色器
1.片段着色器主要指定颜色、光照、阴影等光影效果
二.使用
1.创建顶点着色器并绑定其ID
GLuint glCreateShader(GLenum shaderType)
参数:指定创建的着色器类型。只能为GL_VERTEX_SHADER/GL_FRAGMENT_SHADER
顶点着色器/片段着色器
unsigned int vertexShader=glCreateShader(GL_VERTEX_SHADER)
2.绑定着色器的源码
将着色器中的源代码设置为string指定的字符串数组中的源代码
void glShaderSource(GLuint shader,GLsizei count,const GLchar * const *string,const GLint *length)
参数一:着色器的ID
参数二:源码字符串或数组个数
参数三:指定的源码字符串或数组指针
参数四:指定字符串长度
glShaderSourse(vertexShader,1,&vetrexShaderSource,NULL);
3.编译一个着色器对象
void glCompileShader(GLuint shader);
参数:指定着色器ID
glCompileShader(vertexShader);
4.连接定点着色器与片段着色器
unsigned int shaderProgram=glCreatProgram();//创建
附加一个着色器对象到程序对象
void glAttachShader(GLuint program, GLuint shader);
参数一:program的ID
参数二:着色器ID
glAttachShader(shaderProgram,vertexShader); //加入定点着色器
glAttachShader(shaderProgram,fragmentShader);//加入片段着色器
将着色器连接起来
glLinkProgram(shaderProgram);
5.删除着色器
glDeleteShader(vertexShader);