Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Help  Performance issues
#31
(10-12-2019, 05:47 PM)BisuDagger Wrote: IIRC, because of the long length of the rope and load attached to it, the load was springy and didn't have a smooth movement when I used cursor.ChangeLength("using a value between 0 and 1").

This is probably the single worst possible scenario for an iterative, particle-based engine like Obi. Large mass ratios, long cables and iterative solvers just don't mix, as the only way to get decent results is brute-forcing your way trough by using a huge amount of iterations (which kills performance), or a tiny timestep (which also kills performance).

The ideal approach would be either a direct solver or a reduced-coordinate based approach (articulations). Both are quite expensive.

We have another asset specifically designed for cranes and similar cable-driven machinery, that could work well in your case:
https://assetstore.unity.com/packages/to...tor-133620

Let me know if you want a refund for Obi, as the way you're using it you're not going to get the results you're after.
Reply
#32
(10-12-2019, 04:03 PM)josemendez Wrote: Resolution controls the amount of particles (which is equal to the amount of sections when smoothing == 0).

Each section has multiple segments. The renderer takes a "section" asset as parameter. The DefaultSection is used by default, you can create your own rope sections by right clicking in the project folder->Create->Obi->Rope Section. Select it, and in its inspector you can change the shape of the section as well as the amount of segments.

If you've ever extruded a shape along a path in any 3D modeling software, think of the section as the shape that is extruded, and the rope as the path it is extruded along.

I created a new section asset and instead of using 8 vertices I am now using 3 vertices. It did not improve the performance by a lot though it seems to stay more consistently between 1-2 ms (for LateUpdate). However, now I occasionally get very high performance hits, which is caused by the ObiSolver.FixedUpdate(). The spikes are usually between 8-30 ms. There is sometimes more of them, sometimes less. 

Any ideas what these could be caused by?
Reply