Models not Transparent in Slicer 4.10.1

Dear all,

We are currently working with Slicer 4.4.0 and Slicer 4.10.1. In Slicer 4.4, we can make models transparent using the opacity button: in the image below, the gray ‘leftpial’ surface is at .5 opacity, the green ‘rightpial’ surface is at 1. If we try to use the Models module in Slicer 4.10.1, the surfaces are always opaque. If we set the opacity at 0.9, the model will disappear. Any suggestions? We can work for now in 4.4 for the visualizations, but it’d be nice to have this working in 4.10.1.
SlicerTransparent

I tried loading a model in Slicer 4.10.1 and was able to change the opacity without any issue. I should clarify this was on Windows while I see you are using the Linux version.

models-opacity

Try the latest nightly. The Models module was largely reimplemented since 4.10.1, so maybe that helps. If not, then it’s your data, and we’ll need it to fix the issue.
Let us know either way. Thanks!

To correctly display semitransparent surfaces you need to enable depth peeling - see Mixed volume rendering and surface representation of segmentation has incorrect 3D appearance if segment is not fully opaque

Depth peeling is a fairly buried setting for new users. Is there a reason or downside why it is not being enabled by default?

1 Like

Depth peeling should not be needed to avoid the bug @Nicole_Seider is reporting.

I just created some models and verified that opacity works fine with depth peeling off. There is another reason for her dataset to behave like this in her environment (GPU, driver, Slicer version, etc.)

Yes, models should look transparent regardless of depth peeling enabled or not. Semi-transparent just not appear with correct opacity if depth peeling is disabled.

Depth peeling makes rendering slower and had some problems in the past. With current graphics hardware and VTK’s current rendering backend, these issues are mostly resolved, so I think we could enable depth peeling by default. What do you think @pieper @jcfr @cpinter @fedorov?

@lassoan This should not happen with or without depth peeling. The reported issue I think is independent of the current discussion about depth peeling default setting.

About that discussion: Although rendering without depth peeling is still 50% faster than with depth peeling (based on a very quick test), I think it could be enabled by default.

I agree - there should be no penalty unless there are translucent surfaces, and it helps resolve what can be a very confusing situation.

Thanks everyone for the suggestions. We downloaded and testing the latest nightly version of slicer (rev 21852 for Linux), found and enable depth peeling (it would be nice it this wasn’t buried), but it had no effect on 4.10 or 4.11 (4.4 on Linux still works properly).

To make things interesting, we can load and visualize the model properly with different opacities (and without turning on depth peeling) on a local Mac machine. 10

Since it seems the issue might be related to my data and to the Linux version of Slicer, how do I share the necessary files for further troubleshooting?

You can post a Dropbox/onedrive/google drive link here that shares your data set.

You can also post the Slicer log file. So load your model and then under I believe the “Help” file menu you can go to “Report a bug” which shows the current and recent log files. You can then post this text document which should also include information about your Linux machine at the very top.

Hopefully we can narrow down between data set and the Linux version of Slicer!

I’ve uploaded the model file and Linux log files here: https://drive.google.com/drive/folders/1_jSZrO4WelVRH8uAqa7OhjV5AVNFaVom?usp=sharing

If you have any trouble accessing the files, please let me know. Thanks again to everyone for all the help so far!

What graphics card do you have? Are your drivers up-to-date? Slicer-4.4 uses 15-year-old OpenGL API, while Slicer-4.10 uses 6-8-year-old APIs, so very old GPU drivers may be a problem for Slicer versions released in the last few years.

How is the rendering if you convert it to a segmentation node? To create a segmentation from the model node, go to Data module, right-click the model, and select “Convert model to segmentation node”; you can then delete the model node and adjust opacity of the segmentation node in Segmentations module).

How is rendering if you use ParaView 5.6?

The attached log file did not contain any errors. Transparent visualization of the model that you’ve uploaded worked fine for me on Windows, using Slicer-4.10.1.

I’ve updated Slicer nightly version to enable depth peeling by default. It only has effect if Slicer.ini does not exist (Slicer has not been installed before or the .ini file is deleted).

Our IT replies the following: 04:03.0 VGA compatible controller [0300]: Matrox Electronics Systems Ltd. MGA G200eW WPCM450 [102b:0532] (rev 0a)
The drivers haven’t been updated in years, but since it’s an older model IT thinks it is on the latest update for that driver.

IT just installed ParaView5.6 for me, so I’ll test that and report back.

That computer is about 10 years old, which is too old to run recent versions of Slicer (due to incompatibility of the graphics chipset/driver). Current Slicer versions require computers that are not older than about 5 years.

After several months, we finally got a new Linux machine with a newer graphics card, specifically NVIDIA Corporation GM206 [GeForce GTX 960]. I can confirm that the visualization works appropriately now. Thanks to everyone for the assistance and suggestions!

2 Likes