I think I may have found a new way of checking for 3d polygon collisions, but I'm not sure. It may have already been used, thought of, and/or discovered to be slow. So please let me know if this has already been done, and even if it would work.
The method involves...
1. finding the planes that the primitives lie on
2. finding the line where the planes intersect
3. if both polys have points on both sides of the line AND have points that overlap on the 1d space of the line, then they intersect.
I have some half done code testing this, and so far it seems to be sound and fairly fast. These are some average time-tests done on my machine for each part:
There is GJK and SAT that can be used to test if two convex shapes are overlapping. The method you are describing just seems to be a brute force method so yah I think GJK and SAT are faster.
This is brute force as I am testing it, but that is only for testing purposes. You could use spheres, AABB, or OBB to test for definite negatives beforehand. Also, you could drop out of step three if one of the conditions wasn't satisfied.
That being said, could you link me to that so I can compare them?
I've invented my own (almost flawless) method for any object no matter what its shape looks like however it's something what I'd expect would be used for very advance physics simulations on PCs from NASA or the military.
A polygon consists of an array of 3D position vectors
An Object contains an array of inclusive Polygons and exclusive Polygons (exclusive take higher priority)
Basic procedure:
brute force check every point on inclusive polygons against a second object for inclusive polygons and build a list of the points which collide
brute force check only the points that have been listed, against the exclusive polygon of the second object
More depth:
Split the polygon down into tetrahedrons using triangle which lie on the mesh with the center point stored in the polygon. Create a plane from the triangle faces on this tetrahedron and translate the point in testing onto the relative plane.
Use a 2D collision detection method I have ready to test this (now 2D) point against the (now 2D triangle)