I was trying to understand how the PlanarReflections library works, and saw a comment referring to an algorithm at www.yosoygames.com.ar/wp/2016/12/frustum-vs-pyramid-intersection-also-frustum-vs-frustum/. That article is also used in OgreForwardClustered.cpp. The web page no longer exists, but I found it in the Wayback Machine:

https://web.archive.org/web/20190501231 ... s-frustum/

The article first discusses a 2D version, and then basically says that we'll do the same thing in 3D. The idea is that if a face of one polyhedron has all of the vertices of the other one on its outside, then the polyhedrons don't intersect. That works in 2D, but can produce false positives in 3D. Here's a configuration of 2 cubes that are not separated by any face.