Après beaucoup d'efforts, la caméra mayavi a été orientée dans le même sens qu'une transformation rigide que j'utilise pour positionner mon appareil photo (différent de la caméra mayavi) dans une scène virtuelle. Ensuite, j'utilise mayavi pour générer des captures d'écran que j'insère dans ma scène virtuelle, donc je peux voir clairement quand les captures d'écran et la scène sont correctement alignées lorsque la caméra bouge. Comme je l'ai seulement besoin des captures d'écran de la scène mayavi, je me suis rendu le hors-champ pour cacher la fenêtre mayavi en définissant:La fenêtre Mayavi change légèrement en activant le rendu hors écran
mlab.options.offscreen = True
avant de créer la figure mayavi (comme expliqué dans here). Au premier coup d'œil, cela a semblé fonctionner, mais j'ai réalisé que les captures d'écran étaient légèrement différentes, comme si le champ de vision de la caméra avait diminué un peu. n'utilisant pas le rendu hors écran. J'ai interrogé les paramètres d'affichage et rien ne semble avoir changé lorsque je suis en train de faire un rendu hors écran. La seule chose que j'ai trouvé en ligne qui peut être liée est la question this, où la dernière réponse fait valoir que la bordure de la fenêtre semble changer quelque chose dans le rendu hors écran. J'ai essayé les suivantes:
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
pour tenter d'éteindre ces frontières, mais les captures d'écran que je reçois alors que dans le rendu offscreen sont encore différents de non-rendus hors écran. Une idée de ce qui se passe?