1
$\begingroup$

I have a mesh made up of several tetrahedrons, I know for sure that there are intersections between some of them: how can I remove these intersections, without generating others? In other terms: if between a couple of tetrahedrons there is an intersection, how can I remove it?

I found these articles: the Method of Separating Axes, the Tetrahedron Overlap Algorithm. But they are only useful for checking if there are intersections or not.

Is there an algorithm to solve this problem?

$\endgroup$
1
  • $\begingroup$ To clarify for me, are you wanting methods to take a set of intersecting tets and produce a new set of tets that fill the same volume/shape but are non-intersecting. $\endgroup$ May 9 '21 at 8:43
1
$\begingroup$

Since you already have convex shapes and started looking at the "Method of separating axis", then the GJK algorithm is probably what you're looking for. This is commonly used in physics simulations to find collisions (for games, I don't know about computational science).

When you say "remove intersections without generating others", then you're asking for collision response. Multiple collision response is actually a tough beast. Here (Reflections on Simultaneous Impact) is a paper that goes into more detail, but a very good introduction to this are course notes from Baraff: An Introduction to Physically Based Modeling: Rigid Body Simulation I—Unconstrained Rigid Body Dynamics and part 2. Rigid Body Simulation II-Nonpenetration Constraints

Lastly, you can always use a physics engine for this, such as Bullet3d.

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.