ShellSplatting

Documentation

ShellSplatting is a direct volume rendering method that enables the interactive rendering of anisotropic volumes. It is a combination of the data structures of Shell Rendering with the rendering techniques of Splatting, hence the name. It's simple to implement, works on generic graphics hardware (anything with texturing and compositing should do the trick), handles anisotropically sampled volumes and easily blends and intersects with conventional geometry.

You can read the Eurographics / IEEE TCVG VisSym 2003 paper here (see this page for the full citation) and view the presentation slides here.  For viewing the slides, you might want to activate "Smooth Line Art" in your PDF viewer (in Acroread, this is under Edit|Preferences|General) so that all the diagrams look their best.  There are some diagrams in the presentation which do not appear in the paper, for instance one helping to explain the P and D data structures.

Movies!

Here are the movies also referred to in the presentation.  They've all been compressed with the MS-MPEG4 codec (believe it or not, for maximum quality and portability: this works on a default MS Mediaplayer 6.4 or higher installation and also on all self-respecting *ix mplayer installations; get codecs for MacOS X here) as AVI files.

slicing.avi
2M movie demonstrating how one normally goes about slicing through a volume.  This is probably the most basic way of visualising a 3D volume.
surfacing.png
800K movie showing interaction with an isosurface that has been extracted from the same volume using the marching cubes algorithm.
r256_raycast1.png 1.8M Div-X 4 movie showing a good old software raycasting of the same volume.  Of course it took a few minutes (actually quite a few minutes) to generate all the frames of this animation.
r256ShellSplat.png
850K movie showing a ShellSplatting of the same volume.  Note that it's being interacted with in real-time.  Well, you can see the exact figures in the article and updated performance figures (for a GeForce4) in the presentation.
engineBlock.png
The good old engine block CT dataset.  The 2.4M AVI shows interaction with the ShellSplatted volume rendering in high quality mode, fast mode and point mode.

aneurism.png
5.5M movie showing a ShellSplatting of one of my favourite data sets.  I really like this one  because it's so sparse, and the ShellSplatter of course loves sparse volumes.

shellSplatBlending.png
4.6M movie showing some of the specialities of the ShellSplatting algorithm.  The scapula (shoulder-blade) and slicing plane are rendered as normal opaque geometry, whereas the thorax is rendered with the ShellSplatter.  Two things are important here: the direct volume rendering is seamlessly blending and even intersecting with conventional geometry and, more subtly, a binary segmented thorax is being rendered, but without the usual stair-stepping effects that we expect.