Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Help  Multiple Chains Simulation Best Practice
#4
(13-03-2022, 04:11 PM)sdu7chez Wrote: It has been over a month and no reply?  I paid for this asset and I can't get any support?

Hi there,

Your thread slipped trough, very sorry about that. My mistake entirely, please accept my apologies. Usually I answer within 24-48 hours, if you ever post in the forum and don't receive an answer within 3-4 days that means I simply didn't see it, just bump it or write to our support email so that it grabs my attention.

About the questions in your video:

#1) Regarding the FPS drop: make sure you're using the Burst backend as it's slightly faster than the one used as a fallback. Then, take a look at Unity's profiler to see what is taking most time each frame. It might be simulation, rendering, etc. There's tons of parameters in Obi that can potentially have a large impact on performance, so profiling info is most valuable in situations like this.

For instance, the profiler might show most of the time is spent on constraints, which means using less constraint iterations will improve performance. Or, it might reveal that placing the chain prefabs for rendering is the bottleneck, which might be resolved using instancing. If you need help interpreting the profiler info, you can just share a pic and I will do my best to help.

#2) Chains are certainly too close to each other (and/or a nearby collider?), so attachments and collision constraints are fighting each other. This situation is described in the manual, along with its solution (which involves using collision filtering to prevent collisions between specific parts of the rope/chain):
http://obi.virtualmethodstudio.com/manua...aints.html

Collision filtering is explained in the "collisions" page:
http://obi.virtualmethodstudio.com/manua...sions.html

To understand why this happens: collision constraints want chains to keep out of each other, however attachments want them to stay attached - which might require them to intersect. Since it's impossible for ropes to intersect and not intersect simultaneously, this results in jitter as the engine tries to solve an unsolvable situation.

#3) I'm not sure I understood the issue with disc collisions. The disc as shown in the video is a fairly simple object, it only has one collider and one rigidbody in its hierarchy. Placing a ObiCollider component right where the MeshCollider is should do the trick. Obi automatically finds the first rigidbody up the collider's hierarchy and picks it up, so no further setup is needed.

Keep in mind though that MeshColliders are both quite costly and extremely brittle (specially, non-kinematic mesh colliders). This is because they have no volume, only their surface generates contacts. This can lead to tunneling issues, specially if the collider is fast moving.

Obi has a custom collision primitive that allows for fast moving arbitrary shapes and robust collision detection, at a fraction of the runtime cost of a MeshCollider: distance fields.

On a side note, keep an eye on your chain resolution and particle radius: there might be gaps in its particle-based representation that the disc might slip trough (you can visually inspect the particles in each chain by adding a ObiParticleRenderer  component to them). You might want to use surface collisions instead.

Let me know if I can be of further help.
Reply


Messages In This Thread
RE: Multiple Chains Simulation Best Practice - by josemendez - 13-03-2022, 06:08 PM