我用的vtk+qt+vs进行编程,这两天将vtk从7.0.0换成vtk8.0.0,发现拾取actor时,结果总是不对,但同样的代码在vtk7.0.0上完全没问题。当时就没搞懂是什么原因,然后就各种尝试,一直也没找到错在哪,后来才发现,是在继承自QVTKWidget的自写类MyVTKWidget中,因为添加了一个vtkOrientationMarkerWidget(用来放坐标系),才导致拾取错误,将其注释掉,拾取就正确了,目前还没看代码,不知道vtk8.0.0和vtk7.0.0哪些地方不一样
//------------------------------------------------------------------------
这么久了一直忘了说解决方法:
在不注释vtkOrientationMarkerWidget的前提下,在调用vtkPropPicker的Pick函数前,先调用一下glDisable(GL_SCISSOR_TEST)(需导入OpenGL库和vtk_glew.h头文件)