Abstract: To apply empty space skipping in texture-based volume rendering, we partition the texture space with a box-growing algorithm. Each sub-texture comprises neighboring voxels with similar densities and gradient magnitudes. Sub-textures with similar range of density and gradient magnitude are then packed into larger ones to reduce the number of textures. The partitioning and packing is independent on the transfer function. During rendering, the visibility of the boxes are determined by whether any of the enclosed voxel is assigned a non-zero opacity by the current transfer function. Only the sub-textures from the visible boxes are blended and only the packed textures containing visible sub-textures are required to reside in the texture memory. We arrange the densities and the gradients into separate textures to avoid storing the transfer-function-independent empty regions in the gradient texture. The partitioning and packing can be considered as a lossless texture compression with an average compression rate of 3.1:1 for the gradient textures. Running on the same hardware and generating exactly the same images, the proposed method however renders 3 to 6 times faster on average than traditional approaches for various data sets in different rendering modes.
Algorithm overview:
We partition the volume space with a set of boxes with each box containing voxels of similar properties in both volume domain (position) and transfer function domain (density and gradient magnitude). Figure (a) shows the boxes overlapped on a slice of the foot data set, while Figure (d) is the 3D view. To reduce the number of textures as well as the overhead of texture setup and switching, we pack multiple variable-sized smaller textures into larger ones. Figure (b) displays only the boxes with a non-zero gradient magnitude while Figure (c) shows the packed gradient texture. Before rendering an image, the visibility of each box is determined by the transfer function. Figure (e) shows a mixed rendering of boxes and textures. Note that it renders only a portion of all the boxes displayed in Figure (d). Figure (f) is an volume rendered image with Phong lighting and gradient magnitude modulation.
Video
All the video clips are recorded in real time. The window size of the program is 1600 by 1200, while the resolution of the video is 320 by 240. The temporal aliasing is due to the down-sampling during the video recording. We don't see such artifacts on the program screen. A mpeg 4 decoder is required to view the video.Video illustrating the acceleration. The PowerPoint slide shows side-by-side rendering with and without texture partitioning and packing. If the side-by-side playing, which requires Microsoft PowerPoint and Mpeg 4 codec, does not work properly, here are the two video files:
Video demonstrating various operations. A high-resolution version.
- Without texture partitioning and packing ( FPS: 4.13)
- With texture partitioning and packing (FPS: 12.4)
Last updated 3/9/2003