Wavefront raycasting using larger filter kernels for on-the-fly GPU gradient reconstruction
The quality of images generated by volume rendering strongly depends on the accuracy of gradient estimation. However, the most commonly used techniques for on-the-fly gradient reconstruction are still very simple, such as central differences; they generally gather only limited neighbourhood information and thus ultimately produce rather poor quality images. While there are many higher-order reconstruction methods, such as 3x3x3 or 5x5x5 filters, which can improve the quality, their excessive sampling costs have meant that they are generally used only for pre-computed gradients, which are then quantized and stored for later runtime re-interpolation. This may introduce further errors and, significantly, may consume valuable texture memory. In this paper, we address these issues by proposing a CUDA-based rendering framework that uses larger filter kernels for on-the-fly gradient computation in real-time raycasting applications. By using adaptive wavefront tracing, our approach can dramatically reduce the memory bandwidth requirements related to larger neighbour samples. To further ensure that samples are consumed wisely, we have devised a novel adaptive sampling scheme and a customized 3D mipmapping technique in the CUDA environment to sample at a proper level of detail as the ray recedes into the distance. We compared our technique with two previous state-of-the-art GPU raycasting algorithms and found that it achieves higher quality imaging and faster rendering performance across a variety of data sets than the previous methods.
raycasting gpu cuda wavefront tracing