VTK9 regression: vtkFollower unpickable

This works fine in vtk8 but fails in vtk9 for objects with opacity < 1:

import vtk

cone = vtk.vtkConeSource()

coneMapper = vtk.vtkPolyDataMapper()
coneMapper.SetInputConnection(cone.GetOutputPort())

coneActor = vtk.vtkFollower()
coneActor.SetMapper(coneMapper)
coneActor.GetProperty().SetOpacity(0.5)  # BUG

ren = vtk.vtkRenderer()
ren.AddActor(coneActor)

renWin = vtk.vtkRenderWindow()
renWin.AddRenderer(ren)

iren = vtk.vtkRenderWindowInteractor()
iren.SetRenderWindow(renWin)

def myCallback(iren, event_string):
    x, y = iren.GetEventPosition()
    picker = vtk.vtkPropPicker()
    picker.PickProp(x, y, ren)
    print('clicked', [picker.GetActor()])

iren.AddObserver("LeftButtonPressEvent", myCallback)
iren.Initialize()
iren.Start()

vtk8.1.2:

clicked [(vtkmodules.vtkRenderingCore.vtkFollower)0x7fad9af27b40]

vtk9.0.1:

clicked [None]

I’ve tried this script in VTK 8.2 and VTK 9.0 and in both just got clicked [None].

Adding coneActor.ForceOpaqueOn() fixes the issue.

1 Like

Thanks!