image 1 0f 6 thumb
Disco Dancer experimented with the collision between a skinned mesh and cloth. The inspiration for this project initially came from Assassin's Creed's unique use of cloth. This project offers two unique technologies: skinned animation and cloth simulation. Sphere-Sphere collision was used for collision detection between the cloth and animated character. The technologies are presented below.


Skinned Animation

Disco Dancer used previous knowledge of skinned character animation in order to produce the movement you see above. Cheb, the animated character, came pre-built with organized text files of the weights and bones. This made parsing the files rather simple. The project does not use external file formats such as '.fbx' or '.dae' files (see 'Problem Area').

Since there is only one Cheb character within the scene, most of the computation is done on the CPU. This also makes it easy to grab the transformed vertices of the Cheb character for computing collision detection.

Problem Area:
Disco Dancer was originally going to use Assimp as a way of recieving the bone and weight data structure. Using Assimp proved to be more tricky than originally anticipated. The project does not make use of Assimp because of its complications; however, there are references at the bottom of this page related to Assimp.

Cloth Simulation

The cloth simulation uses Implicit Euler equations in order to solve the linear system of equations for a spring system. The two cloths are a 10x10 sheet of cloth, with each having two fixed points in the top two corners. Disco Dancer does not make use of Sparse Matrices; there would be a huge speedup in the animation if they were used.

Collision Detection

Sphere-Sphere collision detection was used for the interaction between the cloth and animated character. As of right now, each point on Cheb is treated like a sphere, so it seems more similar to a point-point approach. This model could be made better with a heirarchical model of sphere-sphere collision detection. Since there is only one character, this does not affect the speed of the application.


The Scene

image 1 0f 6 thumb
image 2 0f 6 thumb
image 3 0f 6 thumb
image 4 0f 6 thumb
image 5 0f 6 thumb


image 1 0f 3 thumb
image 2 0f 3 thumb
image 2 of 3 thumb


Loading Models using Assimp

Skeletal Animation With Assimp

Sphere-Sphere Collision Detection