Interesting. Can you do a short ray check faster then closest point calculation? Can you compare the cost and elaborate on the ray testing method?dog wrote: When a point exceeds a lateral threshold, instead of chucking it out I do a very short ray check from the object with the greatest velocity at the contact point against the other object, and if that returns a contact point that is close enough I update the point on both objects and leave it.
[...]
Erwin's idea of only chucking out one point per frame is awesome in its simplicity, and may be a better choice. YMMV.
By the way, it is not my idea: a developer kindly shared his improvements for Bullet collision detection in their game.
Dirk, you seem to contradict yourself. In a a recent posting you seem to acknowledge that a sliding box using Bullet persistent manifold works fine:Dirk Gregorius wrote: Erin's "Varying Friction". [...] Lack of such a demo is suspicious and might be interpreted as if it not works
Preparing my talk for the GDC Physics Tutorial, creating physics demos for the Sony booth and some deliverables for my book doesn't give me much time to create such demo right now, but I'll add it to the todo list.Dirk Gregorius wrote: [...] since I could imagine that due to the sliding some points might fall out of the distance threshold. I doubt that the later is the reason since I would guess you would see the same issues with the other box in this case as well.
Eric Larsen and Gino van den Bergen both used closest point calculations (in personal communication and in their implementations). You can trivially avoid deep penetration (just don't fallback into EPA), and rotate by a limited amount based on the extremal points, an application of conservative advancement. Just using the supporting vertex method is not sufficient: they are not closest points.Dirk Gregorius wrote: This wouldn't be very clever. The elegance of Gino's (or Larsen's) approach is that you get the full manifold by just calling the cheap GetSupport() function instead of running a full GJK. Even worse, when rotating the objects you might get into deep penetrations and need to call the even more expensive penetration solver. You also need to multiply matrices to rotate the objects. No, I would argue that this is not a good solution.
I'll ask Gino to comment on this, but he is probably busy too.
Thanks,
Erwin