Volume Rendering Viewer (Unity + SimpleITK)

Unity-based medical volume rendering viewer with SimpleITK loading, orthogonal MPR views, ROI editing, interactive 3D controls, cinematic volume rendering modes, and BraTS tumor segmentation overlay support.

Demo

Volume Rendering Viewer Unity Demo

Environment

  • Unity Editor: 6000.3.6f1
  • Sentis: 2.5.0
  • SimpleITK: 2.5.3
  • ITK: 5.4.5
  • Platform: macOS (arm64) / Windows (x86-64) / Android (arm64-v8a)

Controls

The viewer uses a 2x2 panel layout: ABC views, 3D view

Keyboard:

  • E / Q: Global zoom in/out
  • R: Reset volume rotation/scale, ROI, and zoom to the initial state

Mouse in 2D panes (A/B/C):

  • Mouse wheel: Move slice position on the pane axis
  • Drag ROI handles (overlay points): Adjust ROI box

Mouse in the 3D pane (bottom-right):

  • Left-click drag: Arcball-style 3D rotation
  • Mouse wheel: Global zoom

Rendering Modes

The SimpleITKVolumeRenderer component now exposes the following 3D rendering modes in the Inspector:

  • Unlit: transfer-function-based Direct Volume Rendering (DVR)
  • Isosurface: thresholded surface shading
  • CinematicStandard: gradient-based cinematic shading
  • CinematicAmbientOcclusion: cinematic shading with local ambient occlusion
  • CinematicHybrid: cinematic shading with volumetric shadowing and scattering blend

Notes:

  • CinematicAmbientOcclusion and CinematicHybrid are significantly more expensive than Unlit / Isosurface.
  • Desktop GPUs (macOS / Windows) are the intended target for the heavier cinematic modes.
  • Android can still run the same shader path, but lower maxSteps, cinematicShadowMaxSteps, and cinematicAoSamples are recommended.

VolView Porting

This Unity project was developed alongside Kitware VolView as a reference for cinematic volume rendering workflows and parameter tuning.

  • VolView is not a runtime dependency of this Unity viewer.
  • VolView keeps its own Apache-2.0 license.

Sample Data

Default sample path: Assets/StreamingAssets/Sample

  • Example formats: .mhd/.zraw, .nrrd, DICOM folder

Segmentation

This viewer can either load a pre-generated segmentation volume or generate one in the Unity Editor.

Editor generation:

  1. Put the volumes in Assets/StreamingAssets/Sample
  2. Set sampleFileName to a volume
  3. Use Generate Segmentation Volume from the SimpleITKVolumeLoader component menu on the Volume object
  4. The generated file is saved in Assets/StreamingAssets/Sample and assigned automatically

Overlay behavior:

  • The color map is loaded from StreamingAssets with segmentationColorMapFileName.txt
  • Text format: label,name,(r,g,b) or label,name,(r,g,b,a)

Segmentation Example:

This project uses the MONAI Model Zoo brats_mri_segmentation bundle and runs the exported ONNX model in Unity with Unity Sentis.

License

Unity Companion License

[volumerendering-viewer-unity] © 2026 Unity Technologies

Licensed under the Unity Companion License for Unity-dependent projects (see https://unity3d.com/legal/licenses/unity_companion_license). Unless expressly provided otherwise, the Software under this license is made available strictly on an "AS IS" BASIS WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED. Please review the license for details on these and other terms and conditions.

Downloads last month
-
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support