Virtual Humans and Skeletal Animation
Skeletal animation is an established technique to model and animate articulated objects in real-time virtual environments. The idea of skeletal animation is to use an auxiliary structure (skeleton) to simplify the control of the modelled 3D object. A variety of problems arises in the context of skeletal animation. In this project, we focus mainly on the problems of skin deformation (skinning) and collision detection.
The problem of skinning is delicate, because believable skin deformations have to be computed with minimal computational complexity. The first condition is due to the fact that a human observer is particularly sensitive to the shape of a human body. The second condition is due to the fact that character animation is typically just one component in an application (e.g., a videogame) and therefore, it should not consume too much resources. The interactivity is a must and therefore most current computer games favor inaccurate but fast algorithms, such as linear blend skinning (aka skeleton subspace deformation or vertex blending). Our goal is to develop algorithms with similar computational complexity as linear blending, but delivering higher quality deformations. Our first contribution, bones blending, has been generalized and turned into a more useful spherical blend skinning.
Virtual characters are typically not used standalone, but within a virtual environment, where they can interact with other characters and objects. Most often, such interaction requires first to detect geometric intersections (collisions). Collision detection is a computationally intensive process, which uses to be the bottleneck of physics simulators. We exploit special properties of skeletally animated models to achieve a more efficient collision detection algorithm for skinned characters. This algorithm is useful both for detecting collisions among different characters as well as for detecting collisions among characters and rigid objects.