|
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.
|
|