You are here
Volume Animation
Introduction
Traditional computer graphics animations model objects using polygons. Since polygons are two dimensional, only the surfaces of objects are modeled. Volume graphics is a research area that aims to model objects as volumes rather than polygonal shells. Such an approach facilitates looking inside objects. Animation consists mainly of three steps : modeling, deformation/transformation and rendering. Algorithms for rendering volume objects (volume rendering) have been well explored and find applications in medical imaging and scientific visualization. Deformation for polygon based animation is done with the help of skeletons. The animator moves the skeleton which causes the polygonal object to be deformed along with it. Since there is no information about the interior in a polygonal object, the skeleton is mostly ad hoc.Non rigid deformations like muscle flexing need special treatment because the skeleton is not bound to the surface in a natural way.
If you are interested in trying our VolEdit interface:
Click here to dowload code: VolEdit
Click here to download readme file: README
Movies
Method
A volumetric skeleton is derived from the volume object by a thinning procedure which creates a natural binding for both rigid and non-rigid deformation. We have developed a parameter controlled skeletonization algorithm for volume objects which is used for deformation and animation of volume objects. Our volume animation pipeline consists of four steps :
- Thinning
- Skeleton Tree Generation
- Deformation and
- Reconstruction
These four steps are illustrated with the help of a volumetric insect model. The volume size is 128x128x128 voxels.
Thinning: This extracts skeletal points from the volume object based on a thinness parameter. The thinness parameter governs the density of skeletal points. Denser skeletons allow more control over the deformation and better reconstruction, but also need more space and increase visual clutter. A higher thinness parameter gives a thinner skeleton as shown in the figure below. The thinness value is increasing from left to right.
Skeleton Tree Generation : Once the desired skeletal points have been identified using an appropriate thinness value, they are connected using line segments into a skeleton tree. The skeleton tree is the minimum spanning tree of the skeletal points. A single parameter called the connectivity parameter determines which points should be connected. Spatial proximity of skeletal points and their centered-ness (a measure of how centered a point is within its local boundary) is used to connect points. A value of 1.0 for the connectivity parameter uses only spatial proximity while a value of 0.0 uses only centering information. Centering information is necessary to decide between equally close points and uses the fact that points which are more centered (like those on the spine) are more likely to be connected to each other. The figure below shows the effect of the connectivity parameter applied to the middle skeleton above. As the connectivity parameter increases from left to right, note how the limbs get connected to the main spine via horizontal lines.
Deformation : The stick and ball skeleton tree shown above can be deformed using standard deformation techniques. One approach is to select points in a limb and have them rotate about a node to give the effect of locomotion. We used Alias to deform the skeleton by rotating a limb around a joint.
The approach described above achieves rigid deformations since the limb rotates as a rigid object. Non-rigid deformations like bulge and pinch effects allow changes in the surface of the object. The image below shows an ellipsoid with a bulge and pinch near the center. These effects are a result of reconstructing the object which is described later.
Reconstruction : When the object is thinned, the minimum distance of each skeletal point from the object boundary is stored. This is also called the distance transform value of that point. If a sphere of radius equal to the distance transform is grown around every skeletal point and filled in, the union of spheres of all skeletal points will reconstruct a good approximation to the original object. We grow spheres around the deformed skeletal points to reconstruct the deformed object. Bulge and pinch effects can be achieved by changing the distance transform values of skeletal voxels. Other effects like growing an arm can also be achieved by pulling out a skeletal point and adding a few interpolating points.
Reconstructing several successively deformed skeleton trees gives a series of deformed objects which can be rendered into an animation. The image below shows several frames from an animation of the insect model in which the left front limb folds into the body.
The method outlined above works for binary volume datasets, since the deformation and reconstruction does not account for the presence of scalar values at every voxel. D. Kenchammana-Hosekote's work on data value reconstruction is a first step towards a more general volume deformation and reconstruction method.
Nikhil Gagvani 8/8/98