DICOM 3D Viewer
Displaying volume data
The 3D viewer reconstructs a CT, MR, PET, or other volumetric series into an interactive volume rendering that can be rotated, sliced, recolored, and lit in real time. Typical uses include reviewing CT angiography, inspecting bone or vascular anatomy, surgical-planning views, and quickly conveying findings to colleagues or patients. Available since Version4.1.0, with major rendering and synchronization improvements in Version4.7.0.
Internally, the volume is rendered on the graphics card using a ray-casting algorithm implemented in GLSL shaders, so a modern GPU is required (see Requirements) but no extra installation step is necessary.
Requirements
The graphics-card capabilities used by Weasis are reported under OpenGL Support in File > Preferences > Viewer > 3D Viewer:
- Driver version β requires OpenGL 3.3+ since Version4.7.0. Two rendering backends are used depending on the available OpenGL version:
- OpenGL 4.3+ β uses a Compute Shader for optimal performance.
- OpenGL 3.3 β 4.2 β uses an FBO-based Fragment Shader fallback (fully functional, but may be less performant than the Compute Shader path). macOS is capped at OpenGL 4.1 and therefore always uses this path.
- Max 3D texture dimension length β the upper limit, in voxels, of any X / Y / Z dimension of the volume.
- Any other entry shown in red indicates a non-optimal configuration. The viewer often still works β see how to limit the size of 3D textures if performance becomes an issue.
Note
If Weasis reports a graphics card that is not the one you expected, the choice is made by the graphics driver and the operating system, not by Weasis. OpenGL itself has no API to select a specific card; consult your OS’s GPU-selection settings for the application.
Open the 3D viewer
Open the viewer by clicking in the toolbar of a series view, by double-clicking the series thumbnail, or by right-clicking the thumbnail in the DICOM Explorer and choosing the 3D viewer.
Tip
If the series is a multi-phase 4D acquisition (e.g. a cardiac CT with several temporal phases), Weasis automatically splits it into individual phase sub-series when 2β7 phases are detected. For series with 8 or more phases, a confirmation dialog is shown first. Open any resulting phase sub-series to render it in the 3D viewer. See 4D Series Sub-Series Splitting for details.
Try it on a volume dataset (Medical Demos from data.kitware.com)
The same patient orientation axes as the MPR views are drawn in the 3D view since Version4.7.0.
Info
DICOM SEG segmentations linked to the series are rendered in the 3D viewer too β see Segmentation overlay in the 3D Volume Renderer.
Toolbar A
Actions in the toolbar:
- Reload volume β fully reloads the volume from the source series.
- Orthographic / Perspective projection β toggles between orthographic projection (parallel lines preserved, no foreshortening β useful for measurements) and perspective projection (depth cues, more natural-looking view). Perspective is the default.
- MPR Crosshair Cut β opens the cut mode to interactively clip the rendered volume along the anatomical planes defined by the MPR crosshair.
- 3D preferences β opens the Preferences.
Other toolbar buttons (LUT, reset, layout, synchronizeβ¦) are documented in the sections below.
MPR Crosshair Cut Mode
Since Version4.7.0 the 3D viewer can display an MPR crosshair overlay synchronized with the MPR viewer, allowing you to clip the rendered volume along the anatomical planes defined by the crosshair position and orientation. The crosshair position and rotation stay synchronized in real time between the 2D MPR planes and the 3D rendering.
Recommended workflow
- Open the MPR viewer from a series view.
- In the MPR toolbar, click β this splits the current tab into a side-by-side layout with the MPR views on one side and the 3D volume rendering on the other.
- In the 3D view, activate a cut mode using the toolbar button or by right-clicking and selecting MPR Crosshair Cut.
Alternative workflow
Open the 3D viewer first, then activate a cut mode from the toolbar or the right-click menu. The MPR viewer opens automatically for the same series, but in a separate tab. To obtain the side-by-side layout, drag the MPR tab and dock it next to the 3D view using the docking handles.
Cut modes
- No cut β no clipping; the full volume is rendered.
- 18 directional modes β clip the volume in halves, quarters, or eighths relative to the MPR crosshair position, along each anatomical axis (Left / Right, Anterior / Posterior, Superior / Inferior).
The crosshair overlay uses the same LPS axis color coding as the MPR viewer.
3D View Synchronization
Since Version4.7.0 the 3D viewer can host multiple side-by-side views of the same volume and keep them coordinated. Because every 3D view in the container shows the same volume, the auto-sync button is always visible. A single synchronization profile bundles a per-action toggle list with camera-level actions enabled by default and photometric / rendering actions left opt-in.
Toolbar “Synchronize” checkbox
The Synchronize checkbox in the toolbar drives the global on/off state for the 3D container. It defaults to ON. Toggling it propagates the new state to every per-view auto-sync button on the next refresh.
Per-view auto-sync button
When the layout has two or more views, a small auto-sync button appears in the bottom-right corner of each view. Its tint reflects the per-view state β red when sync is OFF for the view, green when ON. Clicking the button opens a popup with:
- Synchronize this view β master on/off toggle for auto-sync on this view (also mirrored into the toolbar Synchronize checkbox so the toolbar state always reflects the active view).
- Per-action toggles β independent checkboxes that decide which actions this view propagates to (and receives from) the other 3D views. The popup stays open while you flip several options.
- Apply to all views β copies this view’s effective per-action map to every other 3D view in the container. Unlike the 2D variant of this entry, no FoR filtering is applied because all 3D views share the same volume.
Right-click “Synchronize” submenu
The view’s right-click context menu also exposes a Synchronize submenu with the same per-action toggles and the same Apply to all views entry, useful when you want to adjust the sync map without first enabling/disabling the master toggle.
Per-action defaults
| Group | Action | Default |
|---|---|---|
| Camera | Pan | ON |
| Camera | Zoom | ON |
| Camera | Rotation (slider rotation + axis selection) | ON |
| Photometric | Window / Level | OFF |
| Photometric | Preset | OFF |
| Photometric | LUT Shape | OFF |
| Photometric | Invert LUT | OFF |
| Photometric | LUT | OFF |
| Rendering | Rendering Type | OFF |
| Rendering | Volume Opacity | OFF |
| Rendering | Volume Shading | OFF |
| Rendering | Orthographic projection | OFF |
| Rendering | MPR Crosshair Cut | OFF |
Camera-level actions are on by default because keeping multiple 3D views framed identically is the common workflow when comparing rendering types or LUT presets side by side. Photometric and rendering actions are opt-in because the typical reason to open a second 3D view is to diverge on those settings (e.g. one view in Composite with a soft-tissue LUT, the other in MIP).
Note
The view you are actively interacting with always applies its own changes locally, even when the corresponding action is unchecked in its sync map. Only other views gate on the per-action toggle. This keeps sliders and mouse drags responsive while letting you decide which actions propagate to the rest of the container.
3D Rendering Tools
This tab groups every control that affects how the volume is rendered. To return to the original settings, click the toolbar button or pick Reset from the context menu.
Windowing and Rendering B
Some of the options below are also accessible from the toolbar and the right-click menu.
- Window β width of the voxel-value range mapped to the displayed value range.
- Level β center of the range defined by Window.
- LUT Shape β transfer function applied between input and display values: linear, sigmoid, or logarithmic. Default is linear.
- LUT β a 3D Lookup Table that maps grayscale voxel values to color, opacity, and lighting for visualization. Picking a LUT from the toolbar or the right-click menu is usually easier: LUTs there are ordered by modality and shown with a preview.
- Invert LUT β flips the LUT direction.
Volume Rendering C
Controls for the rendering algorithm, quality, transparency, lighting, and shading.
- Type β defines the rendering algorithm applied to the volume:
- Composite β classic volume rendering. Each voxel contributes color and opacity along the ray, blended front-to-back to produce the final image.
- MIP Max β Maximum Intensity Projection. Keeps the highest-intensity voxel encountered along each ray. Useful for highlighting bright structures such as contrast-enhanced vessels or bones.
- MinIP β Minimum Intensity Projection. Keeps the lowest-intensity voxel along each ray. Useful for visualizing air-filled structures such as airways.
- MIP Mean β Mean Intensity Projection. Averages intensities along each ray, producing a smoother representation of the volume.
- Iso Surface β renders a 3D surface at a given intensity threshold, representing structures of a uniform density (e.g. bone segmentation).
- Z-axis sampling β distance between successive samples along each ray. Smaller values capture more detail at the cost of compute time; the default is derived from the volume size.
- Opacity β global opacity factor for the voxels. Can be pushed above 100 % to compensate for the lower-than-100 % values defined by some Volume LUTs.
- Shading β enables shading on the rendered surface. The default is taken from the Volume LUT; the additional options let you override the inherited lighting settings.
Transform D
Zoom the volume and rotate it around the three patient axes:
- Zoom slider β scales the rendering.
- Rotation sliders β rotate around the Left / Right, Anterior / Posterior, and Superior / Inferior axes (LPS coordinate system).
Preferences
From the menu File > Preferences > Viewer > 3D Viewer.
OpenGL Support
Information about the graphics card and OpenGL capabilities, see Requirements.
3D Viewer
- Default layout β preferred layout used when opening the 3D viewer. Available layouts: 1Γ1 (single view, default), 1Γ2, 2Γ1, 1Γ3, 2Γ2.
- Max 3D texture size β maximum volume dimensions, both in X / Y (image width and height) and in Z (number of images in the stack composing the volume).
Note
The maximum 3D texture defaults come from the graphics card. Lowering them (e.g. to 512) can produce a more fluid rendering on hardware that struggles with the full-size texture.
Volume Rendering
- Dynamic quality β reduces the rendering quality along the Z axis while you rotate or modify the view, for a smoother interaction. At the maximum slider position there is no quality reduction.
- Default orientation β preferred starting orientation. Default: anterior view rotated 15Β° to the right and 15Β° downward.
- Background color β background color of the rendered scene.
- Light color β color of the light used to illuminate the rendering.
Video tutorials
Display an MR angiography series as a volume rendering, then switch to a MIP projection or pick a 3D LUT and adjust the window / level values:
