rdBPtools Tutorial 8.4 – ISMs, HISMs and Foliage Culling
Last Updated: 2nd September 2023
Tutorial created using rdBPtools version 1.10
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.