Abstract

Most CPU-based volume raycasting approaches achieve high performance by advanced memory layouts, space subdivision, and excessive pre-computing. Such approaches typically need an enormous amount of memory. They are limited to sizes which do not satisfy the medical data used in daily clinical routine. We present a new volume raycasting approach based on image-ordered raycasting with object-ordered processing, which is able to perform high-quality rendering of very large medical data in real-time on commodity computers. For large medical data such as computed tomographic (CT) angiography run-offs (512x512x1202) we achieve rendering times up to 2.5 fps on a commodity notebook. We achieve this by introducing a memory efficient acceleration technique for on-the-fly gradient estimation and a memory efficient hybrid removal and skipping technique of transparent regions. We employ quantized binary histograms, granular resolution octrees, and a cell invisibility cache. These acceleration structures require just a small extra storage of approximately 10%.

Keywords: Three-Dimensional graphics and realism, Volume Raycasting, Large Data

Download full paper

Memory Efficient Acceleration Structures and Techniques for CPU-based Volume Raycasting of Large Data
Sören Grimm, Stefan Bruckner, Armin Kanitsar, Eduard Gröller
Proceedings of IEEE/SIGGRAPH Symposium on Volume Visualization and Graphics 2004
Austin, USA

Image Gallery

Movie Gallery

 

Short live demo of our prototype application

AVI MPEG-4 Video (X.X MB)

WMV Video (X.X MB)

 

Short live demo of our prototype application

AVI Indeo

 

Short live demo of our prototype application

AVI Cinepack Video

BibTeX Entry

@InProceedings{Grimm:2003:MEA,
  author     = "S\"oren Grimm and Stefan Bruckner and Armin Kanitsar and Eduard Gr\"oller",
  title      = "Memory Efficient Acceleration Structures and Techniques for CPU-based Volume Raycasting of Large Data",
  booktitle =  "IEEE/SIGGRAPH Symposium on Volume Visualization and Graphics",
  pages      = "?--?",
  year       = "2004",
}