A method is provided for rendering 3D voxel data including plural voxel
sets, while eliminating artifacts that may result from the plural voxel
sets colliding with each other ("voxel interpenetration"). In one aspect,
the method involves an extension of the splatting approach, and uses a
z-buffer associated with each pixel to indicate the z-depth of a voxel to
be painted onto the pixel. According to the method, first, the z-buffer
for each pixel is reset (cleared). Next, for each of the plural voxel
sets, one voxel set at a time (sequentially), voxels within the voxel set
are traversed until an occupied voxel is found. If a z value of the
occupied voxel is less than a z value stored in the z-buffer, the z value
of the occupied voxel is stored in the z-buffer and the occupied voxel is
painted onto an associated pixel. Then, the next occupied voxel is
considered.