Animation and Rigging Performance 2.8+ : Game Animators left with unusable software?

I am (almost) extremely greatful for eevee and all the changes 2.8 has brought (currently on 2.81)… except I feel like I’ve been majorly cock teased here and I really hope that there is something I’m missing here or major updates coming in regards to 2.82.

There are NO modifiers on my scene beyond the test of multi object and single object armature modifiers… the ones I actually need to animate a character for the end result.

I’ve used blender for over a decade for game development, and eevee got me particular excited as allowing the ability to effectively model your end user state of environments, characters and animations on the fly… and for the first two, in the case of static characters. Eevee is truly something else, except I’ve only come to find that the main reason I’ve dedicated myself to the switch, and now will probably be reverting to something pre 2.8… I can’t even animate a 150k tri standard 48 bone character rig at 24 fps with solid view… mat preview or rendered view… 3 to 4 fps lol. ( I get between 18 and 22, completely unusable for animating anything let alone a character)

My entire 1.5 million poly, multiple 6 lights, volumetric fog and shadow, glass refraction, cube map and screen space reflection scene with that EXACT same rig, but armature applied instead of just a static pose… 23 fps.

That exact same scene with the 150k tri rig, either multi object or combined (seemingly no impact), back to 3 to 4 fps… or 13 with solid view.

I should be able to upload my blend later, this is partially frustrating as I’m currently using eevee and was so excited to have my animation class final project showcase eevee… I’ll be making some major caveats now, and so senselessly so, the exact same rig I could run twenty in Unity or Unreal at 500+ fps at 4k on my rig (without any ray-casting features obviously, that I’m not even using on the character) . (4790k, gtx 1080, 16gb ram).

What am I missing, is this on the chopping block and I was just unable to find what bug (plz) this was reported under?

TL:DR?: Is Blender 2.8+ not intended for game dev use anymore? Unable to animate standard 48 bone rig at 150k tris at 24 fps on 4790k, gtx 1080 and 16gb of RAM. Please help, time sensitive project and potential long term investment down the drain.

Not enough space on my google drive for a 600mb .blend file currently. But hopefully this helps for context.

I can, at 1080p, view this playback, looking BETTER than my completely sampled 1080p stills rendered to 4k video (for bitrate boost) on youtube, at 23 to 24 fps.

But I can’t even get a stable 20 fps on a 150k tri 48 bone rig, not with rendered view mind you lol, that’s down to 3 fps, I get a variable 18 to 23 with solid view.

What the pheck is going on here?

They are working on performance but don’t expect this to be solved anytime soon. I think it will be at least a full year before it is better and even 2 since it’s no easy task as i read on developers forum.

2.79 seem like the only way to go for now but i am not sure your current rig will even run correctly on 2.79.

My first test was with a 28,000 poly character and i was getting 8 to 13 fps .

I don’t even remember what versions I used growing up, but using the solid, shaded with shadow I would easily be able to reach 24 fps with multiple rigs, usually around 30k at the time. This computer is stupidly more powerful. I don’t understand what’s going on with the push for eevee if it’s just for static geo, the early demo’s of the tiger and alien were clearly fake? I don’t fucking understand.

There is a complete thread on viewport performance you could check it out ;

1 Like

So this is a bug? This was considered release ready?

Not a bug probably more the complete new 2.8 architecture that will need a lot of love before it could get on par with 2.79 performance level.

That really, really hurts. Two major projects already built around eevee. My bad, just feel like I got taken into the van for some really good but cheap candy, now I’m stuck waiting for updates except this one project is due next week. This release should have came with major warnings, the type that come with alpha’s or beta’s.

Release ready?

Great improvements blender institute, you still really really cucked me here. I literally cannot have basic armature performance and eevee. It’s kind of fucking ridiculous that a serious potential alternative is just to reimport all of my shaders into unity or unreal, go use an earlier version of blender to do my character scene animation, so it can be properly paced. And then screencap the unreal or unity playback…

Any other circumstance and I’d be getting a refund, lol, I can’t get my time back or replan. And yes, I suppose a good argument is I shouldn’t have trusted the Blender Institute to keep base level functions for workflow at remotely reasonable performance levels for official non beta releases, and I should be thankful Blender is pushing tech forward, but I can’t get my time back, and I still very much feel like I was taken for a quick ride in the candy van. My butt, and head, really hurt.

Seriously, this isn’t a bug, this is as intended?

Since when does then open source model follow in EA’s footsteps. That this wasn’t priority number one for 2.81 has me gravely concerned. Literally leaving character animators in the dust, as intended? When the eevee 2.8 alpha and beta showcases included rigged characters?

I appreciate the replies, I’m just totally confused and feel extremely misled.

1 Like

Unfortunately i am just a small indie game dev and i cannot provide any kind of solution but maybe some advance user might give you better advice than me.

Keep in mind that Blender is also free so we have to wait for the devs and patience is the key here.

Sorry to hear your having such a bad experience with Eevee.

I think its important to adjust your expectations a little bit. Most of the demo’s you see in regards to Eevee are actually rendered, in other words not really generated real-time. You can see, as you pan and rotate the viewport that certain effects take some time to “resolve” to their full quality. Shadows and volumetric lighting come to mind.

In this manner I feel Eevee is a little different in its purpose compared to say Unity or Unreal where what you see is what you get. They don’t offer any methods to render out to stills or a movie with higher settings as far as I know. While Eevee’s display in the viewport is really great and very useful for judging materials and lights its an easy mistake to assume that for every movie that was created with Eevee the performance was always good enough to stay above 24fps.

Now, none of this means that it can’t be improved or that there aren’t area’s in which Eevee currently falls quite short of the mark. I know of two area’s specifically that are unfinished and or broken.

The first one is the abysmal performance in rendered or lookdev mode with animated meshes and shaders that include normal maps (which is pretty much every shader nowadays).

This is a bug where for some reason the calculation of the normal map is not done on the GPU. Thankfully someone created a “normal node group” that only uses components which are run through the GPU. A script was also created to convert existing normal nodes and you can find it all right here: way-faster-normal-map-node-for-realtime-animation-playback-with-tangent-space-normals

The performance improvement from this is pretty insane, from 3fps to 24fps+

The other feature that is currently underperforming is the subdivision modifier on animated meshes. For 2.8 the old subdivision algorithm was replaced by opensubdiv which is allegedly more precise and more powerful. However its not accelerated on the GPU and therefore extremely slow. The only solution for now is to turn subdivision completely of in the viewport.

I hope with these two tips Eevee will become workable for you again. :slight_smile:

1 Like

Armature modifier performance is pretty horrible, yeah.

Just did some tests: solid view (workbench), armature only, 64k verts, getting about 17fps, using less than 3 cores. Number of bones doesn’t matter. Constraints don’t matter (outside of a few known bad ones, curve performance is especially poor in Blender.) Decimating and duplicating, number of objects doesn’t seem to matter. Just the vert count.

Meanwhile, loading the same model into a game engine more than ten years old, that’s single threaded, and I’m getting 125 fps.

Sometimes I think Blender might be better off just writing off performance and instead working on good game engine integration tools. Not just for people working on games, but to just take advantage of animation performance on outside engines which they just cannot come remotely close to matching.

I really don’t think animation has been the focus of Blender devs. So much is really tuned for stills-- including Eevee. It’s fine for all the people doing architectural work.

In partially missing my main point, but also providing a fantastic link, you’ve blown this open for me! Big ups lad! Not only does performance drastically increase, particularly for rigged meshes, my scene goes from 3 fps in the gif to around 12 with that script. Although it does slightly degrade the normals range, I might be able to tweak it a bit myself. What it really showed was this though…

With SOLID VIEW, my playback with 160k rigged tris goes to 11 fps (this is the real issue I’m talking about not related to eevee), but with the script enabled, literally not changing a single thing rendered with solid view, fps increases to 20 fps. Still a long shot from what it could or should be, and really highlights that this must be a bug of some sort.

This .gif highlights what I’m talking about with this more than likely being a bug of sorts on top of early implementation of armatures with eevee.

After performance drastically dropped to around 6fps while reducing the faces on the base mesh, both in solid and eevee playback, I tried something drastic and enabled everything…

There are definitely bugs going on here.

I was very underwhelmed with rigged character performance also. I animate at subD level 0 to compensate for the horrid OpenGL performance, but even that should be faster than it is.

It’s almost a dealbreaker. Ok, Blender is free, but should we all shut our mouths because of that? I think they can stop focusing on new tools and gadgets, and get things like animation performance figured out. I’m not talking about playback…I’m talking about the speed of moving a leg’s ik chain or turning a head. It’s just too slow and sticky. It feels like I’m back in Softimage, which is has been a dead software for 5 years. Actually, that dead software may be a little faster.

Considering my gif’s and after reducing the face count on the rigged mesh I am certain there is some sort of viewport bug relating to eevee and armature modifiers. Will be making a more detailed analysis and how to reproduce when this project is due next week.