Semester Thesis Visual Computing:

Hardware Accelerated Skinning

Bar Bend DQ 1
Bone Texture
Shader Interface



Modeling and animation is a very important topic in visual computing. One of the most widely used paradigms is called "skinning". The skinning procedure of a model is usually based on an underlying skeleton. This skeleton first gets deformed and then these deformations, commonly referred to as "bones", are applied to the vertices of the actual model. Each vertex of the model is influenced by a weighted sum of the nearest few bones. The work in this thesis aims to improve skinning performance by moving operations from the CPU to the GPU. Compared to previous approaches, we want to raise the number of bones the GPU can handle. Furthermore, the model size, e.g. the number of primitives, may be huge. Finally, we also consider an alternative approach to classical skinning by using dual quaternions. These may reduce artifacts which occur with matrix-based skinning and can also increase the performance.




The goal is to improve the current project on embedded deformation [1] with a hardware implementation of the skinning algorithm based bone transformations and dual quaternions, such as presented in "Skinning with dual quaternions" [2], as an alternative. The aim is focused on handling as many matrices (e.g. bones) as possible. Due to the latest improvements in GPU processing power this should be well ameneable and has been done to some extend already. Most notably is the paper “Skinning Mesh Animations” from Doug L. James and Christopher D. Twigg [3] which serves as a foundation for many follow-up work.

The first widely available graphics processor supporting vertex programming and matrix indexing therein was the GeForce 3; the API for it was developed by Lindholm, Kilgard and Moreton in 2001 [4] where they basically started turning the fixed T&L unit into a programmable one. They already included commands for referencing and handling matrices for matrix palette skinning. Later on fragment programming was introduced and nowadays we have a unified shader API as proposed in the DirectX 10 standard and implemented in the GeForce 8 series, for example. A very interesting feature of the new GPU generation is the ability to actually write back vertex data which enables effectual modelling on the GPU.



Significantly improve the performance of the 3D shape editing by implementing parts of the above mentioned paper in hardware.

Consider both the “classical” matrix palette skinning as well as the dual quaternion approach.

If the above listed points are finished prior time, think about further extensions and improvements to achieve an even better usability and quality such as:

  • dynamically adapting the deformation graph
  • resampling the model locally if the current representation cannot represent the deformed shape adequately
  • implementing a more flexible editing behaviour by locally adapting the objective function of the optimization


[1] Mark Pauly, Robert W. Sumner, and Johannes Schmid. Embedded deformation for shape manipulation. ACM Transaction on Graphics (SIGGRAPH 2007), August 2007.

[2] Ladislav Kavan, Steven Collins, Jiri Zara, and Carol O'Sullivan. Skinning with dual quaternions. In 2007 ACM SIGGRAPH Symposium on Interactive 3D Graphics and Games, pages 39-46. ACM Press, April/May 2007.

[3] Doug L. James and Christopher D. Twigg. Skinning mesh animations. ACM Transactions on  Graphics (SIGGRAPH 2005), 24(3):399-407, August 2005.

[4] Erik Lindholm, Mark J. Kligard, and Henry Moreton. A user programmable vertex engine. In SIGGRAPH ’01: Proceedings of the 28th annual conference on Computer graphics and interactive techniques,pages 149–158, New York, NY, USA, 2001. ACM Press.




thesis -> mps.pdf (957 Kb)



Resources used for the thesis:


Papers & Projects