Registration-based Volumetric Interpolation

Volumetric rendering has come a long way since its first appearance decades ago. Graphics cards have been subject to massive technological advancements and are still evolving to push more and more raw data across ever increasing data paths. Even so, there are considerable advantages to re-producing accurate and original data from sparse data.

Overall, less samples means less time to complete a scan, which in turn means more energy/money saved. In the specific case of people, less time in a scanner means less time that the patient needs to remains still and be bombarded by various particles.

In this work we looked closer at how to more accurately re-create missing data from an existing data set, without any prior knowledge of the missing data.

Publication and resources

  • Registration-based interpolation real-time volume visualization
    Lasse Farnung Laursen, Hildur Ólafsdóttir, Jakob Andreas Bærentzen, Michael Sass Hansen, Bjarne Kjær Ersbøll, in SCCG ’12: Proceedings of the 28th Spring Conference on Computer Graphics, pp. 15-21
    Published PDF

Quick Facts

  • Possibly first ever implementation of registration-based interpolation executing on a GPU.
  • Implemented from scratch in C++ and C for Graphics.
  • Integral part of Virtual Cuts project.


Interpolation can roughly be categorized into two types; Feature-Aware, and Not Feature-Aware. We use a registration method based on B-splines to determine feature correspondence in all of the data slices we work with.

With the help of texture offsets generated from feature correspondence, the steps to performing registration-based interpolation is straight-forward. In brief, the registration proceeds just as with trilinear interpolation, except we now apply an offset vector to the interpolation along the axis we have calculated feature correspondences for.

A more detailed illustration is available in the third image on the right.

Interpolation types
Interpolation steps
Detailed interpolation