Я пытаюсь записать видео с 3D-анимацией VTK, используя ffmpeg. Пример, который я нашел http://www.itk.org/Wiki/VTK/Examples/Cxx/Video/FFMPEG, для меня немного странный, потому что он не создает рендер, поэтому неясно, как присоединить актеров в этом случае. Итак, мой вопрос: Как соединить vtkRenderer
с vtkFFMPEGWriter
? Я написал упрощенный примерPython VTK, как записать видео?
import vtk
# draw a plane
plane_source = vtk.vtkPlaneSource()
plane_source.SetCenter(0, 0, 0)
plane_source.SetNormal(0, 0, 1)
plane_mapper = vtk.vtkPolyDataMapper()
plane_mapper.SetInput(plane_source.GetOutput())
plane_actor = vtk.vtkActor()
plane_actor.SetMapper(plane_mapper)
# create render
render = vtk.vtkRenderer()
renWin = vtk.vtkRenderWindow()
renWin.AddRenderer(render)
renWin.SetSize(800, 600)
renInter = vtk.vtkRenderWindowInteractor()
renInter.SetRenderWindow(renWin)
render.AddActor(plane_actor)
renWin.Render()
renInter.Initialize()
# set callback
def cb(interactor, event):
global plane_actor
plane_actor.RotateZ(0.1)
interactor.GetRenderWindow().Render()
renInter.AddObserver('TimerEvent', cb)
timerId = renInter.CreateRepeatingTimer(100);
# put something here?
writer = vtk.vtkFFMPEGWriter()
# ??? writer.SetInputConnection(...)
writer.SetFileName("test.avi")
writer.Start()
# run
renInter.Start()