Volume Rendering module UI redesign

Is there any plan to revamp the volume rendering module for upcoming stable or is it the too much to deal without specific funding?

At the minimum, without touching the core or adding any features, I would suggest reorganizing the UI with a multi-tab approach. First tab being the the parameters that broadly applies (GPU rendering settings, options) to everything. And the display and volume specific settings would be moved to another tab that has the (now familiar) data or markup node display, and all specific properties that can be set per volume basis.

Can you draw a proposed design in some desktop GUI mockup tool (such as pencil)?

ok. Will try to do one…

This is the first time I try something like this, apologies for lack of clarity. Here are some explanations.

The main volume rendering module would have two tabs: Technique and Volume Rendering.

Technique is fairly empty, and perhaps future rendering techniques (Osprey or Prism etc) can be added and listed here (as oppose to having their own modules). Basically this should contains that effects the volume rendering of everything, not just an individual volume.

Volume Rendering is mostly the same, except there is now hierarchy view and the properties can be modified by clicking on them. Advanced section is continuation of Volume Property with additional settings, and perhaps Lights module can be incorporated here (although as I understand that impact not just the VR module, but everything in the 3D viewer). This way the Scalar Opacity maps can be given somewhat higher area without making the module tab extremely long. I always find them too small to manipulate points precisely, and that little zoom scrollbar never worked for me.

VR_UI_small

It makes sense to separate common settings from volume-specific settings a bit more clearly, and a separate tab would serve this purpose well. We already have top-level tab control in other modules (Data, Sequences, and Plots modules already), so it would not introduce a new GUI design element. It could also make sense to add lights settings nearby, but as you have noted, lights settings applies to all rendered objects (not just volume rendering) and lighting settings can be different for each view - so probably it is cleaner to adjust lights in a dedicated module.

Using a tree view would also make the module more convenient and consistent with other modules (Models, Markups).

I don’t see where ROI and Volume property node selector went.

You kept the tabs inside the Display section (Volume properties, Advanced), which I think makes things a bit more complicated (and not consistent with GUI of other modules). It could be better to move them into the usual collapsible sections, one above the other.

They work reasonably well. What do you do, what do you expect to happen, and what happens instead?

I assumed they would be listed in the tree view and dragged in and out of the associated volume node to change (more than one VP can be nested under a volume, a little selection button can help choose ). So there wouldn’t be a need for a separate selector. But I can see this being an issue if you were to share a volume property or an ROI with two volumes. Perhaps cloning them in this case would help. What I am not sure is how this would work with presets.

Adding all options into a single module panel is of course is an option, but it will suffer from the same problem that Markups module has. When all of the collapsible tabs are expanded, the module is very long and scrolling up and down quite necessary.

Anyways, just a thought.

Showing the ROI in the view is an interesting idea, but we don’t have to do it. Instead, the tree can be filtered to only show volume nodes.

If we go with the tree view, I think we should; not just the ROI but the VP too. Currently there is no mechanism to modify a VP without actually setting it to active under the properties. Assumption, here you can click on it, modify the settings without it being assigned to a specific volume.

I think this gives a cleaner view of what is set for a particular volume.