Hi All,
I’m new around here, and also new to VTK so bear with me. I have a series of vti files of an object. The series describes the movement of the object. I would like to render the series as an animation. So far I’ve been able to render only one at a time. Here’s what I have so far, and it’s not rendering the second volume:
reader = vtk.vtkXMLImageDataReader()
reader.SetFileName(‘…/data/vtk/object_00.vti’)
reader.Update()reader0 = vtk.vtkXMLImageDataReader()
reader0.SetFileName(‘…/data/vtk/object_05.vti’)
reader0.Update()alphaChannelFunc = vtk.vtkPiecewiseFunction()
alphaChannelFunc.AddPoint(0, 0.0)
alphaChannelFunc.AddPoint(50, 0.05)
alphaChannelFunc.AddPoint(51, 0.5)
alphaChannelFunc.AddPoint(255, 0.5)colorFunc = vtk.vtkColorTransferFunction()
colorFunc.AddRGBPoint(0, 0.0, 0.0, 0.0)
colorFunc.AddRGBPoint(50, 0.1, 0.1, 0.1)
colorFunc.AddRGBPoint(51, 0.5, 0.5, 0.5)
colorFunc.AddRGBPoint(100, 0.7, 0.7, 0.7)
colorFunc.AddRGBPoint(150, 0.9, 0.9, 0.9)volumeProperty = vtk.vtkVolumeProperty()
volumeProperty.SetColor(colorFunc)
volumeProperty.SetScalarOpacity(alphaChannelFunc)volumeMapper = vtk.vtkGPUVolumeRayCastMapper()
volumeMapper.SetInputConnection(reader.GetOutputPort())
volumeMapper.AddInputConnection(reader0.GetOutputPort())volume = vtk.vtkVolume()
volume.SetMapper(volumeMapper)
volume.SetProperty(volumeProperty)renderer = vtk.vtkRenderer()
renderWin = vtk.vtkRenderWindow()
renderWin.AddRenderer(renderer)
renderInteractor = vtk.vtkRenderWindowInteractor()
renderInteractor.SetRenderWindow(renderWin)renderer.AddVolume(volume)
renderer.SetBackground(0,0,0)
renderWin.SetSize(800, 600)def exitCheck(obj, event):
if obj.GetEventPending() != 0:
obj.SetAbortRender(1)renderWin.AddObserver(“AbortCheckEvent”, exitCheck)
renderInteractor.Initialize()
renderWin.Render()
renderInteractor.Start()
Any help appreciated!
-Guillaume