Home Website Youtube GitHub

Tipps for improving performance?

Hey everyone,

When I first started working with mgear1 I was always incredibly happy with the general performance of the rigs. However on the current project we are working on we are using mgear2 for the first time (just updated yesterday from 2.5.24 to 2.6).
And I have the feeling that everything feels a bit less fluid.

After building the default biped guide and setting two keys on the world_ctl I get about 40fps in parallel mode with gpu override. 16 in the first DG playthrough, getting a lot faster afterwards (using DG is not an option as soon as there is binded geometry).
so 40fps does not sound too bad, but that is without skinbinds or any other additional fancy stuff. With slightly heavy character I am currently working with fps drop to 32fps during playback, and 24fps during manipulation if the the spine is involved. Still workable but before adding a face rig I kind of would like to improve on this somehow but I am kind of stuck by now because I can not think of any particular way to optimize the rig more except for removing modules entirely (which is not an option).

Dirty propagation for the spine takes up to 220ms and evaluation about the same according to the profiler which seems a bit long.

I’ve tried replacing more contraints with decompose matrix connections and replacing modules with seemingly simpler ones but nothing proved to be really successful.
Baking the keyframes to the joints I get way above 100fps though.

So well yeah any advice?

Hi @fleity

Indeed this a very interesting topic. There is not a magic solution to get a super boost. The only clear one is to move all the ui host controls under the world control so will evaluate faster.
the disadvantage is that they don’t move together anymore with the parts that control. For example, the arm_UI does not follow the arm.
To solve this you can add proxy attributes with the channel wrangler. I didn’t test extensively but should not have the same performance issue.

Also, have you checked this video?

There are more things to do/test but this is the easiest one to get an extra boost. I hope this helps :slight_smile:

oh yes! other think is to un-check separated joint structure option

This will save some frames, but you will have a scatter joint structure inside the rig. I usually use this for the low-resolution rigs. and keep it checked in the high rez with final deformations.
Also this was the way the first mGear release had the joints

hey @Miquel

thanks for your quick reply :slight_smile:
yes I know that video, in fact I just rewatched it before writing the post ^^°

reparenting the UI hosts does indeed yield a few frames (~40 to 45 for me with some drops to 38 when looping to the beginning of the timeline). On my actual rig I already did this in guide file, but I skipped that in my test case.
However changing the separated joint structure added another 10 frames on top of that, which I would not have expected. I preferred the combined joint structure because it seems more clean and tidy to me and of course being much simpler to export, but I can just add that combined structure to the scene when we export the animation.

thanks a bunch already
do you know any other culprits which you normally look out for? (skin bound non-manifold geomtry for example is proved to really terrible for our scenes)

I have a few things that I want to research, but nothing worth to mention yet :stuck_out_tongue: