Speed options for 3D rendering

Whilst DicomObjects (COM & .NET) have been optimised to provide reasonably fast 3D rendering, there are times when (depending on the capabilities of the machine, and the nature of the data) it may be necessary to use "simplified" data for interactive rendering, to give best possible response times.  In most of the cases, this is best done by activating the feature on mouse-down etc. and then disabling (returning to default values) on mouse-up etc.

Downsampled 3D data

This option does NOT permit simple on/off switching between interfactice and static display, and is intended more to reduce memory usage than rendering time, but might be useful in some cases.  It is used by setting the "decimate" value to 2 or greater (to vary the degree of decimation) when creating the DicomVolume object.

Interpolation on/off

This is a quick and easy option to apply, and works for all modes except MPR (which is so fast that optimisations are not normally needed anyway).  It is controlled via the image's Interpolation property.


This applies to VR and MIP/MinIP views, and controls the spacing of the points along the view line that are sampled.  Increasing to N will reduce the rendering time by up to N, at the expense of some quality.


This applies to ALL 3D display modes, and causes the main 3D image to be generated at a reduced resolution, then scaled back up for display.  Increasing to N will reduce the rendering time by up to N squared, at the expense of some quality.

Other Means to improve rendering speed

  • One very useful technique for VR (which tends to be the slowest) is to avoid "partially opaque" transfer function values - that nice "skin glow" around the bone might look nice, but takes a lot of CPU time! 
  • If you need to switch modes, use the new facility to change the object's Mode property (COM only for now) rather than create a new object
  • Similarly, if you need multiple views, create them off the same DicomVolume object - this will reduce memory and load time.