openGL学习—顶点着色器/片段着色器

一.概念

顶点着色器

  1. 顶点做色器主要作用是指定形状
  2. 以数组(顶点数据)的形式传递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);

你可能感兴趣的:(学习,着色器,算法)