着色器 VAO 和EGL_BAD_DISPLAY中的 VTK 错误设置'vertexMC'
VTK Error setting 'vertexMC' in shader VAO and EGL_BAD_DISPLAY
我正在尝试为android编写我自己的InteractorStyle
。到目前为止,我成功地改变了我想要改变的内容并创建了它。现在我想添加一个函数,可以处理作为参数给定的旋转/平移。功能如下:
void myfunction(double* rotation, double* translation){
vtkProp3D* prop3D = actor ; // Actor is a variable of the class
vtkTransform* t = vtkTransform::New();
t->Identity();
t->RotateX(rotation[0]);
t->RotateY(rotation[1]);
t->RotateZ(rotation[2]);
prop3D->SetUserMatrix(t->GetMatrix());
vtkRenderWindowInteractor *rwi = this->Interactor;
rwi->Render();
}
我以前的代码运行得很好,但现在当我调用这个函数时,我得到了以下错误:
E/VTK ( 6271): ERROR: In /Users/....../Rendering/OpenGL2/vtkOpenGLPolyDataMapper.cxx, line 1413
E/VTK ( 6271): vtkOpenGLPolyDataMapper (0x4b8e6e90): Error setting 'vertexMC' in shader VAO.
E/VTK ( 6271): ERROR: In /Users/....../Rendering/OpenGL2/vtkOpenGLPolyDataMapper.cxx, line 1421
E/VTK ( 6271): vtkOpenGLPolyDataMapper (0x4b8e6e90): Error setting 'normalMC' in shader VAO.
E/VTK ( 6271): ERROR: In /Users/....../Rendering/OpenGL2/vtkOpenGLPolyDataMapper.cxx, line 1413
E/VTK ( 6271): vtkOpenGLPolyDataMapper (0x4b8e6e90): Error setting 'vertexMC' in shader VAO.
E/VTK ( 6271): ERROR: In /Users/....../Rendering/OpenGL2/vtkOpenGLPolyDataMapper.cxx, line 1421
E/VTK ( 6271): vtkOpenGLPolyDataMapper (0x4b8e6e90): Error setting 'normalMC' in shader VAO.
E/libEGL ( 6271): validate_display:254 error 3008 (EGL_BAD_DISPLAY)
E/VTK ( 6271): ERROR: In /Users/....../Rendering/OpenGL2/vtkOpenGLPolyDataMapper.cxx, line 1413
E/VTK ( 6271): vtkOpenGLPolyDataMapper (0x4b8e6e90): Error setting 'vertexMC' in shader VAO.
E/VTK ( 6271): ERROR: In /Users/....../Rendering/OpenGL2/vtkOpenGLPolyDataMapper.cxx, line 142
请注意,应用程序不会崩溃,我的参与者会被旋转(即使我更改了值,也会进行固定的旋转),如果我再次开始与参与者的正常交互,应用程序也会正常工作。值得注意的是,我传递给不同函数的值对我来说很好,比如:
Rotation[0] = 0.586671, Rotation[1] = 0.021346, Rotation[2] = -0.028796
因此,我想知道我在这里做错了什么。
提前感谢
在VTK中设置OpenGL属性时出错,可能是因为着色器程序未使用该属性,或者我认为试图在没有数据的情况下设置该属性。也许还有其他原因。第一步是在错误发生时查看着色器代码。可以在ReplaceShaderValues中取消注释vtkOpenGL2PolyDataMapper.cxx以打印着色器。此外,作为参考,您当前正在泄漏vtkTransform,您应该能够直接在actor上调用SetUserMatrix(假设它是vtkActor),因为它是vtkProp3D的子类。
相关文章:
- 警告处理为错误这里有什么问题
- "error: no matching function for call to"构造函数错误
- Qt VTK交互风格的信号到小部件
- boost::进程间消息队列引发错误
- CMake 错误,在构建 VTK 'INSTALL'项目
- 在 Windows 10 下为 VTK 生成 Makefile 时,Qt mkspecs 的路径错误
- VTK / ITK/ QT - 未解决的外部符号错误 (LNK2001)
- 从"常量字符*"到"字符*"[-允许]的转换无效;VTK-7.1.1 编译错误
- Ubuntu上的启动ITK/VTK项目中的错误
- CMake 错误 - cmTryCompileExec 已停止工作 (VTK)
- 使用图形函数(vtk 6.1,Qt5.3,Ubuntu)时的分段错误
- 使用 QT+VTK+ITK 构建项目时出现 FDFImageIO 错误
- VTK+QT项目:错误LNK1169:找到一个或多个多重定义符号
- 从vtk 5.3迁移到vtk 6.2后出现VtkOpenGLRenderer错误
- 着色器 VAO 和EGL_BAD_DISPLAY中的 VTK 错误设置'vertexMC'
- 修复VTK 6.2链接错误
- VTK Qt小部件抛出运行时错误时,放置在GUI
- mavericks osx 10.9上的VTK编译错误
- VTK集成到QT-VS2013:CMake错误-Qt5WebKitWidgets
- 链接错误的例子,当试图编译VTK使用静态运行时库