Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Performance again
#1
In debug mode I get a massive 17 FPS in fullscreen when I use 5 solvers/1 rope/chain with 8 subsets
So basically I have 5 solvers with 3 chains and 2 ropes

Is it normal?

Jobs/Leak detection is off
Burst-> Enable compilation on, Synchronous compilation on, others off
Jobsdebugger off

Any other thing that I can do to increase the FPS?

One more question:

If I have 5 solvers with 1 ropes -> basically 5 ropes with 5 solvers invidiudally that is good or bad for performance?
It will be better 1 solvers with 5 ropes?
Reply
#2
(22-10-2021, 10:34 AM)lacasrac Wrote: In *debug* mode I get a massive 17 FPS

If by *debug* mode you mean a debug build, that's not surprising at all: debug builds are extremely slow compared to release builds. They contain a lot of extra debug data, and skip code optimizations. This is the case not only in Unity, but in any engine/IDE. Never ever measure performance in debug mode.

(22-10-2021, 10:34 AM)lacasrac Wrote: If I have 5 solvers with 1 ropes -> basically 5 ropes with 5 solvers invidiudally that is good or bad for performance?
It will be better 1 solvers with 5 ropes?

The amount of solvers and/or ropes has zero impact on performance. However, the amount of particles in each solver and your solver settings do.

When you add ropes (or any actor, for that matter) to a solver, all of its particles/constraints are "thrown in a bag", together with other rope's particles/constraints. The engine does not care if they came from only 1 rope or 10 ropes. Internally, the engine does not even know what a rope is. Then, particles and constraints from all solvers are updated in parallel. It does not matter if there's 2, 3 or 10 solvers, and does not matter if there's 1 or 100 ropes in each.

It does matter if a solver is set to perform many constraint iterations, or if ropes have 500 particles each instead of 50.

Things you can do to improve performance:

- Use as few substeps/constraint iterations as you can. Disable any constraints you're not using. You'll find substeps setting in the ObiFixedUpdater, and constraint settings in the ObiSolver. See:

http://obi.virtualmethodstudio.com/manua...aters.html
http://obi.virtualmethodstudio.com/manua...olver.html

The manual contains a pretty in-depth explanation about how the engine works and how substeps/iterations affect it, I'd also recommend reading it:http://obi.virtualmethodstudio.com/manual/6.2/convergence.html

- Use as few particles as you can. This means reducing your rope's blueprint resolution. See:http://obi.virtualmethodstudio.com/manual/6.2/ropesetup.html

- Use the simplest rendering mode that fits your bill. Use path decimation if possible.
http://obi.virtualmethodstudio.com/manua...modes.html
Reply