Whats on my PC is the bottleneck thats causing animation to play so slowly?

I feel like my PC specs are good enough to be playing a pretty simple scene i have but its struggling to playt he animation above 2 fps in material view (12 fps in Solid view). Here are my specs:

Probably that you have a Subdivision Surface modifier on one of them and it’s turned on, or the scene might be really complex.

image
here’s the scene

How many polygons has your animated mesh? You have 340k polygons in your scene, do they ll belong to the animated mesh?
If so than Blender might be the bottleneck. That amount of animated polygons is not a simple scene.
Also what type of animation…?

The scene is basically just a character and a default cube.


the character has 310k faces

From your pc specs there is really nothing that should cause this. You should not think about that any further. The problem must lie somewhere in the setup of your scene/animation, or a driver thing. You could post the file if that is possible, that would make it much easier to help.

When I press play on the animation Task Manager doesn’t show the cpu or gpu being used a lot it usually stays the same so I’m wondering Blender isn’t really using the hardware.

Here’s the file which I’m not sure how its possible that its 200MB:

Let me preface this by saying blenders animation playback isn’t exactly the best.

With that out of the way, this scene is really poorly optimized.

image

That is is a full mesh with an armature modifier on it; that is a lot to ask. And the character is littered with objects like this. Knee pads, jewelry, a baindaid etc. Use lighter control cages with subdivision levels > 0 for render.

There was also a subdivision modifier active on several objects. Its notoriously slow in this version of blender. The easiest way to improve viewport performance is to go to Render properties > Enable simplify > set viewport max subdivision to zero.

I don’t know if fixing these things will get you to 24fps because blenders animation playback is poor to begin with. But it will surely help in raising your fps.

And lastly your file is this big because you embedded the audio.

I will try this setting thanks! Can you explain what you mean by lighter control cages? And when you say its a full mesh with an armature modifier on it “that is a lot to ask”. How should it be? I used the mixamo website and addon to create the rig\armature.

These are good tips. what he says is, meshes like your shoes are plain meshes but with lots of faces, they could be designed much more efficiently for this task. Their level of smoothness and detail can also be achieved by having less dense meshes and a subdivision surface modifier on it. Their benefit is that they can be used to have different levels of detail for viewport and render. The basemesh the subdiv modifier is applied to is also called controlcage. So change them or bind them instead if you already did them that way. Btw. you can then use the low poly meshes on mixamo.

The rig itself is probably fine (I have no experience with Mixamo’s rig).

I am talking about what you ask the armature modifier to work on. Here is an example with the kneepads:

It looks like it was highly subdivided and then that modifier was applied. For some reason there is also a mesh inside a mesh that seems to serve no purpose.

The mesh inside the mesh is something I noticed on other meshes as well; its almost everywhere. You really should remove the inner meshes. If its intended I think there are better ways through using solidify in the modifier stack.

You also shouldn’t apply subdiv modifiers.You can see in the picture I unsubdivided the kneedpad and I end up with a much lower triangle count. The idea is that you first add an armature modifier and lastly, as polish so to speak, you add the subdiv modifier.

This means the armature modifier will only have to work with the low res control cage which is much faster and the final smoothing is saved for rendertime. I’d set viewport level to 0 beceause, as stated before, the subdiv modifier is really slow in blender right now.

The shoes are a bit special. They are full of mesh errors; it looks like they were imported from a nurbs program or something. I’d save them for last and focus on removing the “inner meshes” and unsubdividing your meshes and using the modifier stack properly first and see what that gets you.

1 Like

But I think its part of the problem, i guess for upload on mixamo @Psaebrail exported to obj and thus applied existing subdiv modifiers, instead of sticking to the low poly versions.

1 Like

That is a good point. I did not consider that. :thinking:

1 Like

But that has nothing to do with Mixamo, the conversion happens inside of Blender while exporting.
In my experience Mixamo’s rigs (can we even call them rigs if they are just skeletons/armatures without controllers?) are very simple and they work just fine.

A control cage is a lower poly mesh that then gets Subdivided by the Subd Modifier. It “controls” the final SubD mesh which is the final result that gets rendered.
That’s why I initially asked about the polycount and argued that Blender itself is the bottleneck since its animation performance with meshes that reach a certain number of polygons isn’t that great.

A mesh with 300K polygons that is bound to a rig is something you would expect from an proper VFX shot in an TV series or Movie, except that this is their “lower poly” control rig which then gets subdivided further when rendering.
So you basically approached Hollywood levels of complexity with your mesh, except that you wasted a ton of polygons on something that does not need it since you rigged your High Poly mesh which effectively killed your performance.
Using a proper SubD workflow you could cut down your control mesh to maybe 20K polygons which would give you ~24 frames per second while not sacrificing quality. (depending on your machine, my machine is slower than yours but with the example I just gave it should do realtime, - yours should perform even better).

Well certainly not, its just a limitation of their importer…I think we are crosstalking. Yes it has nothing to with mixamo and yes they work just fine, I just said dont use a baked hi res mesh afterwards.

The problem is that when exporting for mixamo all my subd modifiers get applied. So I’m not sure how I could go about keeping the polycount low while needing to export for mixamo.

Its simple, just delete them before exporting. You can apply them again after importing the rig.

If you export to obj theres an option not to apply modifiers on the right side of the exporter under geometry. So you can leave existing modifiers untouched.

@Romanji

Thats what I was talking about.

1 Like

Damn, I didn’t notice the meshes have a mesh inside them. I think maybe its the solidify modifier got applied when exporting? EDIT: ohhh its the outline from the Outline Helper addon thats making that second mesh

Oh wow yeah I need to uncheck that option and re-export and re-rig.

1 Like

Hello.
You follow the steps that have already been recommended to you to optimize the scene. Still, Blender performance for viewport animation is not good at all, there is still a lot to improve.
Next time maybe you should better use low polygon quad meshes to take advantage of OpenSubdiv hardware acceleration which is still in development (Subdivision modifier needs to be to the last of the stack):