TittyMagic 6 alpha 3 performance testing results (Patreon)
Content
I spent a few hours checking the performance impact of local distortion physics. In the alpha version it's quite significant compared to all other aspects of the plugin.
In my test scene I had one person atom idling and some basic lighting. Even with nothing happening, and most other programs closed, it was pretty hard to get consistent results so I had to repeat the tests quite a few times. Anyway, here are the results, rounded to closest integer.
Baseline comparisons:
- Plugin not added: 145 fps
- TM v5.2.4 added: 143-144 fps
TM v6.0 alpha 3 results:
- Local distortion physics (LDP) off: 143-144 fps - same as v5.2.4
- LDP on, joint distances calculated (relative to neighboring joints) but no changes being applied to joints: 143 fps
- LDP on, all physics updated to joints: 133 fps
- LDP on, only collider radius and depth updated to joints: 136 fps
- LDP on, all physics except collider radius and depth updated to joints: 139 fps
In short, the biggest performance impact comes from updating the collider radius and depth, though the other parameters are also significant. The fps drop is probably a result of stuff that happens in the background in Unity's physics system / PhysX itself, rather than anything to do with how TittyMagic applies the values to the colliders and joints.
It's unlikely that this can be optimized without sacrificing something. First I'll check how things look if the local distortion physics updates run at half the normal physics rate. If it's not visually noticeable that updates are skipped, that'll be a great solution since it'll likely cut the performance impact in half as well. Might even experiment with lower frequencies than that - probably the frequency should be configurable in the plugin UI, and it should also be possible to toggle the feature on or off per parameter (which it currently does not do even if the effect slider is 0).
I hope that was interesting to someone :)
-everlaster