Abstract:In this paper we propose several significant improvements to the hardware ray casting algorithm for unstructured meshes proposed byWeiler et al [14]. In their work, ray casting computation is entirely performed in the GPU by advancing intersections against the mesh while evaluating the volume rendering integral. Our contributions can be divided into three categories. First, we propose an alternate representation for mesh data in 2D textures that is more compact and efficient, compared to the 3D textures used in the original work. Second, we use a tile-based subdivision of the screen that allows computation to proceed only at places where it is required, thus reducing fragment processing in the GPU. Finally, we do not introduce imaginary cells that fill space caused by non-convexities of the mesh. Instead, we use a depth-peeling approach that captures when rays re-enter the mesh, which is much more general and does not require a convexification algorithm.We report results on an ATI 9700 Pro, the same hardware used by Weiler et al in their work. Due to the use of the 2D textures and the tiling, our technique is actually much faster than their work, while at the same time being more general, since it can render true non-convex meshes, as compared to their work, which is limited to convex (or convexified ) ones. On the Blunt Fin, our code renders between 400 Ktet/sec to 1.3 Mtet/sec.
GPU-based Tiled
AbstractIn this paper we propose several significant improvements to the hardware ray casting algorithm for unstructured meshes proposed by Weiler et al [14]. In their work, ray casting computation is entirely performed in the GPU by advancing intersections against the mesh while evaluating the volume rendering integral. Our contributions can be divided into three categories. First, we propose an alternate representation for mesh data in 2D textures that is more compact and efficient, compared to the 3D textures used in the original work. Second, we use a tile-based subdivision of the screen that allows computation to proceed only at places where it is required, thus reducing fragment processing in the GPU. Finally, we do not introduce imaginary cells that fill space caused by non-convexities of the mesh. Instead, we use a depth-peeling approach that captures when rays re-enter the mesh, which is much more general and does not require a convexification algorithm.We report results on an ATI 9700 Pro, the same hardware used by Weiler et al in their work. Due to the use of the 2D textures and the tiling, our technique is actually much faster than their work, while at the same time being more general, since it can render true non-convex meshes, as compared to their work, which is limited to convex (or convexified) ones. On the Blunt Fin, our code renders between 400 Ktet/sec to 1.3 Mtet/sec.