In this C++/OpenGL project, I implemented a KD-Tree data structure that spatially partition the boxes in a 3D scene so that they can be efficiently culled when they are outside of the view frustum.  This culling optimization is done with a plane coherency test, which reduces the number of checks between the plane and view frustum.

The application indicates how many boxes are outside the view frustum, how many boxes are intersecting with the view frustum, and how many plane equation evaluations are being calculated by the view frustum culling algorithm.

Screenshots

The following are screenshots of my KD Tree implementation. Each thumbnail links to a larger version of the image.