Jump to content
  • Advertisement
Sign in to follow this  
mathematical

Obb-Obb Contact Points

This topic is 710 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

I'm trying to work on a simple rigid body physics engine, however i'm stuck when it comes to generating the contact points between two OBB's. I have implemented SAT for two OBB's but it's boolean. That is, if there is no seperating axis it returns true (there is an intersection), false otherwise. 

 

How can i go from this binary SAT result to actually getting a list of contact points? I've found some books and a few books and articles on the topic, but they contained more greek letters and numbers,  I'm by no means an expert on any physics or math topics. It seems i hit the learning curve face first on this one ;)

 

I digress. Back on topic, can anyone recomment books / tutorials / videos / anything on this topic? 

 

The most easy to follow resource i've found so far is a 2015 GDC talk by Dirk Gregorius, this one: http://media.steampowered.com/apps/valve/2015/DirkGregorius_Contacts.pdf

 

But following it was a bit beyond me. 

Share this post


Link to post
Share on other sites
Advertisement

After SAT has failed you have the axis of minimum penetration. If the axis comes from an edge combination then you use the closest points of the two lines made out of the two edges as the closest points. If it comes from a face then define this as the reference face on OBB A. You then define the incident face as the supporting face on OBB B in the negative direction of the reference face normal. After the incident face was found you find its polygon and clip this polygon against the reference face side planes. Then you keep the points that are below the reference face and create a face manifold using this.

 

If you could be more specific with what doesn't work with your implementation then we'd be glad to help.

Share this post


Link to post
Share on other sites
Sign in to follow this  

  • Advertisement
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

We are the game development community.

Whether you are an indie, hobbyist, AAA developer, or just trying to learn, GameDev.net is the place for you to learn, share, and connect with the games industry. Learn more About Us or sign up!

Sign me up!