How often do people make scenes with multiple volume rendered data sets in them and where gradient shading is turned on for some volumes but not for others?
We are doing some feature planning for OSPRay and the question came up about how practical this capability is and whether it might be better to move this control to the renderer level instead of the volume mapper level.
thanks for any insight and feedback you can offer
In 3D Slicer we rely on multi-volume rendering more and more. We disable shading when we want to simulate an X-ray projection (DRR or MIP) and we may still want to render other objects with shading, so there are use cases for mixed shaded/non-shaded visualization. However, having shading globally enabled for all actors would not be a huge issue, as we can still effectively disable shading by setting diffuse and specular reflection components to 0.
If for some reason internally it makes more sense to globally enable/disable shading, then it would be nice if VTK internally set diffuse and specular reflection components to 0 for volumes that have shading disabled (just to avoid annoying VTK users with unnecessary API changes).
It is exciting to hear about OSPRay volume rendering developments. Post pictures whenever you have something working! We keep getting questions about photorealistic volume rendering (called “Cinematic rendering” in medical imaging) and it would be good to know what we can expect.
Andras, the way it is being proposed would be the equivalent of Diffuse=1,1,1 for all volumes or none, so you would not be able to selectively change it for individual volumes to disable/enable gradient shading. This is only for the “scivis” renderer. In regards to photorealistic rendering, we actually already introduced the volumetric path tracer which can produce some great looking images. See https://www.openvkl.org/ for examples.
What do you mean by “scivis” renderer? We use
vtkMultiVolume actor. Would this be impacted by the planned change?
We would definitely want to keep the ability to set different ambient, diffuse, specular lighting components for each volume. GPU volume raycast mapper is the bread and butter of all our volume renderings and probably it will not be replaced by path tracing anytime soon (because it is so much slower and/or requires special hardware, more complicated to set up, etc.).
Sounds great! Are there any examples how to use it in VTK?
Andras, I should have been clearer. We are discussing “OSPRay” rendering modes, and it’s useful to hear that the ability to change per volume parameters is widely used. None of this will affect the GPUVolumeRayCastMapper. As for OSPRay and VKL, VKL is actually already part of OSPRay and you can produce similar images to those with the built-in OSPRay rendering mode using the “path tracing” pull down. We should have better tutorials out there for using it… working on it.