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?
Correct Contact Manifold
-
- Posts: 861
- Joined: Sun Jul 03, 2005 4:06 pm
- Location: Kirkland, WA
Re: Correct Contact Manifold
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.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.
-
- Posts: 43
- Joined: Mon May 20, 2013 8:01 am
- Location: Redmond, WA
Re: Correct Contact Manifold
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:Korybut wrote:Hello everyone!
How do people finde correct hit points based on analysis of Minkowski difference?
http://media.steampowered.com/apps/valv ... ntacts.pdf
https://archive.org/details/GDC2013Gregorius
-
- Posts: 9
- Joined: Mon Apr 17, 2017 12:11 pm
Re: Correct Contact Manifold
The final simplex that GJK/EPA terminates with has a point, an edge or a triangle that faces the origin. If it's a point, then the witness points on the involved shapes maps directly onto each of their individual support points.
Contrary, if it is an edge or a face, then you will first have to calculate the closest point on the edge or face that is closest to the origin (point of minimum norm). Then you must work out the Barycentric coordinates that calculate that point from the vertices of the edge or face in question. These Barycentric coordinates can then be used on the shapes' individual corresponding support points to calculate their actual witness points.
Contrary, if it is an edge or a face, then you will first have to calculate the closest point on the edge or face that is closest to the origin (point of minimum norm). Then you must work out the Barycentric coordinates that calculate that point from the vertices of the edge or face in question. These Barycentric coordinates can then be used on the shapes' individual corresponding support points to calculate their actual witness points.