1

我正在开发一个带有 VTK 窗口的应用程序。(我的VTK版本是5.8.0)

离开“VTK 渲染窗口”,所有其他窗口都被隐藏。但是需要渲染隐藏窗口,因为隐藏窗口的渲染图像需要存储为图像。

这是示例代码。

std::vector<vtkRenderer*> renderers;
renderers.reserve(m_numberOfRenderer);   // m_numberOfRenderer = 4

std::vector<vtkRenderWindow*> windows;
windows.reserve(m_numberOfRenderer);

for(int i=0; i<m_numberOfRenderer; i++)
{
    vtkRenderer* renderer = vtkRenderer::New();
    vtkRenderWindow* window = vtkRenderWindow::New();
    renderer->TwoSidedLightingOff();

    window->OffScreenRenderingOn();
    window->SetSize(m_width, m_height);
    window->AddRenderer(renderer);

    renderer->SetActiveCamera(m_renderCamera.at(i));
    renderer->AddActor(m_actor.at(i));
    renderer->AddActor(m_outActor.at(i));

    renderers.push_back(renderer);
    windows.push_back(window);
}

我的代码工作正常,但有时会在OffScreenRenderingOn方法上崩溃

这是 VTK 类 REF --- http://www.vtk.org/doc/nightly/html/classvtkWindow.html#a25c2cd7f6dad61d91f148da42bc8e780

virtual void vtkWindow::OffScreenRenderingOn()

在内存中而不是在屏幕上创建一个窗口。这可能不支持每种类型的窗口,并且在某些窗口上,您可能需要在第一次渲染之前调用它。

我不知道某些窗口可能需要在第一次渲染之前调用它。

我感谢任何帮助,

提前致谢

4

0 回答 0