As i understand 3D Slicer is mainly built on VTK and ITK. I understand answers to the following will depend on the type of data and size of data and what you are going to do with it but in general is it possible to tell,
How do you decide on the optimal physical RAM ?
How do you decide on the optimal GPU and VRAM ?
Is the volume rendering mainly calculated in the CPU and only the final stages is done on the GPU ?
What calculations are done by the CPU and what calculations are mainly done by the GPU ?
What basic functions mainly depend on CPU resources and what functions mainly depend on GPU resources ?
This somes pretty often, I wonder if need to make this a FAQ?
All calculations are done on CPU, except for 3D rendering, which can be done on GPU.
HW requirements depends entirely on your dataset. HW requirements of a clinical 256x256x256 typical MR scan will easily be handled any recent laptop.
Optimal RAM is usually 6-10X of the largest dataset you are planning to work on.
GPU Texture memory (VRAM) should be larger than your largest dataset (eg., working with 2GB data, get VRAM > 4GB).
GPU openGL HW capabilities should also match the texture dimensions of your dataset (check from https://openGL.gpuinfo.org)
If you set the volume rendering option is set to GPU RAycasting, all rendering is done on GPU. If it is set to CPU Raycasting, only CPU is used (whether you have dedicated GPU or not).
Recommended hardware page is here: https://www.slicer.org/wiki/Documentation/Nightly/SlicerApplication/HardwareConfiguration
I’ve updated it using @muratmaga’s comments above.