## Correct Contact Manifold

Please don't post Bullet support questions here, use the above forums instead.
Korybut
Posts: 1
Joined: Sat Sep 16, 2017 9:57 pm

### Correct Contact Manifold

Hello everyone!

Trying to understand all the pipeline behind the physics simulation before implementing it myself

Suppose I have two colliding objects A and B and then I operate with Minkowsli difference

1) Find out if A-B contains origin (algorithm is not an issue here)
2) If yes find the smallest distance from origin to the boundary of A-B. And during this procedure I also find a "normal", where distance and normal are realted by the simple formula

Smallest Distance = Support(A-B,normal)

Then (according to several sources) one says that objects A and B were hitted in points Support(A,normal) and Support(B,-normal) respectively. And here happens something weird

Suppose I collide two boxes A and B in face vs. vertex (A-- face, B--vertex). After drawing some pictures of Minkowsli difference it is easy to see that the normal to the collision is the normal to the face under consideration. But once I calculate Support(A,normal) I get the vertex but not a point on the face. As a result all the actual physics calculation based on this contact information worth nothing. I can take super long box A and hit it with the box B directly into the center of the face

How do people finde correct hit points based on analysis of Minkowski difference?

Dirk Gregorius
Posts: 873
Joined: Sun Jul 03, 2005 4:06 pm
Location: Kirkland, WA

### Re: Correct Contact Manifold

Then (according to several sources) one says that objects A and B were hitted in points Support(A,normal) and Support(B,-normal) respectively. And here happens something weird.
I don't know where this is from, but I can think of many examples where this wrong. Obviously you are proving this is not correct as well.

RandyGaul
Posts: 43
Joined: Mon May 20, 2013 8:01 am
Location: Redmond, WA

### Re: Correct Contact Manifold

Korybut wrote:Hello everyone!
How do people finde correct hit points based on analysis of Minkowski difference?
2 algorithms I know of: expanding polytope algorithm (basically quick hull), or minkowski portal refinement. Both algorithms have unattractive qualities. I prefer getting contact points like Dirk presented in his 2013 and 2015 GDC lectures:

http://media.steampowered.com/apps/valv ... ntacts.pdf
https://archive.org/details/GDC2013Gregorius