| Literature DB >> 30800321 |
Gavin Wheeler1, Shujie Deng1, Nicolas Toussaint1, Kuberan Pushparajah1,2, Julia A Schnabel1, John M Simpson1,2, Alberto Gomez1.
Abstract
The authors present a method to interconnect the Visualisation Toolkit (VTK) and Unity. This integration enables them to exploit the visualisation capabilities of VTK with Unity's widespread support of virtual, augmented, and mixed reality displays, and interaction and manipulation devices, for the development of medical image applications for virtual environments. The proposed method utilises OpenGL context sharing between Unity and VTK to render VTK objects into the Unity scene via a Unity native plugin. The proposed method is demonstrated in a simple Unity application that performs VTK volume rendering to display thoracic computed tomography and cardiac magnetic resonance images. Quantitative measurements of the achieved frame rates show that this approach provides over 90 fps using standard hardware, which is suitable for current augmented reality/virtual reality display devices.Entities:
Keywords: 3D medical imaging data; OpenGL context; Unity native plugin; Unity scene; Unity widespread support; VTK objects; VTK volume rendering; augmented reality; augmented reality displays; cardiac magnetic resonance images; computerised tomography; current augmented reality/virtual reality display devices; data visualisation; interaction devices; manipulation devices; medical image applications; medical image processing; mixed reality displays; rendering (computer graphics); simple Unity application; thoracic computed tomography; time 3.0 d; virtual environments; virtual reality displays; visualisation capabilities; visualisation toolkit
Year: 2018 PMID: 30800321 PMCID: PMC6372083 DOI: 10.1049/htl.2018.5064
Source DB: PubMed Journal: Healthc Technol Lett ISSN: 2053-3713
Fig. 1Unity creates, manages, and destroys the OpenGL context. At the appropriate point in the render loop VTK is called to perform volume rendering using the buffers set up by Unity. As the volume is a semi-transparent object, this call is made at the transparency rendering stage
Fig. 2(Left) Before our changes, the polygonal surface rendered landmarks are incorrectly blended with the volume. The markers are often obscured by the volume, when instead the markers should obscure the volume, or be embedded into the volume. (Right) After our changes to VTK, the landmarks correctly obscure and blend in with the volume
Fig. 3Architecture linking Unity events to VTK functionality via the plugin. For a volume, VTK loads image data and creates a prop during the Unity game object's Start() event. While the Unity application is running, the VTK volume's transform and transfer function are updated in the Update() event. The VTK camera's view and projection matrices are updated by the Unity PreRender() event and the volume is then rendered during the main Unity render pipeline. When the VTK prop is no longer needed the Destroy() event deletes it and unloads the data
Fig. 4Capture of a stereo rendered scene from an HTC Vive headset. This scene contains an US volume, and its bounding corners are indicated by grey cubes. The volume is cropped by a plane indicated by the grey square outline. Spherical, coloured landmarks have been placed within the volume. The user can pick up and move all of these objects using the standard Vive controller, pictured in the scene
VTK volume rendering performance of a CT and MR volume on the HTC Vive using the Unity editor, with and without a VTK fps target. At the closest distance the volume fills the height of the view, it is then moved away to fill half, and quarter (1/4) of the height
| Modality | Vol. Dist. | No fps target | fps target |
|---|---|---|---|
| CT | 0.5 m (full) | 40–50 | 70 to >100 |
| MR | 0.4 m (full) | 55–60 | >100 |
| CT | 1.0 m (half) | 70–80 | 85 to >100 |
| MR | 0.8 m (half) | 60–70 | >100 |
| CT | 2.0 m (1/4) | 80–90 | 90 to >100 |
| MR | 1.6 m (1/4) | 80–90 | >100 |
Fig. 5Effect of VTK frame rate target on render quality. (Left) Without a target frame rate quality is maintained but the frame rate can be reduced to an uncomfortable level. (Right) A frame rate target of 100 fps increases viewer comfort, but there can be a visible drop in quality, seen here as an extreme case of a banding effect