← All ideas
  • Published 25 Jun 2024

Optimize armature animation to achieve half the FPS of Maya.

Armature animation is always very slow, and this is also the case in Cinema 4D. However, I have noticed that Maya is very fast.

In Blender, whenever the face count exceeds tens of thousands, the FPS is always inversely proportional to the face count. Armature animation is a major performance bottleneck in Blender.

In my tests:
▪️ Blender: 1.57 million face simple cube - 7 FPS
▪️ Maya: 2x1.57 million face cubes (3.14 million faces in total) - more than 200 FPS
(Test platform: i9-9980XE + RTX 4090)

I noticed that Maya's GPU usage is higher than Blender's. Maya uses 30% of the GPU, while Blender only uses 10%.

Without armature animation, Blender can achieve 400 FPS.

Snipaste_2024-06-25_20-33-52.png

When an armature animation is added, Blender drops to 7 FPS.

Snipaste_2024-06-25_20-39-37.png

For comparison, Maya runs at 240 FPS with two cubes, both with armature animation. Initially, I couldn't believe Maya could run this fast, so I increased the number of cubes and randomized their weights, causing the cubes to distort. In this situation, Maya still has more than 30 times the FPS of Blender.

Whether it's one cube or two, Maya runs at 240 FPS. So I'm not sure just how fast Maya can actually go. Note that while Maya has caching, I disabled it because enabling caching actually made Maya slower.

test.png

50%

Development Status: Open

Upvote 2 Downvote 2
fmnijk
25 Jun 2024

5 Comments

chris.lend

that is not a very useful test. I assume maya can skip deformer evaluation when the input is not animated. Blender is not that smart. But that's not the thing that matters. Performance of animated meshes is what matters. Pretty sure maya will have a lead because some of the deformers can run on the GPU but it will not be that huge. Also depends on the Rig.

That said, profiling a full rig is useful, and things should always be as fast as possible

3
alexmehler

thats becasue maya is using gpu skinning eficiently and has ingeneral many nice gpu features which blender doesnt leverage (like reading and writing geometry from gpu tesselation and otehr creative uses ).

maya runs in dx12 , blender in an old and abandoned opengl version. so something like that is probably much easier to inetrgate with modern graphics api

1
jornboven

In the roadmap it is written that they want to move over to Vulcan, in wich it is easier to utilize GPU. So maybe in the future, it will be improved!

???

JoelRVC

Could you do tests with the viewport playback modes that Maya has? Like DG, parallel. I suspect it's because of something like that.

1