I used to receive this as warning in 9.1.0 but I was able to render the glb file in the 9.1.0. Heres the pipeline I used in 9.1.0. It is same as the one above but it had vtkCleanPolyData too.
def render_gltf(input_filename):
# Read PolyData
reader = vtk.vtkGLTFReader()
reader.SetFileName(input_filename)
reader.Update()
# Remove any duplicate points.
cleanfilter = vtk.vtkCleanPolyData()
cleanfilter.SetInputConnection(reader.GetOutputPort())
cleanfilter.Update()
# Convert to polydata
polydata = vtk.vtkCompositeDataGeometryFilter()
polydata.SetInputConnection(cleanfilter.GetOutputPort())
polydata.Update()
# Create a mapper
mapper = vtk.vtkPolyDataMapper()
mapper.SetInputConnection(polydata.GetOutputPort())
# Create an actor
actor = vtk.vtkActor()
actor.SetMapper(mapper)
# Create a renderer
renderer = vtk.vtkRenderer()
renderer.SetBackground(0.1, 0.1, 0.1)
# Create a render window
render_window = vtk.vtkRenderWindow()
render_window.SetWindowName("GLTF Example")
render_window.SetSize(800, 600)
render_window.AddRenderer(renderer)
# Create a render window interactor
render_window_interactor = vtk.vtkRenderWindowInteractor()
render_window_interactor.SetRenderWindow(render_window)
# Add the actor to the renderer
renderer.AddActor(actor)
# Set up camera and render
renderer.ResetCamera()
render_window.Render()
# Start the rendering loop
render_window_interactor.Start()
if __name__ == "__main__":
input_file = r"path\to\Archvis_Empty.glb"# Replace with the path to your input gltf file
render_gltf(input_file)type or paste code here