Volume Rendering with Partial Pre-Integration

This page provides my Ph.D. thesis, related publication, and supplemental materials. Several volume rendering techniques are presented, but the most novel and interesting of them is the partial pre-integration technique. The idea of the partial pre-integration technique is to build pre-computed tables that can be used to speed the computation of the radiative transfer computation required for volume rendering. The partial pre-integration technique is similar to the pre-integrated technique except that the tables for this later technique embed a particular transfer function. In contrast, the same tables for partial pre-integration can be used for any volume rendering (assuming piecewise linear interpolation of material properties is used). Partial pre-integration can also be used to build the tables for pre-integration.

Publications

Fast High Accuracy Volume Rendering. Kenneth Moreland. PhD thesis, University of New Mexico, July 2004.

"A Fast High Accuracy Volume Renderer for Unstructured Data." Kenneth Moreland and Edward Angel. In Proceedings of IEEE Symposium on Volume Visualization and Graphics 2004, October 2004, pp. 9–16.

I also captured source code relating to the work to help repeat this work.


For those of you who are really adventurous, I have also archived the rest of the source code I generated during my Ph.D. program. The code is contained in a makeshift library called On-Card Algorithms (OCA). It's basically a bunch of boilerplate encapsulated in C++ objects to run Cg algorithms that do not fit well within the classical graphics pipeline. You may or may not find that useful although now there are more complete solutions such as CUDA, OpenCL, and many others1 now available.

In this archive is also the collection of algorithms I happened to be working on at the time, such as The FFT on a GPU. You may enjoy looking through them although many will probably be a bit worthless and other may not even work.

Download oca.tar.gz

You will need CMake in order to compile this code.


  1. By the time you read this, the list of GPGPU programming systems will probably have changed. See http://www.gpgpu.org for the latest announcements and information.
  2. Thanks to James Derrick for his tireless and complimentary proofreading.
SAND 2015-4836 W