18-12-2019, 04:18 PM
(18-12-2019, 02:25 PM)josemendez Wrote: Unity cloth is updated in Update(), with a variable timestep (which is completely wrong from a physics standpoint). This results in unstable simulation, random jerks, and fluctuating momentum which causes the cloth to be unable to come to a rest. Basically they're advancing the simulation a random amount of time each frame (will only work acceptably well if you have an exceptionally steady FPS, so that every frame is rendered in the exact same amount of time). Here's a comparison between Unity (white cloth) and Obi (blue cloth):
In addition to this, two-way coupling with rigidbodies is not supported by Unity, probably because it would just blow up due to this unphysical behavior (you can't have objects in the same simulation updated at different frequencies). Don't know what they were thinking when they implemented cloth, tbh![]()
In Obi you can also force the solver to update in Update() by using a ObiLateUpdater component instead of a ObiFixedUpdater. The associated problems are the exactly same, that's why we strongly recommend using the ObiFixedUpdater (and why it is the default).
Hi Jose,
great support - thanks for the explanation! I now understand!
Anyhow, I realise more and more that for using physics "the correct way" (and in VR) a profound background knowledge is required.
Cheers,
Christian
P.S.: I think Unity themselves added some cloth "light" support in oder to say "we have cloth"
