Issue with HDRI as environment texture
Hello,
I am facing an issue with HDR rendering in VTK 9.0.1
My perso has some artifact in one side where the other is fine.
Side with artifacts:
Side ok:
Input Files:
Python code:
import os
import vtk
def loadMesh(filename):
file_extension = os.path.splitext(filename)[1].lower()
if file_extension == ".gltf" or file_extension == ".glb":
if not os.path.exists(filename):
print("loadGLTF ERROR: %s does not exist !" % filename)
return []
importer = vtk.vtkGLTFImporter()
importer.SetFileName(filename)
importer.Update()
importer.InitializeObjectBase()
vtkActors = importer.GetRenderer().GetActors()
vtkActors.InitTraversal()
actors = []
for _ in range(vtkActors.GetNumberOfItems()):
actor = vtkActors.GetNextActor()
actor.ForceTranslucentOff()
actor.name = "Mesh"
actor.color = actor.GetProperty().GetColor()
actor.polydata = actor.GetMapper().GetInput()
actors.append(actor)
return actors
else:
raise RuntimeError('Exception loadMesh: Unknown file_extension %s' % file_extension)
hdr = "spiaggia_di_mondello_1k.hdr"
gltf = "STAFF_1.glb"
renderer = vtk.vtkOpenGLRenderer()
actors = loadMesh(gltf)
for actor in actors:
renderer.AddActor(actor)
reader = vtk.vtkHDRReader()
reader.SetFileName(hdr)
reader.Update()
texture = vtk.vtkTexture()
texture.MipmapOn()
texture.InterpolateOn()
texture.SetColorModeToDirectScalars()
texture.SetInputConnection(reader.GetOutputPort())
renderer.SetBackground(0.8, 0.8, 0.8)
renderer.UseImageBasedLightingOn()
renderer.SetEnvironmentTexture(texture)
renderWindow = vtk.vtkRenderWindow()
renderWindow.AddRenderer(renderer)
renderWindow.SetSize(800, 600)
renderWindowInteractor = vtk.vtkRenderWindowInteractor()
renderWindowInteractor.SetRenderWindow(renderWindow)
renderWindowInteractor.Initialize()
renderWindowInteractor.SetInteractorStyle(vtk.vtkInteractorStyleTrackballCamera())
renderWindowInteractor.Start()