Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
performances tips for 22 Obi Bones in one solver
#1
Hey!

I'm using Obi Rope on Unity 2022.1.23f1 and I have a see creature with a lot of tentacles (exactly 22).
I have the solver on the character "root", and then an Obi Bone for each tentacle (basically a chain of bone here).
Dynamics are working as expected (i'm still trying to find the perfects params) but I'm having significant fps drops - i'm usually around 30fps but sometimes i'm down to 3 or 5, where 'im targeting 60.

Any tips on how to get better fps here ?

Thanks in advance !

EDIT: i've read that GPU version of Obi is in beta, would it help me?
Reply
#2
(20-12-2023, 02:31 PM)hugohil Wrote: Hey!

I'm using Obi Rope on Unity 2022.1.23f1 and I have a see creature with a lot of tentacles (exactly 22).
I have the solver on the character "root", and then an Obi Bone for each tentacle (basically a chain of bone here).

The amount of ObiBoneComponents doesn't really have much of an impact on performance. Things like your solver settings and updater settings do however, as well as the amount of joints handled by each tentacle. Could you share those?

Also,it would be great if you could share a screenshot of your profiler in timeline mode, it should always be your first stop when facing performance issues of any kind. This will tell you (and me Guiño) what the bottleneck is in your case, so we can focus on optimizing it.

(20-12-2023, 02:31 PM)hugohil Wrote: Dynamics are working as expected (i'm still trying to find the perfects params) but I'm having significant fps drops - i'm usually around 30fps but sometimes i'm down to 3 or 5, where 'im targeting 60.

Any tips on how to get better fps here ?

Sounds like death spiraling to me. Anytime fps drop to 3-ish, it means you're hitting Unity's default maximum allowed timestep (0.33 ms, or 3.03 fps). Reducing it should help alleviate the worst case scenario. Also, updating your bones somewhere other than FixedUpdate() will get rid of the issue entirely. You can do this by using ObiLateUpdater instead of either ObiLateFixedUpdater or ObiFixedUpdater. See: http://obi.virtualmethodstudio.com/manua...setup.html


(20-12-2023, 02:31 PM)hugohil Wrote: EDIT: i've read that GPU version of Obi is in beta, would it help me?

Not really, since bone animation is done in the CPU. Only the simulation takes place in the GPU, and it is very unlikely for it to be the bottleneck in your case.

kind regards,
Reply
#3
Thanks for your answer!
The biggest part of the bottleneck was in fact due to a change of resolution causing the post processing of the scene to take over pretty much all of the GPU power (switch from roughly 1200px to 2500px ...). When I tested with just one bone at 3fps I figured it was not Obi causing the issue Guiño anyway, my bad.

But I switched from LateFixedUpdater to LateUpdater and it greatly smoothed the simulation! Thanks for the tip
Reply