第二十五章 绘制简单物体总结
简单的说,编译顶点着色器。首先需要把顶点着色器的源代码存储在一个字符串中,其次用glCreateShader创建一个着色器(参数:GL_VERTEX_SHADER)
下一步把源码附加到着色器对象上,再编译它(glShaderSource和glCompileShader)
最后用glGetShaderiv来检查是否编译时有错误(参数:GL_COMPILE_STATUS,success)如果编译失败,则用glGetShaderInfoLog用来获取错误信息
片段着色器的输出变量是一个,输出的是最终的颜色。创建着色器还是用glCreateShader,但是参数不一样(GL_FRAGMENT_SHADER),其他没什么区别
需要将上述着色器链接成一个着色器程序对象,在渲染对象的时候激活这个着色器程序。首先需要创建一个程序对象,使用的glCreateProgram,返回值是
一个程序对象的ID引用。下面需要把之前的着色器附加到程序对象上(glAttachShader函数),再用glLinkProgram链接。当然,链接程序对象也可以进行检测是否
链接成功。使用glGetProgramInfoLog和glGetProgramiv。最后需要激活这个程序对象,参数使用刚才建立的程序对象,使用函数glUseProgram
最后,着色器对象链接到程序对象后,需要删除着色器对象,使用函数glDeleteShader
下面需要将顶点数据链接到顶点着色器的属性上。可以使用glVertexAttribPointer函数解析顶点数据,第一个参数是要配置哪个顶点属性;第二个参数是顶点属性的大小,