Ospray material colored by cell/point array

Hi everyone,

I’d like to use a material which would have a color directly related to the color of any cell/point data that I have on my polyData.
Is that possible and how should I do that? Basically I’d like to be able to play with the reflectivity and transmissivity of the material but the color would be comming from the cell data not from a fixed color in the material.


It would be great indeed.
This is partially possible on master right now (you can also download the nighly build):

  • Change property Interpolation to PBR, it will automatically switch to the OSPRay Principled material.
  • Choose your array in the ParaView UI.
  • You can modify the reflectivity with the property Roughness and the diffuse/specular distribution using the property Metallic
  • You can also change the Opacity property

Not all the properties of the OSPRay Principled material are exposed but I’d like to improve that in the future.

1 Like

Thanks a lot Michael,

I downloaded last version and gave it a try, it looks promising!
Few questions:

  • my surface colors look a bit “dull”, not bright enough compared to the Gouraud interpolation. I tried to change the luminosity from 0 to 100 and it does not change much, I can’t really see the difference. Using a higher diffuse value gives something brighter but still much less than Gouraud.

  • What’s the difference between the Diffuse parameter and roughness/metallic? I mean, if we choose to increase metallic I guess it would increase specularity, so how is it combined with the diffuse variable?

  • When I increase metallic value up to 1, I get a very dark surface. Is that related to a specific variable in my environment lighting?

I had a closer look at your blog post: https://blog.kitware.com/vtk-pbr/
Do we always need a skybox for PBR to work properly?
I did some testing on a simple sphere with a skybox I downloaded on the web and it looks better, although it looks like the skybox does not cover the full environement.

When using PBR, the diffuse/specular parts are computed automatically from the roughness/metallic coefficients, so let diffuse coefficient to 1 except if you want to artificially reduce it.
Indeed, metallic value to 1 without an environment map will produce a very dark surface because metallic objects do not have diffuse color.
Regarding your skybox, it looks that you have loaded a “cross” map, you need to load an equirectangular map (I recommend this website but you will have to convert the (not supported yet) .exr files to a .png file using ImageMagick for example)

Ok thanks a lot for your reply using an equirectangular skybox fron the indicated website works much better indeed.
The only drawback I see now, is that it’s quite difficult to position the object correctly inside the skybox, especially when you want to put something as if it was on the floor. And there is no reflection on the skybox as well if I don’t make any mistake.
But it gives some interesting perspectives!

The skybox is an infinitely far away object.
You cannot put the object on the floor.
You will have to add a plane to your scene.

Ken Martin added an infinite floor to vtk last year. I do not think it is exposed yet at the paraview level for either ray tracing or rasterization but it has been on my wish list forever.


@Dave_DeMarle That would be indeed a great addition!