Jonathan Nesbitt
Graduate Programmer
DirectX 11 Frustum Culling
I have implemented frustum culling. This is to cull or to not draw objects that are out of view of the camera - outside of the camera's frustum.
This had a massive effect on the performance of the program. The improvement would be even greater if a binary tree or similar system was used or if models were organised into parent and child nodes.
The frustum is constructed from six planes representing the projection of the camera.
The plane equation(s) generated from this is used to calculate whether the object in question is on the positive or negative side of each plane and therefore inside the frustum and inside the field of view of the camera, otherwise it could be outside and not drawn.
Here is a video demonstrating frustum culling in operation, notice how the counter for the number of cubes being rendered changes as the camera moves around the scene as only the objects inside the camera frustum are being rendered. the scene consists of many cube objects lit from a single point light with attenuation.
Information on implementing frustum culling can be found at these links:
http://web.archive.org/web/20120531231005/http://crazyjoke.free.fr/doc/3D/plane%20extraction.pdf
http://www.flipcode.com/archives/Frustum_Culling.shtml