Object Culling

The fastest way to render an object is not to render it at all. Object culling provides view-dependent performance improvements by only rendering visible objects. In many cases, only a subset of all objects are visible and a performance gain is expected. Although when all objects are visible, object culling may not improve performance.

Both primitives and globe overlays implement two types of culling.

Technical Details: Primitives are put into a bounding volume hierarchy (BVH) which is used for hierarchal culling. The BVH is created using a surface area heuristic. The BVH is efficiently updated when a primitive changes position based on an algorithm in the 2007 paper Automatic Creation of Object Hierarchies for Ray Tracing of Dynamic Scenes. Removing primitives, and thus the BVH, is efficient and described on our blog.

Unfortunately, there is tension between culling and batching. Culling is most effective with lots of small primitives, and batching is most effective with large objects that are generally visible. Ultimately, knowledge of your application should help you decide how to handle culling and batching.

STK Programming Interface 11.0.1