我正在开发一个带有 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()
在内存中而不是在屏幕上创建一个窗口。这可能不支持每种类型的窗口,并且在某些窗口上,您可能需要在第一次渲染之前调用它。
我不知道某些窗口可能需要在第一次渲染之前调用它。
我感谢任何帮助,
提前致谢