启用离屏渲染时 Mayavi 视口略有变化

Mayavi viewport changes slightly when enabling offscreen rendering

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

mlab.options.offscreen = True

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

乍一看这似乎行得通,但后来我意识到屏幕截图略有不同,就像相机的视野有所缩小一样。不使用离屏渲染。我查询了视图设置,当我在屏幕外渲染时似乎没有任何变化。

我在网上发现的唯一可能有远程关联的是 this 问题,其中最后一个答案认为 window 的边界似乎改变了屏幕外渲染中的某些内容。我尝试了以下方法:

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

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

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

如果我这样禁用工具栏:

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

然后我得到了有和没有离屏渲染的相同屏幕截图。