Jump to content

  • Log In with Google      Sign In   
  • Create Account


Is there a way to resolve collisions using MPR / XenoCollide?


Old topic!
Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.

  • You cannot reply to this topic
No replies to this topic

#1 Red Shark   Members   -  Reputation: 114

Like
0Likes
Like

Posted 16 December 2012 - 09:59 PM

I've spent the past two weeks mucking around with collision detection in my spare time. Unfortunately, I'm not sure that I'm even half-way to a fully robust solution, yet.

What I do have, is a working collision detection system - I've implemented a version of XenoCollide/ Minkowski Portal Refinement, and it is working acceptably well -- but at this point, all it's doing well is detecting.

I'm not looking to implement real physics, just to prevent objects from intersecting each other, so I was aiming for an update loop along the lines of this:
  • Add object position + velocity.x, and test that new value for collision.
  • if collision detected, subtract a value from Velocity.x so that the objects are touching instead of intersecting.
  • repeat step 1 & 2 for Z-axis.
  • repeat step 1 & 2 for Y-axis.
  • Add velocity to position.
It's that 2nd half of step 2 that I'm struggling with -- is there a way to use my MPR code to figure out how far along the axis I need to back track? Right now I'm getting a contact normal (i.e., the direction I need to adjust the velocity), but I can't figure out how to use that to calculate the appropriate distance.

Is there a way I can use MPR to calculate the appropriate offset to prevent the collision? Since I can guarantee that the two objects are colliding, is there another algorithm I can use to solve for the new positions of 2 convex polyhedra? (Cubes for now, but I'd like to be able to do arbitrary convex shapes)

Any help or feedback would be appreciated!

Sponsor:



Old topic!
Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.



PARTNERS