Search code examples
optimizationrenderingunreal-engine4

How to reduce DrawCount in UE4 project? any optimizing professional?


I have a big project to optimize a lot of buildings, trees, and assets. I have a very high BasePass, PrePass, ShadowDepth, and Translucency. See the Image ScreenShot Any Advice?

Ryzen 7 4800H + RTX 2060 + 16GB RAM


Solution

  • If we're going to reduce draw calls, we're talking about making the engine render fewer objects at once with fewer materials.

    Your go to methods for this are:

    -Setting up HLOD's to combine distant meshes https://docs.unrealengine.com/4.26/en-US/BuildingWorlds/HLOD/Overview/

    -Setting up HISM's/ISM's (As long as you are using DirectX 12 and not 11. With 11 it will do this by itself). Remember to only do this on objects that are beside each other or the problem can get worse. https://www.unrealengine.com/marketplace/en-US/product/instance-tool

    -Reducing the number of material slots on meshes that don't need so many or combining small meshes with similar materials. Actor merging can be great for this, just be careful of going overboard because it can make light baking & lightmap memory usage a pain. https://docs.unrealengine.com/4.26/en-US/Basics/Actors/Merging/

    -Reducing the max draw distance on some of your smaller meshes that are close to the ground. You can find this in the mesh's rendering settings.

    Any of these things would reduce draw calls, just be careful with it. Too much optimization by any one method can always make the problem worse by creating bottlenecks elsewhere. When we're reducing draw calls we're also risking slowing down occlusion calculation times or potentially creating a memory bandwidth bottleneck.

    Once you get that draw thread time down the next thing I'd go onto is looking at reducing the number of movable lights, objects casting dynamic shadows, and translucent objects casting dynamic shadows. Those are some common culprits of other optimization issues.