Рендеринг файла gltf/glb в блокноте jupyter с использованием vtk и k3d

Я изучил доступные методы рендеринга файла gltf/glb встроенным в блокнот jupyter, чтобы сохранить интерактивность обратного вызова средства просмотра. В конце концов я использовал vtk и k3d для этого. У меня есть два препятствия:

  1. Как использовать vtkGLTFReader() для получения объектов vtkPolyData из glb и визуализации их в k3d? РЕШЕНИЕ: См. Метод, опубликованный в комментариях.

  2. Как отобразить цвета / текстуры, встроенные в gltf/glb, чтобы показать их в k3d?

1 ответ

Вот код для получения vtkPolyData и передачи его в k3d.

import k3d
import vtk
import ipywidgets as widgets

reader = vtk.vtkGLTFReader() 
reader.SetFileName('sample_glb/GroundVehicle.glb')
reader.Update() 

plot = k3d.plot()
mb = reader.GetOutput()

iterator = mb.NewIterator()

vtk_polyobjects = []
while not iterator.IsDoneWithTraversal():
    item = iterator.GetCurrentDataObject()
    vtk_polyobjects.append(item)
    iterator.GoToNextItem()

    
for obj in vtk_polyobjects:
    plot += k3d.vtk_poly_data(obj, color=0x222222)
plot.display()

debug_info = widgets.HTML()
Другие вопросы по тегам