Quick question (I hope) about modular and instanced meshes!

Greetings!

I have a question regarding buildings in a city like environment and performance using a combination of modular meshes and instances.

If I were to use a simple modular mesh like a 300x300cm wall with space for a window in the center. what would be the best way to make a fairly big building (Like a skyscraper) with this modular mesh, in terms of performance?
Should I make the entire building as one instance, or say make each of the four sides of the building a different instance? or is it better to just make the building as one big mesh? or is there another superior way that i don’t know of?

Thank you! :slight_smile:

How big is your skyscraper going to be? Is it going to be 180m (18000 uu) tall or 14 m (1400 uu) tall?

Well, would there be a different solution depending on how tall it is? if so I would love to hear both of them, I am going to make lots of buildings of varying sizes, I understand that there will be tons of different solutions to different kinds of buildings, I just want to know what would be the “basic” solution for a very simple building.

A common approach is to design reusable modular pieces and construct your level. Then you need to combine them for performance.

Ideally, it is best to share textures across pieces so use tiled uvs. (As opposed to each piece having its own material/texture)

Unfortunately there is not a single recipe for this - but there are many performance options for this:

You could use Merge Actors, Hierarchical Instance Static Mesh
, Instanced Static Meshes, or Hierarchical LOD to combine modular pieces.

An important thing to consider is the impact on culling, and this depends on your game/level.

Your best bet is to do some benchmarking - if you do, share the results :wink:

Hi OptimisticMonkey!

I’m in a similar situation, building a very big city and using loads of meshes. I’ve tried using HLOD so as to reduce the number of meshes that are on screen and simplifying - but that process crashes whenever I try to use it, maybe my scene is too high poly for it not to crash.

In any case, I’m quoting you because you’ve mentioned other methods that I haven’t used in the past - “Merge Actors”, “Hierarchical Instance Static Mesh” and “Instanced Static Meshes”. Could you go into any more detail about them, how they work and such? I’ll research into them myself, I thought the only way to go about grouping and simplifying meshes was the HLOD system.

What I’d like to do is something similar as what follows - say you have a building, made up of 9 different elements. I have LODs for each of those 9 elements, but when you get to a certain distance I would like to have another actor replace all of those meshes with just one material to it. I thought that could only be done with HLOD, but please correct me if I’m wrong. That would be extremely helpful!

Thanks for your time, and have a great day!

For a large (180 m) building, merging actors will do you little good as most of the time you’ll see two or three on screen, only. For smaller buildings, look into merging actors and HISM/ISM.