Bug in Create New Volume Property

I have 16 bit dataset where intensity ranges from 0-65535. When I use volume rendering the very first time on this dataset, I can create a scalar opacity mapping that makes sense for this dataset

image

When I go to volume rendering the second time and ask to create a new volume rendering property, this is what I get. I cannot create a transfer function points that exceeds 1024.0, which results in a solid white box for this dataset. (To clarify, I cannot create points pass 1024, nor I can type in a value that exceeds 1024).

image

Sliding the shift all the way to the right, I can only go up to 1968, which is insufficient for this data. Zoom sliders are not useful either.

image

This bug was going on for a while, but now that we are using 16 bit data more and more it is getting quite hard to deal with. The only solution I found is to reset the scene and reload the data, which is tedious for the size of datasets we work with.

You can set any range: after you moved the control point out of the chart region then move the range slider below the plot to show the entire range.

image

After that you can drag the control point to the right again.

I agree that this is not very convenient when you need to significantly increase the transfer function range.

A default volume property node with transfer functions covering the full intensity range of the volume is created automatically. What is the reason for creating a new volume property node?

You can add a volume rendering preset with transfer functions covering a wide range (0 to 32000 or 65000) and selecting that the user could avoid the complicated dragging of transfer function control points. However, I’m not sure why your CTs have this wide intensity range. If they were properly calibrated then their range would be about -1000 to 3000. Do you know why these CTs are not calibrated? What the intensity values correspond to? Could we calibrate (or at least somewhat normalize) their intensity on import or add a module for intensity calibration?

Mostly to test what the differences are or experimenting with coloring scheme. This usually takes more than one take. I ideally would like to clone an existing one continue operating on the cloned one, but currently that doesn’t seem to be the possible.

THat’s the current solution we are looking into, at least for our needs. However, there is no guarantee that the one TF will work as well for the next scan. But still should give a more reasonable starting point then the solid block.

These are all microCT, which rarely (if any) are calibrated. Normally the reconstruction software outputs as these 8 bit PNG images, but to preserve most of the dynamic range (as these are diffusable iodine contrast enhanced soft tissue scans) we chose to keep them as 16 bit tiff sequences.

I know the volume rendering is one of the more challenging parts of the slicer to modify. So for my need, all I need is the “Create New Volume Property” function to perform as exactly the first time rendering (create a simple ramp that covers all the intensity range). Alternative work around would be the ability to clone volume property nodes in the Data module.

If these images have a typical content then having one or few good presets for them would be great.

You can achieve this by a single click on the Synchronize with Volumes module button. I’ve now added activating of this feature automatically when you add a new volume property node using the node selector.

1 Like

This worked great, thank you!