GPU rendering of isosurfaces in VTK and ParaView

Visualization of salient features in volume data is not straightforward. A popular method is to extract and visualize some contours of the data that is all values on this surface are equal to a chosen value. This method is called isosurface visualization.

With VTK and ParaView, it was already possible to compute isosurfaces thanks to the “Contour” filter but a mesh is generated by the CPU for only one isosurface and each time the contour value change, a new computation and data transfer to the GPU are necessary. It is now possible to render several isosurfaces on GPU directly from the Volume representation/mapper without mesh computation nor specific data transfer.

 

The configuration in ParaView is quite simple, select the “Volume” representation, then in the Properties panel, enable “Show Isosurfaces” property and specify the isosurfaces values. The color and opacity are defined, as usual, using the color transfer function configurable in the Color map editor of ParaView. For this mode, enabling the “Shade” option is generally recommended.

Under the hood, the GPU volume mapper of VTK (vtkOpenGLGPUVolumeRayCastMapper) is used to perform the ray casting in the volume. When the isosurfaces mode is enabled, we only keep samples that correspond to the intersection of the rays and a contour value defined by the user during the compositing. This behavior is enabled using a new blend mode called ISOSURFACE_BLEND. Isosurfaces values are provided thanks to a vtkContourValues parameter added to the vtkVolumeProperty.

 

This functionality is available in ParaView master branch and will be available in next release to come (v5.5).

 

This work was supported by Total SA.

Developments were done by Kitware SAS, France.

 

Michael Migliore is an R&D Engineer at Kitware, France. He is a developer of VTK and ParaView since 2017. His areas of expertise include computer graphics, physics simulation, collision detection and software development.

 

 

 

Joachim Pouderoux is a Technical Expert at Kitware, France. He is a developer of VTK and ParaView since 2012. His areas of expertise include scientific visualization, computer graphics, interaction techniques, Voronoi meshing and software development.

 

Questions or comments are always welcome!