I want to boot up with my very own color map and a black background

Operating system:OSX
Slicer version:4.11.20200930
Hoped for behavior: Boots with black background in Volume Rendering and either has VolumeProperty_MINE loaded up or on the default list of Presets.
Actual behavior:Boots with medical maps and gradient blue background

How did you specify the black background and custom volume rendering presets?

Andras, I am not finding an option in Settings to do these two things. I can turn off the 3d cube, but not set the background color in Settings>Views, but there is nowhere to pick a default background even from among the three on offer in the pull down for the 3d view. I also cannot find a place to add my volume property.

We only expose very commonly used settings on the GUI. You can change more settings by opening your application startup script (menu: Edit → Application Settings / General → Application startup script) and specify any additional settings there. For example, copy-paste this to change 3D view background color, and copy-paste (and adjust) this to specify custom volume rendering presets.

If you would like to access these features via GUI then you can submit feature requests, include links to those issues here, and wait for others to add “thumbs-up” to those issues. We’ll make sure that most frequently asked issues will be implemented.

1 Like

Andras, you have solved my problem! Thanks so much. I am sorry that I could not track this down in the manual or wiki.

Where did you look? What keywords were you searching for? Maybe we can improve the documentation to make these easier to find.

I tried “set default background color”, “change volume background at startup”, “load volume property at startup” and “load custom colormap at startup”. The background color change was easy. The directions for custom presets are more sparse. I am working my way through them and hope to have some suggestions.

And thanks again for getting a good answer so quickly. Little things make a difference to old people learning new stuff.

-Adam

Ok…I have hit a roadblock. I am following the guidance here:

https://slicer.readthedocs.io/en/latest/developer_guide/modules/volumerendering.html#how-to-register-custom-volume-rendering-presets

I have a new file called MyPresets.mrml in my Slicer Scene Location directory along with a PNG thumbnail.

Now I come to this instruction…
" Use the following code to read all the custom presets from MyPresets.mrml and load it into the scene:"

I do not know how to ‘use’ the code. I pasted it in the Python interpreter window. That did not work. I am betting I have to add to some file…but I do not know which one.

-Adam

That’s correct. Replace “MyPresets.mrml” by the full path of your presets mrml file and copy-paste it into the Python console (pay attention to this if you are on Windows). If this all works then you can either add the code to the startup script or add it to a scripted module (as it is done here).

No problem at all - it is great to have you here “Fabulous Fish Guy”.

For those who haven’t seen Finding Nemo (or did not pay close attention to the credits):

This works very well. However, is there any way to show my custom presets at the top of the list, as oppose to get appended to the very last?

In fact, is there any way to remove (or at least not displayed) some of those Slicer presets?

I’ve added an option to allow inserting preset to the first or last position (will be available in tomorrow’s Slicer Preview Release).

You can call vrLogic.RemovePreset() to remove any of the built-in presets.

Since volume rendering has hundreds of parameters (3 transfer functions with many points, material parameters, lighting parameters, quality settings, custom shaders with many parameters, etc.) the general-purpose Volume Rendering module cannot expose all of these and remain simple and easy-to-use. There will be volume rendering modules optimized for certain applications (for example, we have one for 4D cardiac echo volume rendering). You may consider creating specialized volume rendering module(s) for your applications.