3D collision detection algorithm choice for convex to convex polytopes

Started by
-1 comments, last by lotusEater 12 years, 8 months ago
Hello,

I apologize for the length of this post.

I've been browsing this subforum, looking at recommended articles and books on different 3d collision detection algorithms. While i understand i could always implement some sort of open-source physics engine, i would much rather program my own, for at least simply the learning experience. Keep in mind this is for narrow-phase, convex to convex polytopes.

I planned on implementing the GJK-SAT algorithm with EPA for depth. It seemed quite popular and very efficient. However, after reading numerous threads over the frustrations of GJK and especially implementing EPA, im very hesitant to go this route. From what i've read there are robustness issues with GJK-SAT such as infinite looping, precision errors (these may only have to do with the original GJK, not GJK-SAT) and or false positives (i read that casey's implementation from molly rocket causes these)?

Next on my list would have to be XenoCollides MPR algorithm. I've only be able to find a single article on this algorithm in 3D and am worried that it may be plagued by the rame robustness issues as GJK as they are quite similar. The article i've linked doesnt go over any robustness issues aside from when computing depth, which it states are only heuristic estimates and in some cases can be quite far off. This was discouraging to hear.

I also came across the Chung Wang Separating-vector Algorithm, i've only come across it in Christer Ericson's Realtime Collision Detection. Its apparently twice as fast as GJK, has anyone succesffuly implemented this algorithm?

Aside from which algorithm i use to detect whether a collision takes place, im still stuck trying to find how to obtain penetration depth. Are there any good algorithms aside from EPA which seems to be more trouble than its worth?

I would love to hear anyones input!

Cheers

This topic is closed to new replies.

Advertisement