OpenGL着色语言(GLSL)看上去很像C语言(并不是),它由OpenGL实现进行编译和连接,并且(经常是)完全在图形硬件中运行。着色器的使用过程如下:
创建着色器对象→载入GLSL源代码→编译着色器→创建程序对象→连接着色器→绑定属性位置→连接程序→获取统一值位置→使用程序→提交着色器属性、统一值和纹理数据等
glCreateShader()
创建并返回一个着色器对象,参数则可为GL_VERTEX_SHADER或GL_FRAGMENT_SHADER。
glDeleteShader()
删除着色器对象,参数为要删除的着色器ID。
glShaderSource()
载入着色器GLSL源代码。
glCompileShader()
编译着色器,参数为要编译的着色器ID。
glGetShaderiv()
获取着色器相关的状态信息。
glCreateProgram()
创建并返回程序对象。
glDeleteProgram()
删除程序对象,参数为要删除的程序ID。
glAttachShader()
连接程序对象与着色器对象,第一个参数为程序ID,第二个参数为着色器ID。
glBindAttribLocation()
绑定属性名与属性位置。
glLinkProgram()
连接程序,参数为要连接的程序ID。
glGetProgramiv()
获取程序相关的状态信息。
glGetUniformLocation()
获取统一值位置。
glUseProgram()
使用程序。
glUniformxxx()
提交统一值数据,xxx表示具体的函数接口变形。
glBindVertexArray()
绑定顶点数组。