Robustness of the Separating Axis Theorem

Currently, there is a flaw in our SAT implementation. You can see this flaw in action by testing two triangles that lay on the same plane. Let's assume that we run the SAT test with the following triangles:

  • T1: (-2, -1, 0), (-3, 0, 0), (-1, 0, 0)
  • T2: (2, 1, 0), (3, 0, 0), (1, 0, 0)

These two triangles will report a false positive. Visualizing them, they look like this:

Robustness of the Separating Axis Theorem

Why does this happen? When we compute the cross products of the edges of the triangles, the cross product of parallel vectors is the zero vector. When edges or face normals are parallel, we end up with an invalid axis to test.

Getting ready

We are ...

Get Game Physics Cookbook now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.