QT 中的 2D vtk 渲染

2D vtk Renders in QT

我无法在没有覆盖错误的情况下在 QT 中进行 2D vtk 渲染:

在尝试解决这个问题时,我一直在阅读 vtkContextView 和 vtkGenericOpenGLRenderWindow 类。

vtkGenericOpenGLRenderWindow:

vtkGenericOpenGLRenderWindow provides a skeleton for implementing a render window using one's own OpenGL context and drawable. To be effective, one must register an observer for WindowMakeCurrentEvent, WindowIsCurrentEvent and WindowFrameEvent.

vtkContextView:

This class is derived from vtkRenderViewBase and provides a view of a vtkContextScene, with a default interactor style, renderer etc. It is the simplest way to create a vtkRenderWindow and display a 2D scene inside of it.

我不明白 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、compiled/built 在 MCVS2017(版本 x64)中使用 cmake3.15.0(3D vtk 渲染工作正常)

在 VTK 论坛的帮助下终于弄明白了。我的 CMake 文件中根本没有 vtkRenderingContextOpenGL2(也更新了代码,倒退了)。