0

So after some experimenting with Morph and Skeletal animation (exporting from Blender), I see that the skeletal files are nearly 10 times smaller than the morph files. It would seem that clearly skeletal is the better option, but I was wondering if there are cons to using it.

Specifically I suspect it takes much more processing to animate a skeleton rather than morph. When is one better than the other? Would it matter if Im animating 100 models vs just one? If skeletal does take more processing, and I host the application online, would the decrease in bandwidth (due to small file sizes) be worth the extra processing that it will need at run time?

Thanks for any input.

jkstrawn
  • 1
  • 3

1 Answers1

3

Indeed, skeletal animation takes slightly more processing, because the bones' matrices must be calculated (in JS) in every frame and uploaded to the GPU. While with morph animation, all interpolation can be done GPU-side. So it is really a memory-performance trade.

When you do have many animations playing at the same time, the processing will indeed have some cost. At the same time, however, several different morph animations will have big filesizes.

As you mentioned.

So it depends on case. There are some fine points you should take note of:

  • Morph animations can be stored with reduced frames per second if the animation isn't too fast or complex, so that you will have smaller files.
  • Skeletal animations have bone information, that you can use to attach things to your model, e.g. you have a soldier model that you want to attach different guns to. With morph animation, you can't do this, so you'd have to animate both the soldier and also every single gun.
  • You can actually use both types of animation in the same application, choosing the most adequate for each use.
  • SkinnedMesh-es, contrary to MorphAnimMesh-es, currently have no support for raycasting. If you need raycasting, e.g. for selecting objects, you will need to use morph animation for the time being.
kdrnic
  • 501
  • 3
  • 5