Have you ever wondered, how games like PubG and Fortnite, who have such massive worlds, includes numerous objects and still runs at 60 fps on a mobile device? They use all kinds of optimisations to render the world.
Let me walk you through 2 such techniques that use the same fundamental principle.
Hierarchical level of detail (HLOD) is a technique used in 3D computer graphics to improve rendering performance. The idea behind HLOD is to divide a 3D scene into a hierarchy of levels of detail (LODs), with each LOD representing a group of objects that are displayed at a certain level of detail depending on the distance of the objects from the viewer.
At the highest level of the hierarchy, the scene is divided into clusters of objects, and each cluster is associated with a LOD that is appropriate for the distance of the cluster from the viewer. As the viewer moves closer to a cluster, the level of detail for that cluster increases, and more objects within the cluster are rendered. This allows the renderer to focus on rendering the most important objects in the scene while ignoring less important objects, improving performance.
Hierarchical culling is a technique used in 3D computer graphics to improve rendering performance by reducing the number of objects that need to be rendered in a scene. It is similar to hierarchical level of detail (HLOD) in that it involves dividing the scene into a hierarchy of levels of detail, with each level representing a group of objects. However, the main difference is that hierarchical culling focuses on reducing the number of objects that are rendered, rather than adjusting the level of detail for each object.
There are several ways in which hierarchical culling can be implemented. One common approach is to use an octree or quadtree to divide the scene into a hierarchy of spatial regions. Each region is then associated with a set of objects, and the renderer only renders the objects that are within the region that is currently being viewed. This allows the renderer to efficiently cull out objects that are not visible, improving performance. Have a look at my BVH blog. It is on the similar lines.
Hierarchical Culling and HLOD is useful for large, complex scenes with many objects, as it allows the renderer to efficiently manage the number of objects that are rendered.