Reader small image

You're reading from  Game Physics Cookbook

Product typeBook
Published inMar 2017
Reading LevelIntermediate
PublisherPackt
ISBN-139781787123663
Edition1st Edition
Languages
Tools
Concepts
Right arrow
Author (1)
Gabor Szauer
Gabor Szauer
author image
Gabor Szauer

Gabor Szauer has been making games since 2010. He graduated from Full Sail University in 2010 with a bachelor's degree in game development. Gabor maintains an active Twitter presence, and maintains a programming-oriented game development blog. Gabor's previously published books are Game Physics Programming Cookbook and Lua Quick Start Guide, both published by Packt.
Read more about Gabor Szauer

Right arrow

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:

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 going to implement a new function, SatCrossEdge. This function will detect if the cross product of two edges is 0. If that is the case, the function will use an axis perpendicular to the first edge to try to get a new test axis. If no such test axis exists, then the two edges being tested must be on a line. If the edges are on a line, we return...

lock icon
The rest of the page is locked
Previous PageNext Page
You have been reading a chapter from
Game Physics Cookbook
Published in: Mar 2017Publisher: PacktISBN-13: 9781787123663

Author (1)

author image
Gabor Szauer

Gabor Szauer has been making games since 2010. He graduated from Full Sail University in 2010 with a bachelor's degree in game development. Gabor maintains an active Twitter presence, and maintains a programming-oriented game development blog. Gabor's previously published books are Game Physics Programming Cookbook and Lua Quick Start Guide, both published by Packt.
Read more about Gabor Szauer