Volume render with transparent surface changes the scene colours.

Hi there,

I am having issues when displaying a volumetric dataset and a transparent dataset at the same time.
I have uploaded an example dataset, a python script to replicate the problem, and a few screenshots to a Google drive folder stored here:
https://drive.google.com/drive/folders/1jsbQ57VHZualbBKNtpN6iYEei2-RRFEj?usp=sharing

In my work, I import a volume .vtu file and apply a calculator filter to it.
Then I view that file and wish to see it as a volume representation.
However, where there is little magnitude of data it can be hard to see the shape of the domain, so I would like to also show a see-through solid coloured model to highlight it.

So do this I try to view the original dataset as a solid colour - which works.
When adjusting the opacity though the image gets blown out.
Any ideas on how to fix this? It seems very similar to this issue, but I do not see the solution:
https://gitlab.kitware.com/paraview/paraview/-/issues/19425

I’ve tried using different volume rendering options with no luck.
I’m using Windows 10 and Paraview version 5.9.0.
The python script will load you up to step 3 in the screenshots so you can have a play with the opacity yourself.

Best wishes,
Charlie

Hi Charlie, Welcome to the ParaView community!

The bug you reference is different, I believe Mathieu’s bug has to do with background color, yours has to do with proper depth sorting. I know this isn’t what you want to hear, but the volume rendering algorithms are incompatible with surfaces within the same view, especially when the opacity is not 1.0. It even gets worse when you are running multiple pvservers on the back end (on a cluster).

Just a few quick ideas.

  • Change the color map. Make it one with more visible range.
  • Edit the color map and opacity functions in the color map editor. Make your object more opaque, surrounding stuff more transparent.
  • Don’t volume render, but rather use the color map editor/ Enable Opacity Mapping for Surfaces.
  • Make multiple contours, make them have different opacities.
  • Split your object with a clip, have half be volume rendered, the other half be contours.

Alan

@CJBright could you share your data ?

Hi Alan and Mathieu,

Thank you both for the replies.

Walter:
Thank you for your suggestions, they seem like they might work - I’ll give them a try!

Mathieu:
I’ve added a few more data pieces to the Google Drive under the directory “Additional Data”:
https://drive.google.com/drive/folders/1jsbQ57VHZualbBKNtpN6iYEei2-RRFEj?usp=sharing
There are 7 files:
3 .vtp surface result files from my simulation for 3 different timesteps.
3 .vtu volume result files form the simulation for the same 3 timesteps.
a .vtk file of the model.
I hope this helps.

Best wishes,
Charlie

I reproduce your issue, and it indeed looks very similar to the issue I opened sometime ago.

A simple workaround is to use “ResampleToImage” VolumeRendering mode instead of Projected Tetra.
Not as precise but the results looks fine imo.

Thanks Mathieu, I didn’t know that would work! Utkarsh always told me mixing was a no-no.

@phismith Ask me the nuance what is going on here.