Slab-Based Raycasting: Efficient Volume Rendering with CUDA, High Performance Graphics

Abstract

GPU-based raycasting [Krüger and Westermann 2003] is the state-of-the-art rendering technique for interactive volume visualization. The ray traversal is usually implemented in a fragment shader, utilizing the hardware in a way that was not originally intended. New programming interfaces for stream processing, such as CUDA, support a more general programming model and the use of additional device features, which are not accessible through traditional shader programming. We propose a slab-based raycasting technique that is modeled specifically to use these features to accelerate volume rendering. This technique is based on experience gained from comparing fragment shader implementations of basic raycasting to implementations directly translated to CUDA kernels. The comparison covers direct volume rendering with a variety of optional features, e.g., gradient and lighting calculations. Volume Raycasting with CUDA • As a preliminary test, we have analyzed basic raycasting with full Phong lighting, which requires multiple texture fetches per sample point. • GLSL shaders from an existing volume rendering system were ported. • Entry and exit points were generated by rendering a proxy geometry. • No major speedup was expected for simply translating the raycasting shaders to CUDA kernels, as they use the same hardware. • Result: Speedups of up to 30 % were reached, compared to OpenGL fragment shaders (depends on data set, GPU

    Similar works