Grids on Body Centered Cubes
In a regular cartesian grid (used for the "normal" implementation) the samples are positioned at integer coordinates. So they form a regular 3-dimensional grid. That means that the minimum distance between two adjacent voxels equals 1 and the maximum distance equals the square root of 3.

With BCC-grids (BCC = Body Centered Cubes) one can pack the samples more compactly. A regular cartesian grid can be thought of as an assembly of cubes where the samples lie on the edges of these cubes. BCC-Grids instead can be thought of as "cubes of voxels" as well, with the difference of having a sample also in the middle of the cube. So in a BCC-grid the minimum distance between two adjacent voxels equals the square root of 2 and the maximum distance equals the square root of 6 divided by 2.

The following image shows a cell of a regular grid and one part of a BCC-grid.


Regular cartesian grid and BCC-Grid
With BCC-grids it should - according to sampling theory - be possible to save the same dataset with the same quality but with about 30% fewer voxels. This makes the algorithm on the one hand faster (fewer voxels have to be processed) and on the other hand not so much memory is consumed.

One can think of BCC-grids as of two regular grids which are fit into each other. To adapt the Shear-Warp Algorithm for BCC-grids it is better to think of BCC-grids as slices of voxels where each slice contains a two-dimensional cartesian arrangement of voxels. The point however is that every second slice is translated by half of the square root of 2 in the two directions of the two axes at a right angle to the viewing vector. The following image illustrates this:


BCC-grid
Adaptation of the Shear-Warp Algorithm for BCC-grids is straight forward. When the absolute positions of the slices after shearing are computed the algorithm alternatingly has to add and subtract half the amount about which the slices are translated relative to each other.

When the intermediate image is created the absolute positions of the slices computed in the last step are used and so the algorithm can proceed as if regular cartesian grids were used.


back main next