Geometry culling overview

Volumetric culling - Hollow Shell

A common approach in level design is to use kit bashing workflows, where you create larger objects from kits of smaller assets. For example, combining a bunch of small rocks to create a stone wall. This style of construction tends to lead to a lot of intersecting geometry and the resulting object is riddled with hidden geometry. Rendering perfomance takes a hit in a number of ways, such as overdraw, uneccessary shading calculations, internal shadowing, waste of light map space etc. Prior to Simplygon 9, the remesher was the best at handling kit bashed collections. The result from the remesher is typically best suited for a far view. With Simplygon 9 we expanded on the aggregation processor, making it possible to volumetrically cull geometry that is completely within the object. The benefit with this approach is that you don't have to generate any new materials and the exterior will be unaffected, making it perfect for use close to the camera.

How to use volumetric culling

Visibility culling - Visibility sphere

It's not uncommon that assets contains geometry that are completely obscured from the outside, or might never be visible in the game. A chair, for example, will most likely be built so that it can be viewed from any angle, but when it goes into the game it might never be viewed from below. We're not talking about massive amounts of polygons here, but combined across all assets we might cut a significant amount if we just clean up the assets for intented viewing angels. Using the visibility sphere function in Simplygon's API a number of cameras will be distributed across the surface of the sphere and any invisible polygons will be removed. For static meshes this is a great way of saving some polys, but it should be used with caution on rigged meshes though. In those cases you might have polygons that aren't visible in the bind pose, but the animations might expose them.

How to use visibilty sphere

Visibility culling - Custom cameras

If you're constructing a scene with a lot of background geometry, that's only going to be visible from an area that the player roams in you can use custom cameras in Simplygon to optimize the scene. This will remove any geometry that's not visible from any of the cameras. Either you manually place cameras in the level, and exporting them to Simplygon. A niftier approach is to distribute cameras on the navigation path, thus utilizing this data to automatically optimize the whole level in one go.

Culling geometry with camera volumes in Python script

Visibility culling - Occlusion culling

When doing visibility culling with cameras you can also provide occluding geometry that Simplygon can take into account when optimizing the asset. This could further the reduction of, for example, side scene geometry

More details coming soon

Clipping geometry

When building levels it's not uncommon that geometry is placed a way that it intersects with other geometry. For example, rocks going sticking into the ground, ornaments on a house sticking into the house geometry etc. When optimizing your objects with Simplygon you use clipping geometry to take away the parts that are not needed.

More details coming soon

Wrap up

You have a number of geometry culling options at your disposal in Simplygon. They can be used separately from each other, but they can also be combined to take a way a lot of geometry that you don't need. This allows you to re-purpose assets for different use cases, without having to manually clean them up or waste cycles on unnecessary geometry.

⇐ Back to blog post list