Download

Combining Actors to new Static Mesh

Hi guys,

just wondering what the benefits are to doing this…

I have a town built out of modular pieces, walls, roofs, windows etc… I assume that for every object UE makes a draw call, so, should I combine the finished buildings in to a new static mesh? it would certainly make using the asset a lot easier but would it improve or hinder performance?

Each building has between 20 and 100 separate components at the moment so simply moving them around or duplicating them is a bit of a nightmare.

Thanks,

Dave

I’d also like to know this as I too am considering building a level made up from modular pieces.

I know that Crytek merged their mountain modules together to increase their framerates for The Climb using the CryEngine so I’m guessing that the same would apply to the Unreal Engine but it would be great to get some confirmation from someone here.

I THINK a separate draw call is made for each individual material too but I’m not sure about that either. Or whether a texture for one of our modules would count as one material…?

After a bit more research it seems there are two ways to do this…
create new static mesh (done by right clicking the selected elements in the scene browser) or Merge Actors (which is in the developer tools). Not sure which is the better option but people seem to be favouring the second one.
As I understand it Merge Actors will use one material where it can so if 5 mesh objects have the same texture it will make one call instead of 5. If they are using different matts then these are still kept as separate elements.
Still not sure if this improves performance on the mesh side of things though.

IIRC that Right click created new mesh will keep material assignment for each mesh while Merge Actors created mesh has the ability to combine meshes with same material. So in your example, 5 meshes with same material, if use the Right click method, there’ll be 5 + 1 draw calls ( 5 mesh sections + 1 material ); if using Merge Actors, there’ll be 1 + 1 draw calls.

That being the case, why would you ever use the right click method? Can you then extract the components back out if need be?
Also, does anybody know what the trade off is in draw calls vs memory? for instance…
I have 10 modular pieces that make up a house. so if I have 100 houses then there are 1000 draw calls being made but the same 10 objects are being reused so less memory overheads.
If I then merge these modular pieces I will have only 100 draw calls but 10 much larger meshes loaded in to memory.
does the lower draw call outweigh the memory overhead or vice versa?

Sorry for the Analy retentive questions but I’m developing for Vive and the the one mantra I hear again and again is optimise, optimise, optimise so I’d like to get a handle on this aspect before creating a thousand assets the wrong way.

Thanks,

Dave

Did you ever figure this out? I’m having the same question