GL 快照仅包含左上角



在我工作的计算机上,我的 rgl 快照仅包含显示的 GL 设备的左上角。对于使用 mayavi 的 python,使用屏幕上的快照有效。但是,使用屏幕外渲染会导致相同的错误。可悲的是,我的问题无法重现,因为在家中使用相同的脚本可以正常工作。因此,我想它一定与台面有关,但我不知道在哪里搜索我的错误配置。两台计算机都在 Debian 测试下运行,但我已经遇到这个问题一段时间了。我在另一个线程中找到了有关同一问题的评论,但没有提供解决方案。

这是我运行的 R 代码:

library(rgl)
shade3d(cylinder3d(matrix(c(1, -1, 2, -2, 0, 5), 2)), color="red")
rgl.viewpoint(0, -55, fov=30, zoom=0.6)
rgl.snapshot("rgl2.png")

导致 rgl.snapshot,但应该是 rgl 屏幕截图

我使用的python代码是

from mayavi import mlab
kwargs = dict(color=(.0,.33,.0), mode='cone', resolution=20, scale_mode='none', scale_factor=0.12, opacity=0.67)
cone = mlab.quiver3d(0, 0, 0, -1.0, 0.0, -1.0, **kwargs)
mlab.savefig('mayavi.png')
mlab.close()
from tvtk.api import tvtk
from tvtk.common import configure_input_data
mlab.options.offscreen = True
fig=mlab.figure()
kwargs = dict(color=(.0,.33,.0), mode='cone', resolution=20, scale_mode='none', scale_factor=0.12, opacity=0.67)
cone = mlab.quiver3d(0, 0, 0, -1.0, 0.0, -1.0, **kwargs)
rw = tvtk.RenderWindow(size=fig.scene._renwin.size, off_screen_rendering=1)
rw.add_renderer(fig.scene._renderer)
w2if = tvtk.WindowToImageFilter()
w2if.magnification = fig.scene.magnification
w2if.input = rw
ex = tvtk.PNGWriter()
fname = 'mayavi_offscreen.png'
ex.file_name = fname
configure_input_data(ex, w2if.output)
w2if.update()
ex.write()

结果是等效的。第一个(mlab.savefig(正常工作,但第二个(ex.write(仅导致左上角,如上面的R示例所示。

有没有人遇到过同样的问题并解决了它?有什么建议吗?需要更多信息(p.e.glxinfo,...(?

感谢和亲切的问候

约尔格

安静了一段时间,进行了几次内核更新和台面更新后,我切换到专有的 nvidia 驱动程序,它起作用了。我宁愿坚持使用未受污染的内核,但没有找到更好的解决方案。

相关内容

  • 没有找到相关文章

最新更新