Sign in to follow this  
mrheisenberg

Am I on the right track?(my physics engine design)

Recommended Posts

Basically my physics engine design is that I have a 3D grid of bounding cubes the size of the scene.Each entity also has it's bounding volume.The grid is in an octree, so it very quickly tests with which of the smallest levels of boxes the bounding volume of each entity intersects.So basically for each entity I get a list of the indexes of all cubes it intersects.For each cube I get a list of indexes for all entities that intersect it.So then in the narrow phase each entity goes trough it's list of intersected cubes and for each of them it loops trough the list of the entities that intersect that cube and tests it against the entity.Is this a decent design or am I going in the wrong direction?I get a decent performance so far, so I was thinking I'd stick to it and start adding optimizations and having the entities have rest/active states, but I guess I wanted a consultation before I carry on.One thing that might give me trouble is integrating terrain collision into it, not sure how that'll work out.

Share this post


Link to post
Share on other sites

For terrain you simple project your AABB into the plane and detect the quads it overlaps. If your terrain is a triangle mesh you could e.g. use an AABB tree. There are some other options for the broadphase as well. Instead of the octree your could use Sweep and Prune or a dynamic tree. But the octree is totally fine.

Edited by Dirk Gregorius

Share this post


Link to post
Share on other sites

Thanks for the input, If understand properly the sweep and prune method is faster, but the octree method is generally better for when you have really fast moving, really varying in size objects?After the narrow phase I have a third phase where I check against a composite shape between the two objects where the composite shape is made of boxes that match some of the bone matrices for the bigger bones, so they're basically hitboxes for the body/limbs of the characters.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Sign in to follow this