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.