我无法在QT中执行2D vtk渲染而没有覆盖错误:Vtk charts break in QT, "no override found for 'vtkContextDevice2D"。
在尝试解决此问题时,我一直在阅读有关vtkContextView和vtkGenericOpenGLRenderWindow类的信息。
vtkGenericOpenGLRenderWindow:
vtkGenericOpenGLRenderWindow提供了一个框架,用于使用自己的OpenGL上下文和可绘制对象来实现渲染窗口。为了有效,必须注册WindowMakeCurrentEvent,WindowIsCurrentEvent和WindowFrameEvent的观察者。
vtkContextView:
此类从vtkRenderViewBase派生并提供vtkContextScene的视图,默认的交互器样式,渲染器等。这是创建vtkRenderWindow并在其中显示2D场景的最简单方法。
我不了解vtkContextView如何与OpenGL一起使用,并且想知道是否有人可以帮助解释彼此之间的关系以及上下文视图如何工作。
此外,还有其他方法可以在不使用上下文视图的情况下进行2D vtk渲染吗? 我在QT中找不到任何2D vtk渲染的实例,将不胜感激关于如何在QT中进行vtk的2D渲染的任何建议。
当前尝试渲染2D vtk图表:
view->SetRenderWindow(this->qvtkWidgetRight->GetRenderWindow());
view->SetInteractor(this->qvtkWidgetRight->GetInteractor());
主文件中的其他代码:
QSurfaceFormat::setDefaultFormat(QVTKOpenGLNativeWidget::defaultFormat());
其他信息:64位计算机上的Win64,vtk8.2.0,Qt5.13.0,使用cmake3.15.0在MCVS2017(Release x64)中编译/内置(3D vtk可以正常工作)
答案 0 :(得分:0)
最后在VTK论坛的帮助下解决了这个问题。我只是在我的CMake文件中没有vtkRenderingContextOpenGL2(代码也更新了,向后)。