vtk中对opengl着色器进行了封装
在vtkRenderingOpenGL2模块中有vtkShader类,vtkShader::Compile()函数中OpenGL着色器函数调用顺序如下
1).glCreateShader(着色器类型)--------------创建着色器,返回着色器句柄
2).glShaderSource()--------------------------替换着色器
3).glCompileShader()
4).glGetShaderiv()------------------------获取着色器状态
————————————————————————————————————————————————————————————————vtkShaderProgram中有Attach(vtkShader*), CompileShader(),Link(),Bind()----------------------------------------
vtkShaderProgram::Attach(vtkShader*)---------------------添加着色器
vtkShaderProgram::CompileShader()---------------------编译着色器程序
vtkShaderProgram::Link()-----------------------------------------连接着色器程序
vtkShaderProgram::Bind()----------------------------------------绑定着色器程序
5).glCreateProgram()--------------创建着色程序,返回着色器程序句柄
6).glAttachShader(程序句柄,着色器句柄)--------------------添加着色器
7).glBindAttribLocation(程序句柄,索引,参数)
8).glLinkProgram()
9).glDeleteShader()
10).glGetProgramiv()------------------------获取着色器程序状态
11).glUseProgram()
12).glGetUniformlocation()
13).getUniform4fv()
15).glVertexArray()
vtk中默认了几种着色器供用户选择: