Device independent perspective volume rendering using octrees
Volume rendering, the direct display of data from 3D scalar fields, is an area of computer graphics still in its infancy. Only recently has graphics hardware advanced to a state where volume rendering became feasible. Volume rendering requires the analysis of large amounts of data, typically tens of megabytes. As hardware speeds increase, we can only expect the datasets to get larger. This thesis describes a reasonably fast, space efficient algorithm for volume rendering. The algorithm is device independent since it is written as an X Windows client. It makes no graphics calls to dedicated graphics hardware, but allows the X server to take advantage of such hardware when it exists. It can be run on any machine that supports X Windows, from an IBM-PC to a high-end graphics workstation. It produces a perspective projection of the volume, since perspective projections are generally easier to interpret than parallel projections.
The algorithm uses progressive refinement to give the user a quick view of the dataset and how it is oriented. If a different orientation or dataset is desired, the user may interrupt the rendering process. Once the desired dataset and position have been determined, the progressive refinement process continues and the image improves in quality until the greatest level of detail is displayed.
While this algorithm may not be as fast as algorithms written specifically for dedicated graphics hardware, its overall rendering time is acceptable. Hardware vendors who develop X servers that take advantage of their graphics capabilities will only enhance the performance of our algorithm. The device independence this algorithm provides is a major benefit for people who work in an environment of mixed hardware platforms.