Skeleton causes Performance Drop

Hello,

I’m having weird performance issues when using a model with a skeleton.
For a performance test, I tried adding first 10, then 100 of that model to the scene (which is empty otherwise).
We noticed huge FPS drops in both cases (down to 6 FPS on 100 objects).
We tried a different version of the model without the skeleton attached, and we got back to normal FPS.

The skeleton is a standard 3ds Max biped with 32 bones, the model itself has ~2700 tris.
It was converted to Ogre’s XML format using OgreMax.

This is the code I used for the performance test:

[java]Random rnd = new Random();
for(int i = 0; i < 100; i++) {
Spatial s = assetManager.loadModel(“Models/Human_Male.mesh.xml”);
s.setMaterial(assetManager.loadMaterial(“Common/MatDefs/Misc/Unshaded.j3md”));
s.setLocalTranslation(rnd.nextInt(100), rnd.nextInt(100), rnd.nextInt(100));
rootNode.attachChild(s);
}[/java]

Anyone knows what we (me or my graphics guy) might be doing wrong?
Thanks to anyone willing to help.

well skinning is not free…having 100 skinned models at screen drains performance…I’m not surprised.
If you really want to have that amount of skinned models on screen use hardware skinning. SkeletonControl.setHardwareSkinningPreferred(true).

1 Like

Okay, I guess we got a little over-panicked and were too focused on the skeleton being broken.

100 models was a bad example, it’s just that even on low numbers like 10 I lost quite a bit of FPS already (and I expect that many skinned models at least) so I got worried.

Hardware Skinning helps though, thanks. Will make it an option.