ospray backend from vtk python

Hello, is possible use the ospray backend from vtk python? If yes can you explain or point to some example?
Thanks
Reynaldo

Hello,
You can use vtkOSPRayPass.
Here is a C++ example but it should work with python:

vtkNew<vtkOSPRayPass> osprayP;

vtkNew<vtkCameraPass> cameraP;
cameraP->SetDelegatePass(osprayP);
renderer->SetPass(cameraP);

vtkOSPRayRendererNode::SetRendererType("pathtracer", renderer); // change this to use OSPRay scvis backend or VisRTX
vtkOSPRayRendererNode::SetSamplesPerPixel(this->Options->Samples, renderer); // number of samples per pixel
vtkOSPRayRendererNode::SetEnableDenoiser(this->Options->Denoise, renderer); // if you want the denoiser
1 Like

Hi Michael, thanks. I have achieved to run with python with the next script but when run only use one thread. Do you know how to set for use more/all available?

filename = sys.argv[1]
useOspray=len(sys.argv)>2

importer = vtk.vtkOBJImporter()
importer.SetFileName(filename + '.obj')
importer.SetFileNameMTL(filename + '.mtl')

renderer = vtk.vtkRenderer()

if(useOspray):
    print("Using ospray")
    osprayPass= vtkOSPRayPass()
    renderer.SetPass(osprayPass)

    osprayNode=vtkOSPRayRendererNode()
    osprayNode.SetSamplesPerPixel(4,renderer)
    osprayNode.SetAmbientSamples(4,renderer)
    osprayNode.SetMaxFrames(4, renderer)
else:
    print("Using opengl")


renWin = vtk.vtkRenderWindow()
renWin.AddRenderer(renderer)
importer.SetRenderWindow(renWin)
importer.Update()

# Create a renderwindowinteractor
iren = vtk.vtkRenderWindowInteractor()
iren.SetRenderWindow(renWin)

actors = renderer.GetActors()
actors.InitTraversal()

print('Number of items:',actors.GetNumberOfItems())
for i in range(actors.GetNumberOfItems()):
    actor = actors.GetNextActor()
    if actor.GetTexture():
        actor.GetTexture().InterpolateOn()

    pd = actor.GetMapper().GetInput()
    mapper = actor.GetMapper()
    mapper.SetInputData(pd)

# Enable user interface interactor
iren.Initialize()
renWin.Render()
iren.Start()

You may want to set OSPRAY_THREADS environment variable.

Already tried this but only use one core anyway.
Thanks