Basics: Skinning
Bones and hardware
Table of Contents
GPU Skinning
As Wikipedia puts it, "Each bone in the skeleton is associated with some portion of the character's visual representation. Skinning is the process of creating this association. In the most common case of a polygonal mesh character, the bone is associated with a group of vertices; for example, in a model of a human being, the 'thigh' bone would be associated with the vertices making up the polygons in the model's thigh.In most state-of-the-art graphical engines, the skinning process is done on the GPU", and ShiVa is no exception to that.CPU-only skinning is always slower than GPU-accelerated skinning. A message like this ...
[+ Warning] {Rendering} Detected 75 skeleton joints for subset 0 of mesh 'character', skinning will be performed on the CPUessentially tells you that your model has too many bones to be rendered at full speed.
Optimize Skinning
If your models exceed the joint limit, It is better to split the skinned geometry into segments to stay under the limit. It is not required to keep the total number of joints of the entire model below the limit. A Character model for instance can be split into legs - torso - arms - head. Keep the joint count under the limit per segment to get the x2/x4 speed gain.Hardware Limits by Platform
Mobiles and Flash
Android and iOS:- If joint count (per subset) is > 18: skinning on NEON coprocessor if available (x2 performance compared to pure CPU)
- If joint count (per subset) is
18 is also the limit for Adobe Flash.
On Windows Phone 7 and 8, the limit is 64.