Collision detection between the clothing and objects
such as a character's body or static object is performed using high resolution
Distance Volumes. Cloth-Cloth collisions are currently ignored.
Distance volume generation is performed automatically
on startup. Firstly, each segment of the character is voxelized. For the
character shown, the time taken to voxelize is a small fraction of a second.
|
The voxels are then promoted to Distance Volumes. An
incremental algorithm calculates the closest voxel and distance to the
solid voxel surface, for each empty voxel.
Distance volume generation takes less than 40 seconds
on a dual PIII Windows system.The data generated
can then be used to optimize collision queries.
Absolute or Mean surface normals from the original surface
can be assigned to voxels. Original mesh geometry is not accessed again.
|
Cloth mass points are tested for collision against the
distance volumes. It is necessary to specify a tolerance distance at which
the cloth will be considered as collided, to avoid cloth polygon intersection
with surface regions with high curvature. This can be seen in the sphere
example at the top of the page.
Collision response is treated as a perfectly inelastic
case, i.e. there is total kinetic dissipation into the character which
remains unaffected.
Click on images to enlarge.
|