rdBPtools Tutorial 22 – ISMs, HISMs and Foliage Culling

Last Updated: 2nd September 2023

With the advent of UE5, the way Instances are culled has changed considerably.

Software occlusion culling has been removed in favor of shader based culling. Foliage has a cluster system for culling.

To start with, if you’re unfamiliar with the various culling types, a good reference is the Epic documentation:

https://docs.unrealengine.com/5.1/en-US/visibility-and-occlusion-culling-in-unreal-engine/

And here’s another page with a good run down on them:

https://www.chrismccole.com/blog/culling-in-ue4ue5

And here’s one describing Nanites culling:

https://advances.realtimerendering.com/s2021/Karis_Nanite_SIGGRAPH_Advances_2021_final.pdf


Another topic that’s relevant here is Virtual Shadow Maps – the tests below show performance with and without VSMs – but to get the best looking scenes, it’s good to stick with Nante, Lumen and VSMs.

The link here has the Epic documentation on VSMs:

https://docs.unrealengine.com/5.1/en-US/virtual-shadow-maps-in-unreal-engine/


So, let’s start with the testing! (Distance culling works well for all types, so no tests have been done on that.)

In a real game, of course there will be a lot more going on in your scene and it will be larger – this test is concentrating on the occlusion culling, there are many more techniques for optimizing those, just out of scope.

There’s a lot of different configurations you can use, so there’s quite a number of different configs, each testing the occlusion culling by rendering the scene with and without occlusion – it’s simply done by placing planes in front of the camera.

UE5.3 introduces a number of optimizations with Nanite rendering and VSMs, more tests will be done when it reaches maturity.