Unwanted seams visible in Instanced Static Meshes

Hey ApoorvaJ,

After running some more tests with your asset I can confirm what you are seeing. The issue here is that lighting is not calculated the same when using instanced meshes versus individual meshes. Since instanced static meshes are referencing a single object, the way the engine calculates lighting information is different, in order to improve performance when using a lot of heavy static meshes within your scene/level.

With that in mind, instanced meshes also do not light well when scaled non-uniformly. I set up a very simple dynamic scene (movable directional and skylight actor) with the mesh you provided. I created two sets of walls using the original mesh and then using instances. As mentioned by other users on this post, your never going to fully get rid of seams, but with dynamic lighting you can really reduce the visibility. It is all about balancing your indirect lighting quality in conjunction with your bounces and intensity. There are also tons of small ways to hide the seams by using materials that tile smoothly with macro variations to break up the repetition.

Here are the results of the tests I ran and hopefully give you some idea of how to reduce the visibility of your seams.

Instanced Meshes vs. Static Meshes

The wall on the top-left of the screen is the Instanced version of the static mesh you provided.

Instanced Mesh Wall

Here, although barely visible, I have circled where the seams begin on the meshes.

Non-Instanced Mesh Wall

Here the seams are completely invisible.

Although this might seem like a bug, it really just comes down to optimizing your lighting when using the Instanced Mesh approach.

Cheers,