Usually trilinear filtering is used to reconstruct the volumetric data in volume rendering frameworks. This interpolation method is supported by current graphics hardware and is thus very fast. However the quality of this interpolation method offers much leeway for improvements. Since current graphics hardware allows implementing almost arbitrary interpolation kernels, the next step of higher-order interpolation is explored for a volume rendering framework. The major bottleneck of such interpolation kernels lies in the high number of texture lookups that are needed. In total, three different implementations of tricubic interpolation were developed – a straightforward implementation with 64 texture lookups, a two-level version with 27 texture lookups and an implementation that was published earlier. These implementations are compared to each other with regard to their execution speed for an artificial and a real-world test data set.

The idea is to make use of hardware-accelerated texture accesses in order to speed up the higher-order interpolation computations. The problem is that there is no easy way of doing this. Therefore, the first step of this project will be to find a mathematical solution to this problem. Subsequent steps will implement the interpolation formula in shader programs; an additional goal would be to use this interpolation on BCC (body-centered cubic) grids.

- nearest-neighbor sampling
- hardware-accelerated bilinear interpolation
- straightforward implementation of bilinear interpolation
- straightforward implementation of biquadratic interpolation
- optimized, two-level implementation of biquadratic interpolation
- straightforward implementation of bicubic interpolation
- optimized, two-level implementation of bicubic interpolation
- bicubic interpolation approach of
**[Sigg and Hadwiger, 2005]** - hardware-accelerated trilinear interpolation
- straightforward implementation of trilinear interpolation
- straightforward implementation of tricubic interpolation
- optimized, two-level approach of tricubic interpolation
- tricubic inerpolation approach of
**[Sigg and Hadwiger, 2005]**

Once the interpolation shaders were validated in this testing framework, they were compiled to ARB fragment programs using the Cg compiler offered on NVIDIA's webpage. These ARB fragment programs were plugged into the fragment shaders of the raycasting framework of

Timeline:

- Straightforward Implementation: March 9 (done)
- Interpolation Formula: March 16 (done)
- Efficient Implementation: March 23 (done)
- (Optional) Implementation on BCC grids: March 31 (skipped)
- Project Paper: April 3 (done)
- Final Presentation: ~April 5

These performance measurements were performed on an AMD Dual-Core system where each core runs at 2400 MHz. The GPU of this system is a NVIDIA GeForce 8800 GTX which provides 768 MB of texture memory. All tests were performed on a 64-bit version of Windows XP. In this graph, the rendering speed is documented in frames per second. The first two test scenarios include volume rendering and isosurface rendering of the Marschner-Lobb data set

The y-axis is displaying the resulting rendering speed in frames per second. Red bars represent standard trilinear filtering, green bars tricubic filtering with Sigg and Hadwiger’s method, blue bars the two-level approach of tricubic filtering presented in this paper and black bars the straightforward implementation of tricubic filtering.

The visual quality of tricubic filtering is better than trilinear filtering. However, the differences are subtle and are easier spotted while the data set is explored in real-time. The following images are screenshots of an isosurface rendering with the trilinear interpolation kernel (left) and a tricubic interpolation kernel (right):

The difference between these two interpolation methods can be demonstrated more convincingly with the filter test volume of

So far, all interpolation methods were used only for Cartesian grids – it is planned to extend these methods to use them for BCC grids as well. The advantage of BCC grids lies in the smaller number of sampling points that are needed to achieve the same reconstruction quality compared to Cartesian grids. Consequently, the performance on BCC grids should be better, since fewer computations are necessary.

The presented method of two-level cubic interpolation could not outperform the already published method

S. Marschner and R. Lobb:

M. Hadwiger, T. Theussl, H. Hauser and E. Gröller:

C. Sigg and M. Hadwiger:

C. de Boor:

S. Stegmaier, M. Strengert, T. Klein and T. Ertl:

Last modified: Apr. 2nd, 2007

by Sven Bachthaler