将GLSL着色器添加到VTKActor(VTK 6.1)

mpc*_*s87 5 opengl glsl vtk

我正在尝试将一个着色器添加到我的应用程序中的vtkActor中.我有不同的vtkActors,每个都必须有不同的着色器.

我尝试使用vtkShader2,vtkShaderProgram2和vtkOpenGLProperty将着色器加载的程序设置为actor,但它不起作用(vtk在警告窗口告诉我它在actor中有4个着色器,默认着色器和我的) .

有人知道正确的方法吗?

Nil*_*Nil 6

经过几个月的等待,解决方案最终出现在vtk邮件列表中!我没有自己测试,但用户@carlinhos说它有效.他恢复了以下步骤:

  1. 使用函数propFuncFS(片段着色器)或propFuncVS(顶点着色器)创建着色器文件.
  2. 从磁盘加载着色器.
  3. 创建一个vtkShader2并设置源代码.
  4. 创建一个vtkShaderProgram2并初始化它(不要构建程序).
  5. 将着色器添加到程序中.
  6. 获取actor vtkOpenGLProperty并设置程序
  7. 设置阴影.

编辑:@carlinhos你呢?我喂你自己的答案?:)