Volume rendering converts a scalar function on a 3D volume into varying colors and opacities, and creates an image by integrating the color and opacity effects along viewing rays through each pixel. For data specified on a regular grid, the ray tracing is straightforward, and similar effects can be obtained with 3D textures. For curvilinear or irregular grids, these methods are only applicable after the data has been resampled. An alternative, which works directly on these more general grids, is cell projection. The cells composited onto the image in back to front sorted order. The projections of the edges of a single cell divide the image plane into polygons, which can be scan converted and composited by standard graphics hardware.