启用屏幕外渲染时,Mayavi视口会稍微改变

时间:2016-12-12 18:07:45

标签: python vtk mayavi

经过大量的努力,我将mayavi相机指向与刚性变换相同的方向,我用它来定位我的相机(不同于mayavi相机)在虚拟场景中。然后我使用mayavi生成我在虚拟场景中插入的截图,这样我就可以清楚地看到截图和场景在摄像机移动时是否正确对齐。因为我只需要mayavi场景的截图,所以我通过设置隐藏了mayavi窗口来进行渲染:

mlab.options.offscreen = True

在创建mayavi形象之前(如here中所述)。

乍一看,这似乎有效,但后来我意识到屏幕截图略有不同,就好像相机的视野稍微减少了一样。不使用屏幕外渲染。我查询了视图设置,当我在屏幕外渲染时似乎没有任何变化。

我在网上发现的唯一可能远程相关的问题是this问题,最后一个答案认为窗口边框似乎改变了屏幕外渲染的内容。我尝试了以下方法:

mlab.options.offscreen = True
self.fig = mlab.figure(bgcolor=(1, 1, 1), fgcolor=(0, 0, 0), size=(w, h))
scene = self.fig.scene
cam = scene.camera
cam.view_angle = self.fov
ren = scene.renderer
win = ren._get_vtk_window()
win.borders = False

尝试关闭这些边框,但我在屏幕外渲染时获得的屏幕截图仍然与非屏幕外渲染不同。知道发生了什么吗?

1 个答案:

答案 0 :(得分:0)

我发现了问题。它是改变可视区域大小的工具栏,当我进行屏幕外渲染时,没有工具栏(也没有窗口)。

如果我像这样禁用工具栏:

scene = self.fig.scene
scene._tool_bar.setVisible(False)

然后我得到了与屏幕外渲染相同的截图,而没有。