Hello everyone,
I am having a considerable amount of trouble getting vtk to render my 3d model with its textures.I am using the python module for vtk with trame.My version of vtk is 9.5.1
from trame.app import get_server
from trame.ui.vuetify import VAppLayout
from trame.widgets import vtk as tramevtk
from trame.widgets import vuetify
import vtk
import os
print(vtk.vtkVersion.GetVTKVersion())
renderer = vtk.vtkRenderer()
renderer.SetBackground(\[0.1,0.1,0.1\])
renderer.UseHiddenLineRemovalOn()
renderWindow = vtk.vtkRenderWindow()
renderWindow.AddRenderer(renderer)
renderWindowInteractor = vtk.vtkRenderWindowInteractor()
renderWindowInteractor.SetRenderWindow(renderWindow)
interactor_style = vtk.vtkInteractorStyleUser()
renderWindowInteractor.SetInteractorStyle(interactor_style)
static_folder = "../resources/models/"
importer = vtk.vtkGLTFImporter()
importer.SetFileName(os.path.join(static_folder, "reduceshuman.glb"))
importer.SetRenderWindow(renderWindow)
importer.Update()
actors = importer.GetImportedActors()
print(actors.GetNumberOfItems())
for actor in actors:
prop = actor.GetProperty()
if prop.GetNumberOfTextures() > 0:
print("Texture is applied.")
else:
print("No texture applied.")
ambient_light = vtk.vtkLight()
ambient_light.SetLightTypeToSceneLight()
ambient_light.SetColor(1.0, 1.0, 1.0) # White light
ambient_light.SetIntensity(1.0) # Make sure it's not too strong
renderer.AddLight(ambient_light)
renderer.ResetCamera()
\# Setup Trame
server = get_server(client_type="vue2")
ctrl = server.controller
with VAppLayout(server) as layout:
with layout.root:
with vuetify.VContainer(
fluid=True,
classes="pa-0 fill-height",
):
view = tramevtk.VtkLocalView(renderWindow)
ctrl.on_server_ready.add(view.update)
if \__name_\_ == "\__main_\_":
server.start()
The Model is supposed to have a yellow texture on it however currently it is completely white.
The Code does print out “Texture applied” once, which would mean that the texture is being recognized but for some reason not applied.
I would appreciate some help