Page MenuHome

Cloth penetration when the size of the faces in the cloth and collision object are different
Closed, ArchivedPublicTO DO

Description

Blender Version
Broken: 2.76.5
Short description of error
In certain situations involving a cloth and collider object. As in the case seen below. No matter what level of quality imposed on the cloth, it always enters the object with determination.

Exact steps for others to reproduce the error
Open the file and run the simulation.

Revisions and Commits

Event Timeline

Brecht Van Lommel (brecht) lowered the priority of this task from 90 to 50.Jan 17 2016, 9:02 PM

It seems that plNearestPoints() used in cloth_collision() is not returning correct results in all cases. I would expect the closest point on triangles A and B to be pa and pb, but in at least one case the closest points on A and B are actually 2*pa - pb and pa respectively.

This appears to be a bug in Bullet that is fixed in the latest version 2.83. I'm pretty sure it's this commit that fixed the issue.

Upgrading to Bullet solves the simple test, but

from D1710 still has some issues, even though it's much better than before. It looks like another variation of the same bug.

So the same issue still happens after upgrading Bullet, the result of plNearestPoints() is unreliable due to precision issue with degenerate cases in the GJK / EPA code. It just happens less often now.

Upgrading to Bullet solves the simple test, but

from D1710 still has some issues, even though it's much better than before. It looks like another variation of the same bug.

I just test this file (

) with the patch of the upgrade. Not only it's much better than before as totally fixed the problem! Before the cloth went through the collider object, now acted perfectly covering the object!
I think this patch is really a nice addition to Blender. Perhaps even necessary.

I did not see the same problem

Here a video showing with and without the patch. I do not see any new problem.

The issue still exists even if it's much improved now. I still want to try to fix it completely.

@Brecht Van Lommel (brecht), since you've been working on the issue for some time now, assigning it to self. Feel free to close it as a TODO or re-assign to someone else once you've done with it.

This comment was removed by David Jeske (jeske).

David Jeske (jeske). You configure on Cloth, Quality > Steps at least a value of 10.

Edit:
Sorry, apparently I accidentally added as a subscriber to David Marrs when trying to quote to David in message above. I really do not know how to remove that subscription.

I'm marking this as a to do item. I've poked at this a few times but didn't make progress, the GJK / EPA implementation is very complicated and I don't want to spend more time on this.

A solution might be to use a completely different implementation, like the code from FCL or XenoCollide, though I don't know if they are more robust.

Luca Rood (LucaRood) changed the task status from Unknown Status to Unknown Status.Apr 19 2017, 5:08 PM

I have completely removed Bullet's plNearestPoints from the new cloth collision system in the cloth-improvements branch. I have instead implemented a brand new and more reliable function, tailored specifically for the new collision response system.

As a result, this issue (and many other collision issues) has been resolved in the branch, and will go either into 2.79 or 2.8.

Even though there is no fix in master, no more work will be put into fixing the current implementation, so I'm archiving this.

I have completely removed Bullet's plNearestPoints from the new cloth collision system in the cloth-improvements branch. I have instead implemented a brand new and more reliable function, tailored specifically for the new collision response system.

As a result, this issue (and many other collision issues) has been resolved in the branch, and will go either into 2.79 or 2.8.

Nice, I'll take a look at this branch right now...