Optimized CPU-based Skinning for 3D Games

Author: Intel® Software Network
Published On: Tuesday, September 05, 2006 | Last Modified On: Sunday, May 11, 2008
Overview
by Leigh Davies

Lifelike 3D character models play an increasingly important role in many computer games. Organic models, such as people, are more complex to render than rigid bodies because the mesh that defines the shape of the model constantly changes as the model animates. This animating mesh is referred to as a 'skin' since it's influenced by the underlying structure of the object; 'skinning' is the process of animating this mesh. Traditionally done on the CPU, as model complexity increased, skinning has been done on the video card using vertex shader class hardware. However, there are advantages to performing skinning on the CPU, which this paper highlights. It also details an optimal way of CPU-based skinning using the floating point Streaming SIMD Extensions (SSE) instructions found on the Intel® Pentium® III processors and above. This optimized solution offers greater than double the performance of the initial C implementation, as well as a flexible and efficient alternative to vertex shader skinning. In addition, we will discuss how the addition of multi-threading support improves this optimized CPU skinning solution, as well as the nuances involved with multi-threading the skinning algorithm.



Post a comment If you have any questions, please contact our support team.