我正在使用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 CLASS REF --- http://www.vtk.org/doc/nightly/html/classvtkWindow.html#a25c2cd7f6dad61d91f148da42bc8e780)
virtual void vtkWindow::OffScreenRenderingOn()
在内存中而不是在屏幕上创建一个窗口。对于每种类型的窗口都可能不支持此功能,而在某些窗口上,您可能需要在第一次渲染之前调用此窗口。
我不知道你可能需要在第一次渲染之前调用一些窗口。
我感谢任何帮助,
提前致谢