经过大量的努力,我让mayavi相机指向同一个方向作为一个刚性变换,我用来定位我的相机(不同于mayavi相机)在一个虚拟场景。然后我使用mayavi生成插入虚拟场景的截图,这样我就可以清楚地看到当相机移动时截图和场景是否正确对齐。由于我只需要mayavi场景的屏幕截图,因此我在屏幕外进行了渲染,通过设置来隐藏mayavi窗口:
mlab.options.offscreen = True
在创建mayavi图形之前(如here中所述)。你知道吗
乍一看,这似乎是工作,但后来我意识到,截图略有不同,就像如果视野的相机减少了一点wrt。不使用屏幕外渲染。我已经查询了视图设置,当我在屏幕外渲染时,似乎什么都没有改变。你知道吗
我在网上发现的唯一一个可能有点关联的问题是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
尝试关闭这些边框,但是我在屏幕外渲染时得到的屏幕截图仍然与非屏幕外渲染不同。知道怎么回事吗?你知道吗
我发现了问题。它的工具栏,改变可视区域的大小,当我做屏幕外渲染时,没有工具栏(也没有窗口)。你知道吗
如果我像这样禁用工具栏:
然后我得到相同的屏幕截图与屏幕外渲染和没有。你知道吗
相关问题 更多 >
编程相关推荐