• Advertisement

Archived

This topic is now archived and is closed to further replies.

GJK Convex Hull Collision Detection

This topic is 5061 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

Hi All. After experimenting with two different methods of detecting collision detection I realised that it is still not what I want. The first method I implemented for static 3D convex2convex hull collision algo was searching for a plane P, (first in convex hull A) that has all of the vertices of convex B on positive side of the plane P. If all of the vertices from B where found on the positive side of the selected plane (poly) extracted from convex A then no collision was found. It was pretty easy to implement. Its very fast too. However this doesn’t work for some shapes like for pyramids (4 planes each). BTW: What is the proper name of the above method??? The second method I implemeted is using separating plane again but slightly in a different way than the above one. It creates a dynamic plane from a selected edge from convex A (2 points) and a single point from B (together it forms a triangle ie. plane). Once I have this plane created, next I test if the convex hull A is on one side of the plane (triangle) and if B is on the other side of the plane. So if the two A & B are on opposite sides of the plane then this means they are not colliding. It works ok for any shape but it is very very slow. Both these methods are described on gamasutras site here : gamasutra site I still dont know from that article whether I should combine these 2 methods for optimal results or they should be used as separate 2 methods. Anyway. I got lots of help from Olii (Thanks again Olii) and was introduced by Olii to GJK (Gilbert-Johnson-Keerthi) algorithm. I searched and found few articles on this stuff however I am not sure if I understand everything looking at the mathematical expressions. Is there anybody kind enough to explain to me step-by-step what I have to do in order to implement it in a simple language. Like,... write function to calculate this and then come back I'll tell you the rest. You know I want to understand every bit I am doing just as I have done the above algos. I cant believe the above methods were so simple to implement but people make this stuff so complex to understand in their articles. You can describe it using few words rather than using long mathematical equations etc.. but Anyway is there anybody who could help me to understand the GJK algo step-by-step how to implement it? Thanks so much in advance!! [edited by - robert_s on April 16, 2004 4:01:35 PM]

Share this post


Link to post
Share on other sites
Advertisement
Guest Anonymous Poster
You should also check out V-clip. From what I''ve read it seems a little easier then gjk and it may also be a bit more robust.
There is a paper at http://www.merl.com/reports/docs/TR97-05.pdf that explains it.

Share this post


Link to post
Share on other sites

  • Advertisement