Collision Detection

Started by Azraton, May 17, 2016, 12:31:06

Previous topic - Next topic



I want to do some basic collision detection in 3d space. In order to do that, I need hitboxes and a method to check if two hitboxes intersect or contain each other.

Could someone please tell me how to create a simple hitbox (a cuboid or something) around an 3d object and how to check if they intersect/contain each other?



Your 3d object is a bunch of vertices, right?
And those vertices have a position, right?
The easiest thing is to build a so-called "Axis-Aligned Bounding Box" (AABB for short).
You should be very capable of figuring out how to create such an AABB from your set of vertices.

As for checking for collision between two AABBs, there are two possible ways:
The easiest is to just check two AABBs statically whether they intersect or not.
That is, given two AABBs, specifically their current position, check whether they intersect.
You could simply google for "AABB intersection test" and you'll find numerous examples and explanations.

The next more sophisticated way is to assume that the two AABBs move in a game between two successive intersection checks. When they move fast enough, they could intersect in between two frames and not intersect at the checks at each frame. To remedy this, there is another algorithm which you can google for with "swept AABB collision".


I recommend Separating Axis Theorem (SAT). You can easily check collision between two boxes. Those boxes can be rotated to any direction so it can easily beat any AABB system.

I wrote sat collision detection system for my game engine just in 1 hour. All you need to do is keep track of all the corners of the boxes. There is several tutorials for those.


did you make it for 3d space the sat?