Instanced static mesh or duplicated geometry?

I’m trying to build a large grate for a catwalk. The final mesh I have in mind is essentially an array of a small sub-component. Which would be more efficient for this, rendering-wise: duplicating the sub-component in Blender and exporting the whole grate mesh with 160k vertices, or exporting the sub-component and using instanced static meshes to tile it?

This is a sample of what the final product should look like, but it will need to be a couple times longer. I can tell already that a mesh that size is a huge burden on rendering, but would the instanced mesh be any better? Do I need to find a texture-based workaround? I’m hoping not, because a) looking through a textured and masked plane won’t look anything like looking through a grate with actual depth, and b) it needs to be double-sided, which would look strange looking through.

Hi.

I’m not sure if I’ll be 100% correct. Making a lot of instances of those subcomponents would require the engine to process each one of the instances, and can be more expensive. However, if you export the whole mesh, the engine won’t be able to cull parts of the mesh, which would be nice since it has 160k vertices. So I would probably do something in-between: since you say that the grid is big, I would divide it in 4 or 6 chunks or something like that and build your whole grid with those chunks. The engine will only have to render a few instances, but it will also be able to cull parts of the grid in case only part of it is visible.

Please, someone correct me if I’m wrong.

Not a bad idea, but it doesn’t seem to make any difference performance-wise. My framerate still drops significantly when I look in the direction of the grate. I guess I’ll have to do a simple texture version.

Hmm… Maybe reducing the number of sides in those cylinders? I don’t know how many sides has each one of the cylinders, but you could reduce them to 4 or even 3 and see if there’s an improvement.

They’re just 4-sided now (e.g. boxes). I feel foolish though, it seems about half of the vertices were duplicates, artifacts of the array modifier. Removing double vertices put the vertex count in an 11m segment of grate down to about 66k, which is much more managable.