Download

Static Mesh batching performance on PC and Mobile

I have a question for the guys at EPIC regarding Static Mesh batching in UE4.

With UE3 the standard way to create a complex structure like a building was to create a fairly low base shape out of BSP or static mesh, and then “mesh” the outside with highly repeated smaller static mesh instances that are each pretty low on memory and all get batched into a small number of draw calls.

When we moved to mobile development with UE3, we found that individual object count was the biggest killer for rendering performance, (I don’t think UE3 mobile renderer did batching?) So we made our environments out of much larger unique chunks of geometry that were, bigger, used more memory, but kept the object count in the scene way down.

My question is, in UE4 for big scene like a city with multiple buildings, is it OK to use lots (hundreds or thousands) of smaller meshes that will get batched? Similar to what the Proc Buildings system in UE3 did. Does this technique now work for Mobile on UE4?

We want our current game to be cross platform, and I’m not quite sure which way to go.

Cheers

Andrew
Uppercut Games

If you’re doing a city then you have to use LOD systems. Like if you’re up close to a building maybe it loads extra detail objects on it, but if it’s far away then it’s just a single box shape with a texture on it.

Hi UppercutAJ,

You should check out our documentation on “Performance Guidelines for Mobile Devices”](https://docs.unrealengine.com/latest/INT/Platforms/Mobile/Performance/index.html).

This should have the information you’re seeking more or less.

It is recommend that your scene stay a 500< polys for any view.

I’m not sure about the procedural building system you’re speaking of but you can use Blueprints to build and manipulate meshes to build procedural buildings (there are several YouTube videos of people setting this up).

Thank you!

Tim

Don’t you mean 500k? 500 triangles would be very low.

Hi Zeblote,

Oops…you’re are correct on that one! 500K < per view is right.

:slight_smile:

Tim