【问题标题】:2D vtk Renders in QTQT 中的 2D vtk 渲染
【发布时间】:2019-11-10 00:42:30
【问题描述】:

如果没有覆盖错误,我无法在 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(发布 x64)(3D vtk 渲染工作正常)

【问题讨论】:

    标签: c++ qt vtk


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 2019-04-02
      • 1970-01-01
      • 1970-01-01
      • 2021-04-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-05-11
      相关资源
      最近更新 更多