2016-12-12 9 views
0

После большого усилия я получил камеру майави, чтобы указать в том же направлении, что и жесткое преобразование, которое я использую для размещения моей камеры (отличной от камеры майави) в виртуальной сцене. Затем я использую Mayavi для создания скриншотов, которые я вставляю в свою виртуальную сцену, поэтому я могу четко видеть, когда скриншоты и сцена правильно выровнены по мере перемещения камеры. Как мне нужно только скриншоты MayaVi сцены, я сделал визуализацию закадровый, чтобы скрыть окно MayaVi установкой:Мнение Mayavi слегка меняется при включении экранной рендеринга

mlab.options.offscreen = True 

, прежде чем я создаю MayaVi фигуру (как объяснено в here).

На первый взгляд это казалось сработало, но потом я понял, что скриншоты были немного разными, например, если поле зрения камеры немного уменьшилось. не используя внеэкранную рендеринг. Я запросил настройки представления, и ничто не изменилось, когда я рендеринга за кадром.

Единственная вещь, которую я нашел в Интернете, которая может быть связана с удаленностью, - это вопрос 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 

, чтобы попытаться отключить эти границы, но скриншоты, которые я получаю в то время как закадровый рендеринга по-прежнему отличается от не-закадровый визуализаций. Любая идея, что происходит?

ответ

0

Я нашел проблему. Это панель инструментов, которая изменяет размер области просмотра, и когда я делаю внеэкранный рендеринг, нет панели инструментов (и нет окна).

Если отключить панель инструментов, как это:

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

тогда я получаю те же скриншоты с закадровым рендеринга и без.