In the long term, probably we will need custom volume rendering methods for each rendering use case. These specialized methods will have more inputs than just a volume and ROI (for example they may take additional points, lines, volumes, segmentations, sliders, checkboxes, combo boxes, etc.) and many of the parameters that are currently shown in Volume rendering module will not be necessary to modify.
To get there, the current plan is to:
- keep Volume rendering module more or less as is
- use PRISM module to allow specification and testing of advanced volume rendering methods
- create custom modules for each major rendering scenario with a simple user interface, which exposes all the necessary options and only those. For example we could have separate modules for 4D cardiac echo, 4D endovascular CT, brain MRI surgical planning, brain MRI real-time surgical guidance. These would be simple and small Python scripted modules that could be easily cloned and customized easily for new applications. These modules can be small because they are all just thin wrappers around features provided by other lower-level modules.
We already have such a custom volume rendering module for 4D cardiac echo, which we will refine and can use as a template for other modules. Until these specialized modules come out, you can use PRISM directly (any suggestions are welcome about how to make it more convenient) or you can implement your own custom module that allows users to choose input nodes and parameters and sets up volume rendering accordingly.