Sur mon ordinateur au travail, mes instantanés réglés ne contiennent que le coin supérieur gauche du périphérique GL affiché. Pour python en utilisant mayavi en utilisant les travaux instantanés à l'écran. Cependant, l'utilisation du rendu hors écran entraîne la même erreur. Malheureusement, mon problème n'est pas reproductible, car à la maison en utilisant le même script fonctionne comme il se doit. Par conséquent, je suppose que cela doit être lié à mesa, mais je n'ai pas la moindre idée de l'endroit où chercher ma mauvaise configuration. Les deux ordinateurs fonctionnent sous test Debian, mais je rencontre déjà ce problème depuis un moment. J'ai trouvé un commentaire dans another thread sur le même problème, mais aucune solution n'a été fournie.Les instantanés GL ne contiennent que le coin supérieur gauche.
Voici le code R I couru:
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")
résultant en rgl.snapshot, mais devrait être rgl screenshot
Le code python j'est
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()
Les résultats sont équivalents. Le premier (mlab.savefig) fonctionne comme il se doit, mais le second (ex.write) se traduit dans le coin supérieur gauche uniquement comme dans l'exemple R ci-dessus.
Est-ce que quelqu'un a rencontré le même problème et l'a résolu? Aucune suggestion? Avez-vous besoin d'autres informations (p.e.glxinfo, ...)?
Merci et salutations
Jörg
Il semble que votre pilote MesaGL renvoie des informations de taille incohérentes sur l'affichage. Aucune idée de comment résoudre ce problème, autre que de s'assurer que vous avez la dernière mise à jour des deux pilotes de cartes graphiques et Mesa. – user2554330