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.