3d collision detection

I’m doing some simulation work using OpenGL and was wondering about 3d collision detection.

At the moment I am using two methods: bounding box intersections; and radius from centre of gravity intersections. These are fast but are not particularly accurate.

What are the best techniques?

Using a combo of BSP-trees and spheroid collision detection seemed to be rather efficiant for me. It’s also easy to do collision ‘sliding’ this way too. Search through flipCode’s tutorials for spheroid based collision detection. Excellent text there on this method.

Originally posted by fenris:
Using a combo of BSP-trees and spheroid collision detection seemed to be rather efficiant for me. It’s also easy to do collision ‘sliding’ this way too. Search through flipCode’s tutorials for spheroid based collision detection. Excellent text there on this method.

What seems to complicate things is that nothing is static and everything can move or change shape. thanks for the pointers.

What I’ve done in the past is to use bounding boxs to say if I’m near a colision. If this says there is a near collision I do a more accurate test for colisions. This test is to perform a dot product on the a vector from the point being tested for collisions and any point on the triangle. The other vector is from any 2 points on the triangle. When these vectors are dotted you will get a positive answer if you’re infront of the triangle and a negative number if you’re behind the triangle.

I am looking for the same thing too,
Do you know where I could find articles explaining how to implement the bounding box intersections method

I know that it could be possible doing this using capping method but do not know how to.

Originally posted by dasqua:
[b]I’m doing some simulation work using OpenGL and was wondering about 3d collision detection.

At the moment I am using two methods: bounding box intersections; and radius from centre of gravity intersections. These are fast but are not particularly accurate.

What are the best techniques? [/b]