Frustum Culling (View Frustum Culling) is the most basic and powerful optimization system that eliminates objects that are located completely outside the square pyramid space representing the camera's field of view (View Frustum) at an early stage of rendering, skipping the issuance of drawing commands.

Real-world analogy: thorough cutting of corners by the ``backstage staff'' of a theater play

Frustum Culling's actions can be compared to ``the efficiency of omitting the ``backstage (outside the field of view)'' that cannot be seen by the audience (camera) on the stage of a play'').

  • Conventional (no culling): When performers move on stage, not only the front stage that is visible to the audience, but also all the actors who are waiting in the wings of the stage that cannot be seen or completely behind the wall (out of the camera's field of view), are constantly given the perfect make-up and ironing of costumes (unnecessary rendering calculations) for the actual performance. In this case, the backstage staff (GPU) would be overworked and go bankrupt.
  • Solution by Frustum Culling: Check only the ``range of the viewing angle of the lens (view frustum)'' that the cameraman (audience) is facing. Objects that are less than a millimeter within the camera's field of view will skip any make-up or change of clothes from the beginning (completely excluding GPU transfer and calculations), and will only resume processing the moment the camera turns in that direction (enters the field of view). This allows you to always draw only the visible part of the scene, no matter how vast, with minimal cost.
Unity Camera Frustum Culling culling logic diagram

Figure: Infographic of culling process that instantly removes objects outside the camera view frustum from the drawing list

Mechanism and operating principle

Unity maintains 3D coordinate information of the "Bounds" of each renderer (Mesh Renderer, Particle System, etc.) on the scene. When the camera starts rendering, the CPU determines the collision of each bound with the view frustum cone created by the camera's six clipping planes (Near, Far, Left, Right, Top, Bottom). Renderers with zero intersection are immediately removed (culled) from the list of renderers that issue draw calls.