Ah! Yes, in the plugin this is actually a combination of a few properties. Two of them are simulation wide and affect performance while the other three are per-object and have little to no performance impact.
Did a performance pass this week, here are 256 cloth sheets, each with 50 particles with a single explicit collider sphere and self-collision disabled, running at over 120fps with drops to ~70fps during the simultaneous collisions:
This is running on 4 threads with the Simulation targeting 60fps with 3 substeps and 8 constraint iterations. The hardware used for the test: i7 5820k @ 4.3GHz + GTX 1080
Lowering the target simulation framerate to 30 yields well over 150fps, on average, with dips to 110fps during the simultaneous collisions.
Ok, is there a way to dynamically add/subtract colliders (to a specific cloth) during runtime?
Scenario: Close range “Free-For-All” battle of Knights with capes and cloaks, naturally you don’t want your capes to clip through nearby opponents or obstacles, but you don’t want to poll every character and prop in the map.
So what if you could add colliders to the list dynamically once they enter a certain range of the cloth (or cloth owner? idk) and they’re removed from that list once they’re beyond the “exit range” to be polled.
???
Does this mean that simulation framerate is independent from fps?
Yep, that is supported! In fact, the system already does a rough bounds check to skip colliders that are completely out of possible collision range with minimal overhead. Manually doing it would get rid of the small overhead.
Yep, this keeps the simulation running at a stable tick interval while allowing it to catch up by taking a few more steps during a lower fps and take less steps at higher fps. I can also make this a toggle, but it would add instability if the game framerate fluctuates too much.
Since 4.14 just dropped, the plugin will be updated on the Marketplace and GitHub by next week. This will be a “hotfix” update, new features will be in a later (giant ) update.
Good news! Tested VICODynamics with 4.14 and nothing API wise changed, so a 4.14 build will be submitted tomorrow and Feature Update 2 will support 4.13-4.14 and maybe even 4.12.
Do you have a time frame on the next feature update? I bought the plugin in preparation for the cloth feature, to play around with some of the cables while I wait. Keep up the good work!