sparkprime wrote:I tried today's svn and I can no-longer reproduce the small difference I made the video about. This is good because I don't have time to write a test case
All the meshes still seem to be double-sided though?
Great, thanks for testing it.
two big parallel triangles facing in opposite directions with a few inches gap between them
This is considered bad artwork
The btInternalEdgeUtility only acts on contacts on an edge boundary, so it won't help in general. So in our current implementation it is not the mesh but the btInternalEdgeUtility that assumes single-sided triangles by default. This means that it adjusts the normal (
for contacts on edges) in the direction of the triangle normal, even if the object is mainly on the other side of the triangle. You could modify the code to deal with single-sided triangle meshes in general, but that is a separate topic.
The options BT_TRIANGLE_CONCAVE_DOUBLE_SIDED+BT_TRIANGLE_CONVEX_DOUBLE_SIDED will make an attempt to adjust the contact normal independent of triangle normal.
Thanks,
Erwin